Skip to content

Commit 67fd5a1

Browse files
committed
🔧 add automagic to synchronise assembly version info with csproj
1 parent af29a3d commit 67fd5a1

File tree

8 files changed

+109
-173
lines changed

8 files changed

+109
-173
lines changed

local-tasks/update-version-info.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
const
2+
gulp = requireModule("gulp");
3+
4+
gulp.task("update-version-info", async () => {
5+
// the version as per the .csproj is the correct version, but there
6+
// are other places where the version string is set via [assembly]
7+
// attributes, so we need to re-align them all
8+
const
9+
Git = require("simple-git/promise"),
10+
readTextFile = requireModule("read-text-file"),
11+
writeTextFile = requireModule("write-text-file"),
12+
readCsProjVersion = requireModule("read-csproj-version"),
13+
currentVersion = await readCsProjVersion("src/log4net/log4net.csproj"),
14+
assemblyInfo = "src/log4net/AssemblyInfo.cs",
15+
assemblyVersionInfo = "src/log4net/AssemblyVersionInfo.cs",
16+
versionString = sanitiseVersion(currentVersion);
17+
18+
await updateVersionsIn(assemblyInfo, versionString);
19+
await updateVersionsIn(assemblyVersionInfo, versionString);
20+
21+
const git = new Git(".");
22+
await git.add([
23+
assemblyInfo,
24+
assemblyVersionInfo
25+
]);
26+
await git.commit(`:bookmark: update versioning to ${versionString}`);
27+
28+
async function updateVersionsIn(
29+
filePath,
30+
newVersion
31+
) {
32+
const
33+
contents = await readTextFile(filePath),
34+
updated = contents
35+
// specific matches for "x.x.x.x"
36+
.replace(/"\d+\.\d+\.\d+\.\d+"/g, `"${newVersion}"`)
37+
// matches for "x.x.x.x- as found in AssemblyVersionInfo.cs
38+
.replace(/"\d+\.\d+\.\d+\.\d+-/g, `"${newVersion}-`);
39+
await writeTextFile(filePath, updated);
40+
}
41+
42+
function sanitiseVersion(version) {
43+
const parts = version.split(".");
44+
while (parts.length < 4) {
45+
parts.push("0");
46+
}
47+
return parts.slice(0, 4).join(".");
48+
}
49+
});
50+
51+

package-lock.json

Lines changed: 30 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
"build-site": "run-s \"zarro build-site\"",
1212
"prepare-build-artifacts": "run-s \"zarro prepare-build-artifacts\"",
1313
"dump-env": "node -e \"console.log(process.env);\"",
14-
"release": "run-s build-release prepare-build-artifacts build-site",
15-
"zarro": "cross-env BUILD_INCLUDE=src/log4net.sln zarro"
14+
"release": "run-s update-version-info build-release prepare-build-artifacts build-site",
15+
"zarro": "cross-env BUILD_INCLUDE=src/log4net.sln zarro",
16+
"update-version-info": "run-s \"zarro update-version-info\""
1617
},
1718
"repository": {
1819
"type": "git",
@@ -29,6 +30,7 @@
2930
"gulp-zip": "^5.0.1",
3031
"npm-run-all": "^4.1.5",
3132
"rimraf": "^3.0.2",
33+
"simple-git": "^2.20.1",
3234
"which": "^2.0.2",
3335
"yafs": "^1.5.0",
3436
"zarro": "^1.78.0"

src/log4net/AssemblyInfo.cs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -54,77 +54,77 @@
5454
//
5555

5656
#if (CLI_1_0)
57-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.CLI 1.0")]
57+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.CLI 1.0")]
5858
[assembly: AssemblyTitle("Apache log4net for CLI 1.0 Compatible Frameworks")]
5959
#elif (NET_1_0)
60-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 1.0")]
60+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 1.0")]
6161
[assembly: AssemblyTitle("Apache log4net for .NET Framework 1.0")]
6262
#elif (NET_1_1)
63-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 1.1")]
63+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 1.1")]
6464
[assembly: AssemblyTitle("Apache log4net for .NET Framework 1.1")]
6565
#elif (NET_4_5)
66-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 4.5")]
66+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 4.5")]
6767
[assembly: AssemblyTitle("Apache log4net for .NET Framework 4.5")]
6868
#elif (NET_4_0)
6969
#if CLIENT_PROFILE
70-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 4.0 CP")]
70+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 4.0 CP")]
7171
[assembly: AssemblyTitle("Apache log4net for .NET Framework 4.0 Client Profile")]
7272
#else
73-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 4.0")]
73+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 4.0")]
7474
[assembly: AssemblyTitle("Apache log4net for .NET Framework 4.0")]
7575
#endif // Client Profile
7676
#elif (NET_3_5)
7777
#if CLIENT_PROFILE
78-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 3.5 CP")]
78+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 3.5 CP")]
7979
[assembly: AssemblyTitle("Apache log4net for .NET Framework 3.5 Client Profile")]
8080
#else
81-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 3.5")]
81+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 3.5")]
8282
[assembly: AssemblyTitle("Apache log4net for .NET Framework 3.5")]
8383
#endif // Client Profile
8484
#elif (NET_2_0)
85-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET 2.0")]
85+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET 2.0")]
8686
[assembly: AssemblyTitle("Apache log4net for .NET Framework 2.0")]
8787
#elif (NETCF_1_0)
88-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NETCF 1.0")]
88+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NETCF 1.0")]
8989
[assembly: AssemblyTitle("Apache log4net for .NET Compact Framework 1.0")]
9090
#elif (NETCF_2_0)
91-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NETCF 2.0")]
91+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NETCF 2.0")]
9292
[assembly: AssemblyTitle("Apache log4net for .NET Compact Framework 2.0")]
9393
#elif (MONO_1_0)
94-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-Mono 1.0")]
94+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-Mono 1.0")]
9595
[assembly: AssemblyTitle("Apache log4net for Mono 1.0")]
9696
#elif (MONO_2_0)
97-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-Mono 2.0")]
97+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-Mono 2.0")]
9898
[assembly: AssemblyTitle("Apache log4net for Mono 2.0")]
9999
#elif (MONO_3_5)
100-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-Mono 3.5")]
100+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-Mono 3.5")]
101101
[assembly: AssemblyTitle("Apache log4net for Mono 3.5")]
102102
#elif (MONO_4_0)
103-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-Mono 4.0")]
103+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-Mono 4.0")]
104104
[assembly: AssemblyTitle("Apache log4net for Mono 4.0")]
105105
#elif (SSCLI_1_0)
106-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-SSCLI 1.0")]
106+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-SSCLI 1.0")]
107107
[assembly: AssemblyTitle("Apache log4net for Shared Source CLI 1.0")]
108108
#elif (NET)
109-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET")]
109+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET")]
110110
[assembly: AssemblyTitle("Apache log4net for .NET Framework")]
111111
#elif (NETSTANDARD1_3)
112-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET Standard 1.3")]
112+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET Standard 1.3")]
113113
[assembly: AssemblyTitle("Apache log4net for .NET Standard 1.3")]
114114
#elif (NETSTANDARD2_0)
115-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NET Standard 2.0")]
115+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NET Standard 2.0")]
116116
[assembly: AssemblyTitle("Apache log4net for .NET Standard 2.0")]
117117
#elif (NETCF)
118-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-.NETCF")]
118+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-.NETCF")]
119119
[assembly: AssemblyTitle("Apache log4net for .NET Compact Framework")]
120120
#elif (MONO)
121-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-Mono")]
121+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-Mono")]
122122
[assembly: AssemblyTitle("Apache log4net for Mono")]
123123
#elif (SSCLI)
124-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0-SSCLI")]
124+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0-SSCLI")]
125125
[assembly: AssemblyTitle("Apache log4net for Shared Source CLI")]
126126
#else
127-
[assembly: AssemblyInformationalVersionAttribute("2.0.9.0")]
127+
[assembly: AssemblyInformationalVersionAttribute("2.0.11.0")]
128128
[assembly: AssemblyTitle("Apache log4net")]
129129
#endif
130130

src/log4net/AssemblyVersionInfo.cpp

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/log4net/AssemblyVersionInfo.js

Lines changed: 0 additions & 49 deletions
This file was deleted.

src/log4net/AssemblyVersionInfo.vb

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/log4net/log4net.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<PackageId>log4net</PackageId>
4-
<Version>2.0.10</Version>
4+
<Version>2.0.11</Version>
55
<Title>Apache log4net</Title>
66
<Product>Apache log4net</Product>
77
<Description>

0 commit comments

Comments
 (0)