Skip to content

Releases

Each component is released independently, from its own repository, with semantic versioning driven by conventional commit messages. There is no single "SASjs version": a project pins the packages it uses, and the CLI reports what it has.

Where each one lives

Component Package Releases
CLI @sasjs/cli sasjs/cli releases
Macro Core @sasjs/core sasjs/core releases
Adapter @sasjs/adapter sasjs/adapter releases
Server @sasjs/server sasjs/server releases - executables as well as the package
Lint @sasjs/lint sasjs/lint releases
VS Code extension sasjs/vscode-extension releases

Checking what you have

sasjs --version                      # the CLI you are running
npm view @sasjs/cli version          # the newest published version
npm outdated                         # what a project is behind on

A project's package.json is the place to pin Core and the adapter. The CLI is usually global, which is why sasjs --version is part of any bug report.

How a release happens

Commits carry conventional messages - feat:, fix:, docs:, and a scope where it helps. Merging to the default branch runs the test suite, and a release is cut from the commit messages: a feat: is a minor version, a fix: a patch, a BREAKING CHANGE: a major one. The changelog is generated from the same messages, so the release notes are the commit history rather than a separate document that drifts from it.

That has one consequence worth knowing: the version number tells you the nature of the change, and the release notes tell you the detail. A fix: release can still change behaviour if the previous behaviour was wrong.

Upgrading

  • Core is embedded at compile time, so upgrading it means recompiling and redeploying - which is also why an upgrade cannot break a service you have not rebuilt.
  • The CLI is global; upgrade it with npm i -g @sasjs/cli.
  • The adapter is a project dependency, so a normal npm install brings it in; check the release notes for breaking changes before a major.
  • Server is a single binary: download the release, verify its checksum, and replace it - the settings and the drive live outside the binary.

Following along

  • Watch the repository you depend on (Releases only) for the releases that matter to you.
  • The SASjs chat room and LinkedIn carry announcements.