Skip to content

Commit a6845e2

Browse files
committed
Merge branch 'release/0.14.0'
2 parents 1c076fb + d2440fc commit a6845e2

File tree

79 files changed

+2238
-555
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2238
-555
lines changed

CHANGELOG.md

+25-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,30 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
66

77
## [vNext]
88

9+
## [0.14.0] / 2018-12-31
10+
- Removed named target dependencies
11+
- Removed choice of target framework in setup
12+
- Changed setup to write solution file reference to configuration file again
13+
- Added extended solution parsing with integration for `Microsoft.Build`
14+
- Added `Configuration` type
15+
- Added `continue` parameter
16+
- Added checking for active build project configurations in solution files
17+
- Added highlighting for default target in HTML graph
18+
- Added `SonarScannerTasks`
19+
- Added `EnvironmentInfo.SwitchWorkingDirectory`
20+
- Added `SymbolPackageFormat` property for `DotNetTasks`, `MSBuildTasks`, and `NuGetTasks`
21+
- Fixed bootstrapping scripts not to leave DotNet processes behind
22+
- Fixed bootstrapping scripts to correctly quote arguments
23+
- Fixed overload of tool path for .NET Core executables
24+
- Fixed default value not to be hidden by cursor
25+
- Fixed `ToolSettingsExtensions.When` to have generic constraint on `ToolSettings`
26+
- Fixed `InspectCodeTasks` to use deterministic hashing
27+
- Fixed `ChangelogTasks` to correctly parse empty sections at end of file
28+
- Fixed `InjectionAttributeBase` to express implicit assignment only
29+
- Fixed `ExternalFilesTask` to be executed before `Restore` target
30+
931
## [0.13.0] / 2018-12-10
10-
- Change verification of PATH environment variable to be executed only with `Trace` log level
32+
- Changed verification of PATH environment variable to be executed only with `Trace` log level
1133
- Added `ToolSettings.When` for conditional fluent modifications
1234
- Added `.editorconfig` file in setup to avoid formatting issues
1335
- Added `DotMemoryUnitTasks`
@@ -226,7 +248,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
226248
- Added CLT tasks for Git
227249
- Fixed background color in console output
228250

229-
[vNext]: https://github.com/nuke-build/nuke/compare/0.13.0...HEAD
251+
[vNext]: https://github.com/nuke-build/nuke/compare/0.14.0...HEAD
252+
[0.14.0]: https://github.com/nuke-build/nuke/compare/0.13.0...0.14.0
230253
[0.13.0]: https://github.com/nuke-build/nuke/compare/0.12.4...0.13.0
231254
[0.12.4]: https://github.com/nuke-build/nuke/compare/0.12.3...0.12.4
232255
[0.12.3]: https://github.com/nuke-build/nuke/compare/0.12.2...0.12.3

CONTRIBUTING.md

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1-
# Contribution Guidelines
1+
# Contributing
22

3-
It is important to understand [our philosophy](https://nuke.build/docs/getting-started/philosophy.html). Of course we're grateful for any type of contribution or feedback. NUKE is a free open-source project, with the goal that many developers will benefit from it. Nevertheless, we do have several expectations on participation:
3+
NUKE is a free open-source project, with the goal that as many individuals as possible gain a benefit. We expect everyone to follow our [code of conduct](CODE_OF_CONDUCT.md), and it is important to understand [our philosophy](https://nuke.build/docs/getting-started/philosophy.html).
44

5-
- [Code of conduct](CODE_OF_CONDUCT.md) must be followed at any time
6-
- Issue authors are required to become a [stargazer](https://github.com/nuke-build/nuke/stargazers)
7-
- Bug reports must include information about the _actual behavior_, _expected behavior_ and _used versions_
8-
- Issues related to [unsupported tools](https://nuke.build/docs/authoring-builds/cli-tools.html#unsupported-tools) or [missing arguments](https://nuke.build/docs/authoring-builds/cli-tools.html#note-1) are not accepted anymore; given the declarative code-generation approach, we expect pull-requests instead
9-
- Pull-requests don't imply any requirements yet, but we do recommend getting in touch first
5+
We appreciate any kind of contribution that helps to grow the project. Following next, we would like to outline a few possibilities, expectations and thoughts.
6+
7+
- [Become a stargazer](https://github.com/nuke-build/nuke/stargazers), especially when requesting features
8+
- Follow us on [Twitter](https://twitter.com/nukebuildnet), join our [Slack workspace](https://slofile.com/slack/nukebuildnet) or [Gitter room](https://gitter.im/nuke-build/nuke)
9+
- [Tweets](https://twitter.com/intent/tweet?text=NUKE%20is%20awesome!%20https%3A%2F%2Fnuke.build), blog posts and other [testimonials](https://dotnet.libhunt.com/project/nuke/recommend) are very motivating
10+
- Well-formed feedback is what shapes the technical future of the project
11+
- [Issues are triaged](https://github.com/nuke-build/nuke/issues?utf8=%E2%9C%93&q=label%3A%22bug+%3Abeetle%3A%22+) carefully; make sure to include all important information, like _expected_ vs. _actual_ behavior, version numbers etc.
12+
- Issues related to [unsupported tools](https://nuke.build/docs/authoring-builds/cli-tools.html#unsupported-tools) or [missing arguments](https://nuke.build/docs/authoring-builds/cli-tools.html#note-1) are not accepted; given the declarative code-generation approach, we expect pull-requests instead
13+
- Pull-requests are much appreciated, but for trivial changes it's recommended to get in touch with the maintainers first
14+
- Pull-requests must be started off from `develop` and should only use `git rebase`, i.e. not `git merge`
15+
- If this project increases your productivity/income, consider becoming a [backer](https://opencollective.com/nuke/order/7399) (individuals) or [sponsor](https://opencollective.com/nuke/order/7400) (companies)

appveyor.yml

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
image: Visual Studio 2017
22

3+
init:
4+
- git config --global core.autocrlf true
5+
36
build_script:
47
- ps: .\build.ps1 test+pack

build.ps1

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
[CmdletBinding()]
22
Param(
3-
[switch]$RefExt,
43
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
54
[string[]]$BuildArguments
65
)
@@ -66,5 +65,5 @@ else {
6665

6766
Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)"
6867

69-
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /p:ReferenceExternal=$RefExt }
70-
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile -- $BuildArguments }
68+
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false }
69+
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }

build.sh

+2-12
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,6 @@
22

33
echo $(bash --version 2>&1 | head -n 1)
44

5-
REFEXT="False"
6-
BUILD_ARGUMENTS=()
7-
for i in "$@"; do
8-
case $(echo $1 | awk '{print tolower($0)}') in
9-
-refext) REFEXT="True";;
10-
*) BUILD_ARGUMENTS+=("$1") ;;
11-
esac
12-
shift
13-
done
14-
155
set -eo pipefail
166
SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
177

@@ -71,5 +61,5 @@ fi
7161

7262
echo "Microsoft (R) .NET Core SDK version $("$DOTNET_EXE" --version)"
7363

74-
"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /p:"ReferenceExternal=$REFEXT"
75-
"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" -- ${BUILD_ARGUMENTS[@]}
64+
"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false
65+
"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@"

build/Build.cs

+14-33
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@ partial class Build : NukeBuild
4040
public static int Main() => Execute<Build>(x => x.Pack);
4141

4242
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
43-
readonly string Configuration = IsLocalBuild ? "Debug" : "Release";
43+
readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
4444

4545
[Parameter("ApiKey for the specified source.")] readonly string ApiKey;
46-
[Parameter] string Source = "https://api.nuget.org/v3/index.json";
47-
[Parameter] string SymbolSource = "https://nuget.smbsrc.net/";
46+
[Parameter] readonly string Source = "https://api.nuget.org/v3/index.json";
47+
[Parameter] readonly string SymbolSource = "https://nuget.smbsrc.net/";
4848

4949
[Parameter("Gitter authtoken.")] readonly string GitterAuthToken;
5050
[Parameter("Slack webhook.")] readonly string SlackWebhook;
5151

52-
[Solution("nuke-common.sln")] readonly Solution Solution;
52+
[Solution] readonly Solution Solution;
5353
[GitRepository] readonly GitRepository GitRepository;
5454
[GitVersion] readonly GitVersion GitVersion;
5555

@@ -131,6 +131,7 @@ partial class Build : NukeBuild
131131
.EnableNoBuild()
132132
.SetConfiguration(Configuration)
133133
.EnableIncludeSymbols()
134+
.SetSymbolPackageFormat(DotNetSymbolPackageFormat.snupkg)
134135
.SetOutputDirectory(OutputDirectory)
135136
.SetVersion(GitVersion.NuGetVersionV2)
136137
.SetPackageReleaseNotes(GetNuGetReleaseNotes(ChangelogFile, GitRepository)));
@@ -148,33 +149,13 @@ partial class Build : NukeBuild
148149
.DependsOn(Compile)
149150
.Executes(() =>
150151
{
151-
var framework = "net461";
152-
var xunitSettings = new Xunit2Settings()
153-
.SetFramework(framework)
154-
.AddTargetAssemblies(GlobFiles(SourceDirectory, $"*/bin/{Configuration}/{framework}/Nuke.*.Tests.dll").NotEmpty())
155-
.AddResultReport(Xunit2ResultFormat.Xml, OutputDirectory / "tests.xml");
156-
157-
if (IsWin)
158-
{
159-
OpenCover(s => s
160-
.SetTargetSettings(xunitSettings)
161-
.SetOutput(OutputDirectory / "coverage.xml")
162-
.SetSearchDirectories(xunitSettings.TargetAssemblyWithConfigs.Select(x => Path.GetDirectoryName(x.Key)))
163-
.SetRegistration(RegistrationType.User)
164-
.SetTargetExitCodeOffset(targetExitCodeOffset: 0)
165-
.SetFilters(
166-
"+[*]*",
167-
"-[xunit.*]*",
168-
"-[FluentAssertions.*]*")
169-
.SetExcludeByAttributes("System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute"));
170-
171-
ReportGenerator(s => s
172-
.AddReports(OutputDirectory / "coverage.xml")
173-
.AddReportTypes(ReportTypes.Html)
174-
.SetTargetDirectory(OutputDirectory / "coverage"));
175-
}
176-
else
177-
Xunit2(s => xunitSettings);
152+
Solution.GetProjects("*.Tests")
153+
.ForEach(x => DotNetTest(s => s
154+
.SetProjectFile(x)
155+
.SetConfiguration(Configuration)
156+
.EnableNoBuild()
157+
.SetLogger("trx")
158+
.SetResultsDirectory(OutputDirectory)));
178159
});
179160

180161
Target Analysis => _ => _
@@ -196,7 +177,7 @@ partial class Build : NukeBuild
196177
.DependsOn(Test, Pack)
197178
.Requires(() => ApiKey, () => SlackWebhook, () => GitterAuthToken)
198179
.Requires(() => GitHasCleanWorkingCopy())
199-
.Requires(() => Configuration.EqualsOrdinalIgnoreCase("release"))
180+
.Requires(() => Configuration.Equals(Configuration.Release))
200181
.Requires(() => GitRepository.Branch.EqualsOrdinalIgnoreCase(MasterBranch) ||
201182
GitRepository.Branch.EqualsOrdinalIgnoreCase(DevelopBranch) ||
202183
GitRepository.Branch.StartsWithOrdinalIgnoreCase(ReleaseBranchPrefix) ||
@@ -208,7 +189,7 @@ partial class Build : NukeBuild
208189
.ForEach(x => DotNetNuGetPush(s => s
209190
.SetTargetPath(x)
210191
.SetSource(Source)
211-
// .SetSymbolSource(SymbolSource)
192+
.SetSymbolSource(SymbolSource)
212193
.SetApiKey(ApiKey)));
213194

214195
if (GitRepository.Branch.EqualsOrdinalIgnoreCase(MasterBranch))

build/_build.csproj

+2-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<TargetFramework>netcoreapp2.0</TargetFramework>
66
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
77
<RootNamespace></RootNamespace>
8-
<ReferenceExternal>False</ReferenceExternal>
98
<IsPackable>false</IsPackable>
109
<NoWarn>CS0649;CS0169</NoWarn>
1110
</PropertyGroup>
@@ -17,18 +16,14 @@
1716
</PropertyGroup>
1817

1918
<ItemGroup>
20-
<PackageReference Include="GitVersion.CommandLine" Version="4.0.0-beta0012" />
19+
<PackageReference Include="GitVersion.CommandLine.DotNetCore" Version="4.0.1-beta1-53" />
2120
<PackageReference Include="JetBrains.ReSharper.CommandLineTools" Version="2017.1.20170613.162720" />
2221
<PackageReference Include="OpenCover" Version="4.6.519" />
2322
<PackageReference Include="ReportGenerator" Version="2.5.6" />
2423
<PackageReference Include="xunit.runner.console" Version="2.4.0" />
2524
</ItemGroup>
26-
27-
<ItemGroup Condition="'$(ReferenceExternal)'=='True'">
28-
<PackageReference Include="Nuke.CodeGeneration" Version="*" />
29-
</ItemGroup>
3025

31-
<ItemGroup Condition="'$(ReferenceExternal)'!='True'">
26+
<ItemGroup>
3227
<ProjectReference Include="..\source\Nuke.Common\Nuke.Common.csproj" />
3328
<ProjectReference Include="..\source\Nuke.CodeGeneration\Nuke.CodeGeneration.csproj" />
3429
</ItemGroup>

build/specifications/DotNet.json

+12
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,11 @@
649649
{
650650
"name": "RepositoryType",
651651
"type": "string"
652+
},
653+
{
654+
"name": "SymbolPackageFormat",
655+
"type": "DotNetSymbolPackageFormat",
656+
"help": "Format for packaging symbols."
652657
}
653658
]
654659
}
@@ -741,6 +746,13 @@
741746
"Detailed",
742747
"Diagnostic"
743748
]
749+
},
750+
{
751+
"name": "DotNetSymbolPackageFormat",
752+
"values": [
753+
"symbols.nupkg",
754+
"snupkg"
755+
]
744756
}
745757
]
746758
}

build/specifications/MSBuild.json

+12
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,11 @@
220220
"name": "RestoreOutputPath",
221221
"type": "string",
222222
"help": "Output folder, defaulting to the obj folder."
223+
},
224+
{
225+
"name": "SymbolPackageFormat",
226+
"type": "MSBuildSymbolPackageFormat",
227+
"help": "Format for packaging symbols."
223228
}
224229
]
225230
},
@@ -307,6 +312,13 @@
307312
"arm",
308313
"Win32"
309314
]
315+
},
316+
{
317+
"name": "MSBuildSymbolPackageFormat",
318+
"values": [
319+
"symbols.nupkg",
320+
"snupkg"
321+
]
310322
}
311323
]
312324
}

build/specifications/NuGet.json

+13
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,12 @@
225225
"format": "-Version {value}",
226226
"createOverload": true,
227227
"help": "Overrides the version number from the <c>.nuspec</c> file."
228+
},
229+
{
230+
"name": "SymbolPackageFormat",
231+
"type": "NuGetSymbolPackageFormat",
232+
"format": "-SymbolPackageFormat {value}",
233+
"help": "Format for packaging symbols."
228234
}
229235
]
230236
}
@@ -379,6 +385,13 @@
379385
"12",
380386
"14"
381387
]
388+
},
389+
{
390+
"name": "NuGetSymbolPackageFormat",
391+
"values": [
392+
"symbols.nupkg",
393+
"snupkg"
394+
]
382395
}
383396
]
384397
}

0 commit comments

Comments
 (0)