From 5b4a89d544ae54e942410140c58a4b338c4cd8d4 Mon Sep 17 00:00:00 2001 From: Graham Nelson Date: Sat, 20 Aug 2022 11:36:48 +0100 Subject: [PATCH] Change to kit version syncing mechanism --- README.md | 2 +- build.txt | 4 ++-- .../BasicInformExtrasKit/kit_metadata.json | 2 +- .../Inter/BasicInformKit/kit_metadata.json | 2 +- .../Inter/CommandParserKit/kit_metadata.json | 2 +- .../EnglishLanguageKit/kit_metadata.json | 2 +- .../Inter/WorldModelKit/kit_metadata.json | 2 +- inpolicy/Chapter 2/Kit Versioning.w | 22 ++++++++++++++++--- notes/release/10-1-0.md | 7 ++++-- notes/version_history.md | 4 ++-- 10 files changed, 34 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 672a4f055..a17ff32ff 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Inform 7 -[Version](notes/versioning.md): 10.1.0-beta+6V43 'Krypton' (18 August 2022) +[Version](notes/versioning.md): 10.1.0-beta+6V44 'Krypton' (20 August 2022) ## About Inform diff --git a/build.txt b/build.txt index 414dd1da3..2d7a26780 100644 --- a/build.txt +++ b/build.txt @@ -1,3 +1,3 @@ Prerelease: beta -Build Date: 18 August 2022 -Build Number: 6V43 +Build Date: 20 August 2022 +Build Number: 6V44 diff --git a/inform7/Internal/Inter/BasicInformExtrasKit/kit_metadata.json b/inform7/Internal/Inter/BasicInformExtrasKit/kit_metadata.json index 631ff5cbe..08df591bc 100644 --- a/inform7/Internal/Inter/BasicInformExtrasKit/kit_metadata.json +++ b/inform7/Internal/Inter/BasicInformExtrasKit/kit_metadata.json @@ -2,7 +2,7 @@ "is": { "type": "kit", "title": "BasicInformExtrasKit", - "version": "10.1.0-beta+6V20" + "version": "10.1.0-beta+6V44" }, "kit-details": { "has-priority": 1 diff --git a/inform7/Internal/Inter/BasicInformKit/kit_metadata.json b/inform7/Internal/Inter/BasicInformKit/kit_metadata.json index b15ee7fd5..c25c1d84a 100644 --- a/inform7/Internal/Inter/BasicInformKit/kit_metadata.json +++ b/inform7/Internal/Inter/BasicInformKit/kit_metadata.json @@ -2,7 +2,7 @@ "is": { "type": "kit", "title": "BasicInformKit", - "version": "10.1.0-beta+6V20" + "version": "10.1.0-beta+6V44" }, "needs": [ { "unless": { diff --git a/inform7/Internal/Inter/CommandParserKit/kit_metadata.json b/inform7/Internal/Inter/CommandParserKit/kit_metadata.json index 025c0ae6e..b4b1416ca 100644 --- a/inform7/Internal/Inter/CommandParserKit/kit_metadata.json +++ b/inform7/Internal/Inter/CommandParserKit/kit_metadata.json @@ -2,7 +2,7 @@ "is": { "type": "kit", "title": "CommandParserKit", - "version": "10.1.0-beta+6V20" + "version": "10.1.0-beta+6V44" }, "needs": [ { "need": { diff --git a/inform7/Internal/Inter/EnglishLanguageKit/kit_metadata.json b/inform7/Internal/Inter/EnglishLanguageKit/kit_metadata.json index ef03b37b9..97a85d108 100644 --- a/inform7/Internal/Inter/EnglishLanguageKit/kit_metadata.json +++ b/inform7/Internal/Inter/EnglishLanguageKit/kit_metadata.json @@ -2,7 +2,7 @@ "is": { "type": "kit", "title": "EnglishLanguageKit", - "version": "10.1.0-beta+6V20" + "version": "10.1.0-beta+6V44" }, "needs": [ { "need": { diff --git a/inform7/Internal/Inter/WorldModelKit/kit_metadata.json b/inform7/Internal/Inter/WorldModelKit/kit_metadata.json index 695298a74..794a27237 100644 --- a/inform7/Internal/Inter/WorldModelKit/kit_metadata.json +++ b/inform7/Internal/Inter/WorldModelKit/kit_metadata.json @@ -2,7 +2,7 @@ "is": { "type": "kit", "title": "WorldModelKit", - "version": "10.1.0-beta+6V20" + "version": "10.1.0-beta+6V44" }, "needs": [ { "need": { diff --git a/inpolicy/Chapter 2/Kit Versioning.w b/inpolicy/Chapter 2/Kit Versioning.w index ba33fe201..7a276691d 100644 --- a/inpolicy/Chapter 2/Kit Versioning.w +++ b/inpolicy/Chapter 2/Kit Versioning.w @@ -20,6 +20,7 @@ void KitVersioning::sync_versions(void) { web_md *inform7_web = WebMetadata::get_without_modules(Pathnames::from_text(I"inform7"), NULL); semantic_version_number core_V = inform7_web->version_number; + PRINT("inform7 web has version %v\n", &core_V); KitVersioning::iterate(core_V); } @@ -77,12 +78,27 @@ semantic_version_number KitVersioning::read_version(pathname *kit, semantic_vers return VersionNumbers::null(); } } - if (VersionNumbers::is_null(set_to) == FALSE) - if (VersionNumbers::ne(set_to, V)) - @; + if (VersionNumbers::is_null(set_to) == FALSE) + @; return V; } +@ The following test used to be just |VersionNumbers::ne(set_to, V)|, but this, +because it properly followed the semver standard, regarded them as equal if they +differed only in the build code -- so |10.1.0-beta+6V20| would not be updated to +|10.1.0-beta+6V44|, for example. We now force a sync if there is any textual +difference at all. + +@ = + TEMPORARY_TEXT(a) + TEMPORARY_TEXT(b) + WRITE_TO(a, "%v", &set_to); + WRITE_TO(b, "%v", &V); + if (Str::ne(a, b)) + @; + DISCARD_TEXT(a) + DISCARD_TEXT(b) + @ We change the JSON object for the kit's metadata (at object.is.version), and then encode the object out as a new version of the file: diff --git a/notes/release/10-1-0.md b/notes/release/10-1-0.md index 06b4ce0d7..b73a81fed 100644 --- a/notes/release/10-1-0.md +++ b/notes/release/10-1-0.md @@ -1,7 +1,5 @@ # Release notes for Inform v10.1.0 -**These are incomplete and draft notes for a release not yet made** - This release was made in August 2022. Bug reports were at this time tracked at Jira, with issue numbers written I7-NNNN, but Mantis issue numbers continued to be used for bugs fixed before the move to Jira, so that this @@ -44,6 +42,11 @@ features and bug fixes in the apps for Windows, MacOS and Linux. But those have their own repositories, and their own release notes, so from now on these core Inform release notes will only mention major app changes. +## Inweb version + +Inform's one build dependency is the [Inweb literate programming system](https://github.com/ganelson/inweb). +At the time of this release, the current Inweb version was 7.2.0. + ## Language changes As noted, there are surprisingly few changes to the outward-facing language diff --git a/notes/version_history.md b/notes/version_history.md index 34a63afcf..0949e8620 100644 --- a/notes/version_history.md +++ b/notes/version_history.md @@ -2,8 +2,8 @@ See [versions](versions.md) for details of Inform's version numbering. -The next version to be released will be 10.1.0, and its [draft release note is here](release/10-1-0.md). -Links in the following table are to the archive of release notes past. +Links in the following table are to the archive of release notes. This +is in chronological order, with the current release at the bottom. Codename | Version | Build | Date | Highlights ---------- | --------------------------- | ----- | -------------- | ----------