From ca10a726d3630a5acca48504f7515640580aa391 Mon Sep 17 00:00:00 2001 From: avk Date: Sat, 15 Sep 2018 19:20:39 +0500 Subject: [PATCH] * set TargetFramework = net472 * update Vostok.Logging.Abstractions and other deps to the latest versions * use Nerdbank.GitVersioning to automate generation of assembly and nuget package versions * setup appveyor to publish packages to nuget.org and create github releases automatically when commit is tagged with "vX.Y-release" --- .gitattributes | 5 ++++ CHANGELOG.md | 10 +++++++ Directory.Build.props | 4 +++ Directory.Build.targets | 13 ++++++++ Mutators.Tests/Mutators.Tests.csproj | 6 ++-- Mutators/ConverterCollection.cs | 2 +- Mutators/Mutators.csproj | 18 +++--------- README.md | 6 +++- appveyor.yml | 44 ++++++++++++++++++++++++++++ global.json | 2 +- nuget.config | 2 +- version.json | 20 +++++++++++++ 12 files changed, 111 insertions(+), 21 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 version.json diff --git a/.gitattributes b/.gitattributes index f0a7a5a6..396eeb99 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,4 +8,9 @@ *.DotSettings text *.yml text *.cmd text +*.sh text *.md text +*.json text +*.config text +*.props text +*.targets text \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..114049d5 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## v1.0 - 2018.09.15 +- Set TargetFramework to net472. +- Switch to SDK-style project format and dotnet core build tooling. +- Use [Vostok.Logging.Abstractions](https://github.com/vostok/logging.abstractions) as a logging framework facade. +- Use [Nerdbank.GitVersioning](https://github.com/AArnott/Nerdbank.GitVersioning) to automate generation of assembly + and nuget package versions. +- Update [GroBuf](https://github.com/skbkontur/GroBuf) dependency to v1.4.2. +- Update [GrobExp.Compiler](https://github.com/skbkontur/GrobExp.Compiler) dependency to v1.2.1. diff --git a/Directory.Build.props b/Directory.Build.props index 74e410f3..ce9c32a5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,4 +12,8 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb + + + + \ No newline at end of file diff --git a/Directory.Build.targets b/Directory.Build.targets index cb19e7ec..77e2db32 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -7,4 +7,17 @@ + + + $(AssemblyName) + Igor Chevdar, Michael Samoylenko, Anton Chaplygin + expression tree code generation + Code generation mechanics for documents conversion and validation + git + https://github.com/skbkontur/GrobExp.Mutators + $(RepositoryUrl) + $(RepositoryUrl)/releases/tag/v$(MajorMinorVersion)-release + + + \ No newline at end of file diff --git a/Mutators.Tests/Mutators.Tests.csproj b/Mutators.Tests/Mutators.Tests.csproj index 80f6120f..8c9cb841 100644 --- a/Mutators.Tests/Mutators.Tests.csproj +++ b/Mutators.Tests/Mutators.Tests.csproj @@ -2,12 +2,12 @@ false - net471 + net472 - - + + diff --git a/Mutators/ConverterCollection.cs b/Mutators/ConverterCollection.cs index e23fc1f6..5c62f47a 100644 --- a/Mutators/ConverterCollection.cs +++ b/Mutators/ConverterCollection.cs @@ -157,7 +157,7 @@ private void LogConverterCompilation(MutatorsContext context, Stopwatch sw) var mutatorsContextTypeName = context.GetType().Name; foreach (var propertyInfo in context.GetType().GetProperties()) logProperties.Add($"{mutatorsContextTypeName}.{propertyInfo.Name}", propertyInfo.GetValue(context)); - logger.Log(new LogEvent(LogLevel.Info, DateTimeOffset.UtcNow, "{ConverterCollectionName} was compiled in {CompilationTimeMilliseconds} ms", logProperties)); + logger.Info("{ConverterCollectionName} was compiled in {CompilationTimeMilliseconds} ms", logProperties); } private static TypeCode GetTypeCode(Type type) diff --git a/Mutators/Mutators.csproj b/Mutators/Mutators.csproj index 2e6dabe7..07688944 100644 --- a/Mutators/Mutators.csproj +++ b/Mutators/Mutators.csproj @@ -1,25 +1,15 @@  - net471 + net472 GrobExp.Mutators GrobExp.Mutators - $(AssemblyName) - 1.0.0 - $(VersionPrefix)-rc-003 - $(VersionPrefix).0 - Igor Chevdar, Michael Samoylenko, Anton Chaplygin - expression tree code generation - Code generation mechanics for documents conversion and validation - git - https://github.com/skbkontur/grobexp-mutators - $(RepositoryUrl) - - - + + + diff --git a/README.md b/README.md index bc6a1dd6..2349bcc1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ # Code generation mechanics for documents conversion and validation [![NuGet Status](https://img.shields.io/nuget/v/GrobExp.Mutators.svg)](https://www.nuget.org/packages/GrobExp.Mutators/) -[![Build status](https://ci.appveyor.com/api/projects/status/rqyf5ndta4770afq?svg=true)](https://ci.appveyor.com/project/vostok/grobexp-mutators) \ No newline at end of file +[![Build status](https://ci.appveyor.com/api/projects/status/rqyf5ndta4770afq?svg=true)](https://ci.appveyor.com/project/skbkontur/grobexp-mutators) + +## Release Notes + +See [CHANGELOG](CHANGELOG.md). diff --git a/appveyor.yml b/appveyor.yml index 80a638c0..c6807339 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,29 @@ +version: '{build}' + +skip_commits: + files: + - '**/*.md' + image: Visual Studio 2017 init: - cmd: git config --global core.autocrlf false + - ps: | + $ErrorActionPreference = "Stop" + $tagName = $env:APPVEYOR_REPO_TAG_NAME + if ($tagName -match '^v\d+\.\d+') # tag name starts with 'vX.Y' + { + $env:SHOULD_PUBLISH_NUGET_PACKAGE = "true" + Write-Host "Will publish nuget package for $tagName tag" -ForegroundColor "Green" + if ($tagName -match '^v\d+\.\d+-release$') # tag name matches 'vX.Y-release' + { + $env:SHOULD_CREATE_RELEASE = "true" + Write-Host "Will create release for $tagName tag" -ForegroundColor "Green" + } + } + +nuget: + disable_publish_on_pr: true before_build: - cmd: dotnet --info @@ -9,6 +31,28 @@ before_build: build_script: - cmd: dotnet build --configuration Release ./GrobExp.Mutators.sln + - cmd: dotnet pack --no-build --configuration Release ./GrobExp.Mutators.sln test_script: - cmd: dotnet test --no-build --verbosity normal --configuration Release --filter TestCategory!=Failing ./Mutators.Tests/Mutators.Tests.csproj + +artifacts: + - path: './Mutators/bin/Release/*.nupkg' + +deploy: + - provider: NuGet + server: https://nuget.org + api_key: + secure: dzTnT0xSlPrHnrG06cj354nTN4lXWhfh4ZCJ1910I3VnNdvbx0rQFLTyJ5l1+bgB + skip_symbols: true + on: + SHOULD_PUBLISH_NUGET_PACKAGE: true + + - provider: GitHub + tag: $(APPVEYOR_REPO_TAG_NAME) + auth_token: + secure: y8dDOcAtq4U1MTDJFX8f23xsvyFU1u4bhwr9Lzbkf2revNWPPTifBkWghris9v8i + draft: false + prerelease: false + on: + SHOULD_CREATE_RELEASE: true diff --git a/global.json b/global.json index 386035de..c0dbd1a0 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "2.1.300" + "version": "2.1.400" } } \ No newline at end of file diff --git a/nuget.config b/nuget.config index 4e6379e4..d8f90e26 100644 --- a/nuget.config +++ b/nuget.config @@ -2,6 +2,6 @@ - + \ No newline at end of file diff --git a/version.json b/version.json new file mode 100644 index 00000000..09a0a989 --- /dev/null +++ b/version.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", + "version": "1.0", + "assemblyVersion": { + "precision": "build" + }, + "publicReleaseRefSpec": [ + "^refs/heads/master$", + "^refs/tags/v\\d+\\.\\d+" + ], + "nugetPackageVersion": { + "semVer": 2 + }, + "cloudBuild": { + "setVersionVariables": true, + "buildNumber": { + "enabled": false + } + } +} \ No newline at end of file