Skip to content

Commit e0de3ab

Browse files
authored
Add dev build version suffix (#2254)
1 parent 62ee459 commit e0de3ab

File tree

9 files changed

+52
-23
lines changed

9 files changed

+52
-23
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ TestResult.xml
1818
.idea/
1919
.vs/
2020
/build-common/NHibernate.dev.props
21+
/doc/reference/master.xml

ReleaseProcedure.txt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,8 @@ Tools\gitreleasemanager\0.7.0\tools\GitReleaseManager.exe create -o nhibernate -
2525
If the release tag does not match the released version with major.minor.release
2626
formalism, the NuGet package will have an invalid link to release notes.
2727

28-
* Check/update version number in common.xml and NHibernate.props under
29-
build-common folder, in master.xml under doc\reference folder, and in
30-
appveyor.yml in the NHibernate root.
28+
* Check/update version number in NHibernate.props under build-common folder.
29+
Clear VersionSuffix if present.
3130

3231
* Don't forget to commit the above.
3332

@@ -55,3 +54,10 @@ Tools\gitreleasemanager\0.7.0\tools\GitReleaseManager.exe create -o nhibernate -
5554
* If this was a stable branch, merge it forward to master. Perhaps some
5655
changes need to be edited out in the merge, but this will reduce the
5756
risk of some issue being left unfixed on master.
57+
58+
* If this was the master branch, create the stable branch for the new release, named
59+
according to its version with "x" instead of its patch number. By example, "5.3.x".
60+
61+
* If next version is decided set it in NHibernate.props under build-common folder
62+
(in most cases - increment minor version) and set VersionSuffix to "dev".
63+
Commit it directly (without going through a PR).

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 5.2.7.{build}
1+
version: '{build}'
22
image: Visual Studio 2017
33
environment:
44
matrix:

build-common/NHibernate.props

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@
22
<Import Condition="Exists('NHibernate.dev.props')" Project="NHibernate.dev.props"/>
33

44
<PropertyGroup>
5-
<VersionMajor Condition="'$(VersionMajor)' == ''">5</VersionMajor>
6-
<VersionMinor Condition="'$(VersionMinor)' == ''">2</VersionMinor>
7-
<VersionPatch Condition="'$(VersionPatch)' == ''">7</VersionPatch>
8-
<VersionSuffix Condition="'$(VersionSuffix)' == ''"></VersionSuffix>
5+
<NhVersion Condition="'$(NhVersion)' == ''" >5.3</NhVersion>
6+
<VersionPatch Condition="'$(VersionPatch)' == ''">0</VersionPatch>
7+
<!-- Clear VersionSuffix for making release and set it to dev for making development builds -->
8+
<VersionSuffix Condition="'$(VersionSuffix)' == ''">dev</VersionSuffix>
99

10-
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
11-
<AssemblyVersion>$(VersionMajor).$(VersionMinor).0.0</AssemblyVersion>
12-
<FileVersion>$(VersionPrefix).0</FileVersion>
10+
<VersionPrefix Condition="'$(VersionPrefix)' == ''">$(NhVersion).$(VersionPatch)</VersionPrefix>
11+
<VersionSuffix Condition="'$(VersionSuffix)' != '' AND '$(BuildNumber)' != ''">$(VersionSuffix).$(BuildNumber)</VersionSuffix>
12+
<AssemblyVersion>$(NhVersion).0.0</AssemblyVersion>
13+
<FileVersion Condition="'$(VersionSuffix)' != '' AND '$(BuildNumber)' != ''">$(VersionPrefix).$(BuildNumber)</FileVersion>
14+
<FileVersion Condition="'$(FileVersion)' == ''">$(VersionPrefix).0</FileVersion>
1315

1416
<NhAppTargetFrameworks Condition ="$(NhAppTargetFrameworks) == ''">net461;netcoreapp2.0</NhAppTargetFrameworks>
1517
<NhLibTargetFrameworks Condition ="$(NhLibTargetFrameworks) == ''">net461;netcoreapp2.0;netstandard2.0</NhLibTargetFrameworks>
@@ -27,7 +29,8 @@
2729
<PackageIconUrl>https://raw.githubusercontent.com/nhibernate/nhibernate-core/master/logo/NHibernate-NuGet.png</PackageIconUrl>
2830
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
2931
<PackageLicenseExpression>LGPL-2.1-only</PackageLicenseExpression>
30-
<PackageReleaseNotes>https://github.com/nhibernate/nhibernate-core/blob/$(VersionPrefix)/releasenotes.txt</PackageReleaseNotes>
32+
<PackageReleaseNotes Condition="'$(VersionSuffix)' == ''">https://github.com/nhibernate/nhibernate-core/blob/$(VersionPrefix)/releasenotes.txt</PackageReleaseNotes>
33+
<PackageReleaseNotes Condition="'$(PackageReleaseNotes)' == ''">This is development version for testing purposes only</PackageReleaseNotes>
3134
<PublishRepositoryUrl>true</PublishRepositoryUrl>
3235
<IncludeSymbols>true</IncludeSymbols>
3336
<SymbolPackageFormat>snupkg</SymbolPackageFormat>

build-common/common.xml

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,31 @@
1111
<!-- Path to the folder that contain the external assemblies -->
1212
<property name="lib.dir" value="lib" dynamic="true" />
1313

14-
<!-- This is used only for build folder -->
15-
<!-- TODO: Either remove or refactor to use NHibernate.props -->
16-
<property name="project.version" value="5.2.7" overwrite="false" />
17-
<property name="project.version.numeric" value="5.2.7" overwrite="false" />
14+
<!-- This is used for build folder and also for "API Reference" docs (not active task, see doc/NHibernate.shfbproj.template) -->
15+
<target name="get-project-version">
16+
<xmlpeek
17+
file="${root.dir}/build-common/NHibernate.props"
18+
xpath="/Project/PropertyGroup/NhVersion"
19+
property="version.short" />
20+
<xmlpeek
21+
file="${root.dir}/build-common/NHibernate.props"
22+
xpath="/Project/PropertyGroup/VersionPatch"
23+
property="version.patch" />
24+
<property name="project.version" value="${version.short}.${version.patch}" />
25+
</target>
26+
27+
<target name="set-doc-version">
28+
<copy file="${root.dir}/doc/reference/master.template.xml" tofile="${root.dir}/doc/reference/master.xml" overwrite="true" />
29+
<xmlpoke
30+
file="${root.dir}/doc/reference/master.xml"
31+
xpath="/book/bookinfo/releaseinfo"
32+
value="${version.short}" />
33+
</target>
1834

1935
<!-- properties used to connect to database for testing -->
2036
<include buildfile="nhibernate-properties.xml" />
2137

22-
<target name="common.init" description="Initializes build properties">
38+
<target name="common.init" depends="get-project-version" description="Initializes build properties">
2339
<property name="project.config" value="debug" overwrite="false" />
2440
<property name="build.name" value="NHibernate-${project.version}" if="${project.config == 'release'}"/>
2541
<property name="build.name" value="NHibernate-${project.version}-${project.config}" unless="${project.config == 'release'}" />

default.build

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<project
33
name="NHibernate"
44
default="build"
5-
xmlns="http://nant.sf.net/release/0.85-rc3/nant.xsd"
5+
xmlns="http://nant.sf.net/release/0.90/nant.xsd"
66
>
77

88
<property name="root.dir" value="." />
@@ -29,6 +29,7 @@
2929
<target name="build"
3030
depends="init prepare-build-directory nuget.set-properties"
3131
description="Builds NHibernate in the current configuration">
32+
<property name="build.counter" value="" overwrite="false" />
3233

3334
<exec program="dotnet" verbose="true">
3435
<arg value="msbuild" />
@@ -39,6 +40,8 @@
3940
<arg value="/p:IncludeSymbols=&quot;True&quot;" />
4041
<arg value="/p:IncludeSource=&quot;True&quot;" />
4142
<arg value="/p:PackageOutputPath=&quot;${path::get-full-path(nuget.nupackages.dir)}&quot;" />
43+
<!-- build.counter is not available by default. It needs to be exposed in Team City as system parameter system.build.counter with value %build.counter% -->
44+
<arg value="/p:BuildNumber=&quot;${build.counter}&quot;" unless="${build.counter == ''}" />
4245
<arg value="/t:Restore" />
4346
<arg value="/t:Rebuild" />
4447
<arg value="/v:q" />

doc/NHibernate.shfbproj.template

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
<HtmlHelpName>NHibernateAPI</HtmlHelpName>
1919
<HelpFileFormat>HtmlHelp1x</HelpFileFormat>
2020
<CopyrightText>NHibernate</CopyrightText>
21-
<CopyrightHref>nhibernate.info</CopyrightHref>
22-
<FeedbackEMailAddress>http://groups.google.com/group/nhibernate-development</FeedbackEMailAddress>
21+
<CopyrightHref>https://nhibernate.info</CopyrightHref>
22+
<FeedbackEMailAddress>https://groups.google.com/group/nhibernate-development</FeedbackEMailAddress>
2323
<FeedbackEMailLinkText>nhibernate team</FeedbackEMailLinkText>
2424
<HelpTitle>NHibernate API Reference</HelpTitle>
2525
<IndentHtml>False</IndentHtml>
26-
<HelpFileVersion>${project.version.numeric}</HelpFileVersion>
26+
<HelpFileVersion>${project.version}</HelpFileVersion>
2727
<DocumentationSources>
2828
<DocumentationSource sourceFile="${root.dir}/src/NHibernate/bin/${build.config}/net461/NHibernate.dll" />
2929
<DocumentationSource sourceFile="${root.dir}/src/NHibernate/bin/${build.config}/net461/Nhibernate.xml" />

doc/reference/master.xml renamed to doc/reference/master.template.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
<bookinfo>
4040
<title>NHibernate - Relational Persistence for Idiomatic .NET</title>
4141
<subtitle>NHibernate Reference Documentation</subtitle>
42-
<releaseinfo>5.2</releaseinfo>
42+
<releaseinfo></releaseinfo>
4343
</bookinfo>
4444

4545
<toc />

doc/reference/reference.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<property name="root.dir" value="../.." />
99
<include buildfile="${root.dir}/build-common/common.xml" />
1010

11-
<target name="init" depends="common.init">
11+
<target name="init" depends="common.init set-doc-version">
1212
<property name="lang" value="en" />
1313

1414
<property name="output.dir" value="${build.dir}/doc" />

0 commit comments

Comments
 (0)