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 installbrings 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.