From 24ca6e68fc5df684217e1ceaac77701302fc2289 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2026 18:21:58 +0000 Subject: [PATCH] chore(release): 0.1.0 Fold the six changes/unreleased/ fragments into the 0.1.0 section of CHANGELOG.md; the release workflow publishes that section as the GitHub release notes. Co-Authored-By: jason.han --- CHANGELOG.md | 22 +++++++++++++++++++ .../unreleased/ecma-427-identities.changed.md | 1 - .../unreleased/help-identity-grammar.fixed.md | 1 - changes/unreleased/release-line.added.md | 1 - changes/unreleased/syspi-phase-1.added.md | 1 - changes/unreleased/windows-file-uris.fixed.md | 1 - changes/unreleased/windows-paths.fixed.md | 1 - 7 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 CHANGELOG.md delete mode 100644 changes/unreleased/ecma-427-identities.changed.md delete mode 100644 changes/unreleased/help-identity-grammar.fixed.md delete mode 100644 changes/unreleased/release-line.added.md delete mode 100644 changes/unreleased/syspi-phase-1.added.md delete mode 100644 changes/unreleased/windows-file-uris.fixed.md delete mode 100644 changes/unreleased/windows-paths.fixed.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..37ceeff --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,22 @@ +# Changelog + +All notable changes to SysPI are recorded here, in [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) +form; SysPI follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and each release's tag +equals its version, as `.project.json` requires of the packages it installs. + +## 0.1.0 - 2026-10-30 + +### Added + +- Releases publish `syspi--.tar.gz` (`.zip` on Windows) for Linux, macOS and Windows on amd64 and arm64, each holding `syspi` and `LICENSE`, with `SHA256SUMS.txt` signed keyless by the release workflow (`SHA256SUMS.txt.bundle`); the tag publishes nothing until the repository gate is green on all three systems. `install.sh` (Linux, macOS) and `install.ps1` (Windows) install a release after checking the download against the manifest and the installed binary against the tag. +- The `syspi` command: `init`, `add`, `install`, `sync`, `lock`, `bundle` and `version` for KerML / SysML v2 project-interchange packages — any git, svn or hg repository with `.project.json` at a tag, a local directory, a local or remote `.kpar` file, or an OMG standard-library IRI. Packages are verified before use, installed under `lib/-_` beside `.project.json` and recorded in a deterministic `.project.lock.json` with a VCS-neutral tree hash. + +### Changed + +- Package identities are ECMA-427 Package-URLs: a repository package is `pkg:generic/?vcs_url=+:///[@][#]` with the Annex B.3.5 `vcs_url` qualifier percent-encoded (`` is the repository's last path segment, `` a tag naming a semantic version). `pkg:git//[@][#]` and the bare `+://…` notation are accepted as input and normalised to it; `syspi add` writes the canonical form into `.project.json`. `+file:///path` addresses a repository on this machine. A plain `http(s)` IRI is only dereferenced as a project interchange file (KerML 1.1 §10.3 Table 12). Other spellings (`pkg:svn/…`, `pkg:hg/…`, clone URLs such as `https://host/path.git@v`, `git@host:path`, `file:///path@v`) are refused with a message naming the accepted ones. + +### Fixed + +- `syspi -h` names the ECMA-427 identity grammar and the two input spellings it normalises, instead of the refused `pkg://` form. +- A drive letter in a `file://` resource is only a drive on Windows; on Linux and macOS `file:///C:/tools.kpar` names the directory `C:` again. The Windows spellings are documented, and the lock-rollback test runs on Windows too. +- On Windows, a repository on this machine is accepted as `git+file:///C:/path` (and `git+file://C:/path`), `file://` resources with a drive letter resolve, and the suite runs on Windows; CI gates on Windows with hg and svn installed. diff --git a/changes/unreleased/ecma-427-identities.changed.md b/changes/unreleased/ecma-427-identities.changed.md deleted file mode 100644 index dacf0b5..0000000 --- a/changes/unreleased/ecma-427-identities.changed.md +++ /dev/null @@ -1 +0,0 @@ -- Package identities are ECMA-427 Package-URLs: a repository package is `pkg:generic/?vcs_url=+:///[@][#]` with the Annex B.3.5 `vcs_url` qualifier percent-encoded (`` is the repository's last path segment, `` a tag naming a semantic version). `pkg:git//[@][#]` and the bare `+://…` notation are accepted as input and normalised to it; `syspi add` writes the canonical form into `.project.json`. `+file:///path` addresses a repository on this machine. A plain `http(s)` IRI is only dereferenced as a project interchange file (KerML 1.1 §10.3 Table 12). Other spellings (`pkg:svn/…`, `pkg:hg/…`, clone URLs such as `https://host/path.git@v`, `git@host:path`, `file:///path@v`) are refused with a message naming the accepted ones. diff --git a/changes/unreleased/help-identity-grammar.fixed.md b/changes/unreleased/help-identity-grammar.fixed.md deleted file mode 100644 index ec00195..0000000 --- a/changes/unreleased/help-identity-grammar.fixed.md +++ /dev/null @@ -1 +0,0 @@ -- `syspi -h` names the ECMA-427 identity grammar and the two input spellings it normalises, instead of the refused `pkg://` form. diff --git a/changes/unreleased/release-line.added.md b/changes/unreleased/release-line.added.md deleted file mode 100644 index 13e3029..0000000 --- a/changes/unreleased/release-line.added.md +++ /dev/null @@ -1 +0,0 @@ -- Releases publish `syspi--.tar.gz` (`.zip` on Windows) for Linux, macOS and Windows on amd64 and arm64, each holding `syspi` and `LICENSE`, with `SHA256SUMS.txt` signed keyless by the release workflow (`SHA256SUMS.txt.bundle`); the tag publishes nothing until the repository gate is green on all three systems. `install.sh` (Linux, macOS) and `install.ps1` (Windows) install a release after checking the download against the manifest and the installed binary against the tag. diff --git a/changes/unreleased/syspi-phase-1.added.md b/changes/unreleased/syspi-phase-1.added.md deleted file mode 100644 index 50ce436..0000000 --- a/changes/unreleased/syspi-phase-1.added.md +++ /dev/null @@ -1 +0,0 @@ -- The `syspi` command: `init`, `add`, `install`, `sync`, `lock`, `bundle` and `version` for KerML / SysML v2 project-interchange packages — any git, svn or hg repository with `.project.json` at a tag, a local directory, a local or remote `.kpar` file, or an OMG standard-library IRI. Packages are verified before use, installed under `lib/-_` beside `.project.json` and recorded in a deterministic `.project.lock.json` with a VCS-neutral tree hash. diff --git a/changes/unreleased/windows-file-uris.fixed.md b/changes/unreleased/windows-file-uris.fixed.md deleted file mode 100644 index cfd15d4..0000000 --- a/changes/unreleased/windows-file-uris.fixed.md +++ /dev/null @@ -1 +0,0 @@ -- A drive letter in a `file://` resource is only a drive on Windows; on Linux and macOS `file:///C:/tools.kpar` names the directory `C:` again. The Windows spellings are documented, and the lock-rollback test runs on Windows too. diff --git a/changes/unreleased/windows-paths.fixed.md b/changes/unreleased/windows-paths.fixed.md deleted file mode 100644 index cbe6ff4..0000000 --- a/changes/unreleased/windows-paths.fixed.md +++ /dev/null @@ -1 +0,0 @@ -- On Windows, a repository on this machine is accepted as `git+file:///C:/path` (and `git+file://C:/path`), `file://` resources with a drive letter resolve, and the suite runs on Windows; CI gates on Windows with hg and svn installed.