Changelog#

This page lists notable changes in each release of the sysand command-line client. For installation and upgrade instructions, see Installation.

v0.1.4 - 2026-06-16#

This release contains a fix for a bug that could truncate large metadata files when building a KPAR.

sysand build for large projects and sysand include when many files are provided are now much faster.

sysand publish now checks more requirements locally, instead of relying on the server, which results in somewhat nicer and more actionable error messages.

Enhancements made#

  • feat: improve performance of include, build and exclude #406

  • feat: perform most of KPAR pre-publish checks before publishing #400

Maintenance and upkeep improvements#

  • chore: fix inline comment about default index #405

Other merged PRs#

  • chore(deps): update all non-major dependencies #403

  • chore(deps): update all github actions #402

v0.1.3 - 2026-06-12#

This release includes a single fix for a bug that could incorretly report the offending file in case .project.json or .meta.json failed to parse.

Bugs fixed#

  • fix: don’t hardcode file name in error #399

v0.1.2 - 2026-06-11#

This release includes only packaging and installation script improvements. Notably, we now provide a static Linux build with musl libc, and have lowered glibc requirement for non-musl from 2.39 to 2.35.

The installation scripts are now configured via environment variables instead of flags, so automation using them (e.g. CI) needs to be updated. The scripts are hosted at:

API and breaking changes#

  • feat!: rework installation scripts to improve UX and support alpine etc #394

New features added#

  • feat: publish an alpine based image variant with -alpine suffixed tags #393

  • feat: add linux musl build, make GNU build require only glibc 2.35+ #391

v0.1.1 - 2026-06-08#

This is a bugfix release. Most notably, it fixes project duplication in .sysand/env.toml.

It also changes the default behavior of sysand build to update checksums and exported symbols, meaning --update-meta flag is no longer needed (it will still be accepted for now, but will warn that it’s the default). A flag --keep-index to not update exported symbols is now provided instead.

Enhancements made#

  • feat(build): update index and checksum by default, provide opt out for index #382

Bugs fixed#

  • fix(sync): don’t duplicate editable projects in env.toml that have no identifiers, include publisher in lockfile #381

Maintenance and upkeep improvements#

  • fix: make docker image release automation work with .tar.gz #375

Documentation improvements#

  • fix(docs): correct links #384

  • docs: move user documentation out of repo #383

  • docs: remove flakey workaround for the header’s link targets #380

  • docs: migrate documentation from mdbook to myst-md #379

  • docs: rename to use hyphen over underscores in url impacting folders/files #376

Continuous integration improvements#

  • fix: ensure docker image is built when github releases are published #374

Other merged PRs#

  • chore(deps): update all github actions to v2.81.1 #387

  • chore(deps): pin dependencies #386

v0.1.0 - 2026-06-01#

This is a big release. The main changes are the support for the new Sysand Index at sysand.com, and changing the local environment structure to have human readable directory names. Projects from the new index can now be referred to by the new publisher/name syntax in sysand add and sysand remove, instead of an IRI.

Lock file (sysand-lock.toml) format has changed, and has to be regenerated by running sysand lock.

Local Sysand environment will now have a different structure and live in .sysand; existing sysand_env directories won’t be used anymore and can be removed. To populate the new environment with projects recorded in lock file, run sysand sync.

Index structure has also changed, so all indexes will need to be recreated using the new sysand index commands.

API and breaking changes#

  • feat!: implement the new sysand index read protocol #288

  • feat!: use new local environment structure #297

  • feat!: rename sysand_env to .sysand #336

  • feat!: make all KPAR sources have kpar_digest and src sources have checksum #352

  • feat!: default to new index and prepare docs for the 0.1.0 release #356

  • feat!: make standard library identifiers not use urn:kpar: #345

New features added#

  • feat: support sysand add/remove PURL shorthand #354

  • feat: add index management commands #335

  • feat: support cloning local kpars #363

  • feat: add installation scripts #370

  • feat: add Dockerfile and automation to publish on/for releases #362

  • feat: add Java bindings for writing .project.json and .meta.json #349

  • feat(build): bundle LICENSES into kpar #332

  • feat(build): bundle CHANGELOG.md into kpar #331

Enhancements made#

  • Don’t update metadata by default when building projects #298

  • feat: make built KPARs reproducible by setting OS/time metadata to fixed values #372

  • Improve ‘sysand info’ command output #292

Bugs fixed#

  • fix: remove old symbols if the same file is included multiple times #359

Maintenance and upkeep improvements#

  • feat(dockerimage): provide flexible tags #365

  • release: prepare 0.1.0-rc.1 #357

  • release: prepare 0.1.0-alpha.1 #340

  • refactor: centralize sha256 calculations, update sha2 to 0.11 and gix to 0.83 #339

  • refactor: don’t use test_ prefix for tests #322

  • prepare 0.0.12-dev.1 release #319

  • chore: transition from xz to gzip compression on tars #369

Documentation improvements#

  • docs: refine release instructions #341

  • docs: reduce complexity of RELEASE.md with latest github-activity #328

  • docs: declare changelog procedure, add backfilled changelog, and introduce commit/PR title practice #323

  • docs: make navigation sections not expanded #321

  • Add more details to RELEASE.md #318

Continuous integration improvements#

  • ci: release procedure rework #314

Other merged PRs#

  • fix(deps): update dependency org.apache.maven:maven-plugin-api to v3.9.16 #351

  • chore(deps): update all github actions #350

  • chore(deps): update taiki-e/install-action action to v2.77.5 #337

  • chore(deps): update dependency org.apache.maven.plugins:maven-invoker-plugin to v3.10.1 #330

  • chore(deps): update all github actions #329

  • chore(deps): update dependency org.apache.maven.plugins:maven-invoker-plugin to v3.10.0 #316

  • chore(deps): update taiki-e/install-action action to v2.75.23 #315

v0.0.11 - 2026-04-30#

New features#

  • [workspaces] Add metadata field to .workspace.json to allow setting metadata for the whole workspace (#238). Fields from there are read and replace keys from .meta.json when building the kpars. Currently only metamodel is supported. As with all workspace functionality, this is expected to change in the future.

  • [workspaces] Allow specifying custom meta.index for each project in workspace (#241). Currently this functionality is only exposed through Java bindings.

  • Add sysand publish command (#249). It allows publishing to an index. Note: this is not ready for use, as beta.sysand.org index does not support publishing via an API yet.

  • Include README.md when building the kpar if the file is present (#239)

  • Add environment metadata file env.toml, which resides in sysand_env (#175). Currently entries.txt and per-project versions.txt are still also used, but will be removed in the future.

  • Change formatting/linting to use pre-commit hooks, and use prek to run those hooks in CI instead of a separate implementations in **/run_chores.sh and CI (#250).

  • Move Rust unit tests into separate files; for each file code.rs, tests are in code_tests.rs (#282).

v0.0.10 - 2026-03-19#

Added#

  • Support git usages, using either regular or git+ IRIs.

  • Support for configuring usage sources. See docs for details.

  • Allow adding usages by path: sysand add --path ../path/to/the/usage. Both relative and absolute paths are supported. Note that this will likely not work for project sharing, since usages are stored in .project.json as absolute paths, and so are unlikely to be available on other computers at the same location.

  • Support publisher field in .project.json. This is optional to provide when initializing the project and defaults to “untitled”. Support for projects without a publisher field remains unchanged.

Changed#

  • Bump minimum supported Python version to 3.10 (from 3.8).

Improved#

  • Support TLS 1.3 for all platforms. Previously only TLS <=1.2 was supported on Windows and macOS.

  • Send User-Agent header for all HTTP(S) requests. Value is sysand/<version>.

  • Improved logging, especially for HTTP requests.

  • Improved error reporting, especially from the usage/dependency resolvers.

Documentation#

v0.0.9 - 2026-02-03#

No changelog entry was written.

v0.0.8 - 2026-01-22#

Changes#

  • When sysand CLI crashes, it now provides a nice message to users that suggests creating a bug report (#153)

v0.0.7 - 2025-12-12#

Changes#

  • Added clone command that enables cloning a package for editing and playing around (#137). See sysand clone --help for details.

  • Unified init and new commands into just init. To get previous behaviour of sysand new example_project, use sysand init example_project.

  • Improved the command for specifying the metamodel (#128): now instead of writing the full metamodel URL, one needs to specify only the date.

  • Package indexes can now be specified in sysand.toml (#121)

  • Unify the style of messages reported by CLI.

v0.0.6 - 2025-11-14#

Changes#

  • Added workspace support (#101). Warning: it is considered experimental and can be changed or removed at any time. Current features:

    • Projects belonging to the workspace can be listed in .workspace.json.

    • Sysand can build kpar archives for all projects in workspace by running sysand build in workspace root directory

v0.0.5 - 2025-11-07#

Changes#

  • Change lockfile to have better structure and rename it from SysandLock.toml to sysand-lock.toml (#58). Only the new lockfile format is supported. Lockfile can be regenerated by running sysand lock.

  • Warn users that SysML/KerML standard library packages are not installed by default to prevent confusion (#94).

  • Improve error reporting. Errors now report their immediate context, e.g. when failing to read a file, file name is now reported (#87)

  • Add metadata for newer SysML/KerML standard libraries. This speeds up any commands that determine project usages, such as add, sync, install, etc. (part of #74)

Fixes#

  • Use relative paths in lockfile. This fixes portability to other systems (#85).

v0.0.4 - 2025-10-21#

Changes#

  • Fix errors when system temporary directory and sysand_env reside on different mount points or drives. (#81)

v0.0.3 - 2025-10-17#

No changelog entry was written.

v0.0.2 - 2025-09-18#

No changelog entry was written.

v0.0.1 - 2025-09-17#

No changelog entry was written.