Skip to content

feat(cli): oclif 5 and Node.js 22+, @norbix.ai/ts 1.3, release fixes - #14

Merged
Domantas merged 4 commits into
mainfrom
fix/sdk-1.3-and-deps
Sep 16, 2026
Merged

Domantas merged 4 commits into
mainfrom
fix/sdk-1.3-and-deps

Conversation

@Domantas

Copy link
Copy Markdown
Contributor

Why the release after #5 didn't publish

#5 was rebase-merged, so its feat(release): … title never became a commit. main only had chore: / ci: / test: / docs(tasks): commits since v0.1.0, so semantic-release found "no relevant changes". Trusted publishing works: both runs logged OIDC token exchange with the npm registry succeeded. The "local branch main is behind the remote one" run started while the docs PRs were landing.

This PR has real release-worthy commits and a feat(cli): title, so it publishes 0.2.0 whether it's squash- or rebase-merged.

Commits

  1. fix(deps): require @norbix.ai/ts ^1.3.0. The lockfile pinned 1.2.0, which has no makeFilePublic / makeFolderPublic / makeFilePrivate / makeFolderPrivate / stopPushCampaign. norbix files publish|unpublish and norbix push stop would fail at runtime; the tests mock the SDK, so they couldn't catch it. 1.2.0 also defaulted to *.norbix.dev; 1.3.0 uses *.norbix.ai, which the CLI already assumes.
  2. ci(release): release from the branch tip. The job fetches and resets to origin/main before running semantic-release, as norbix-js's does, so a merge landing seconds later doesn't swallow a release.
  3. chore(deps): TypeScript 7 and @inquirer/prompts 8 (Dependabot chore(deps): bump typescript from 5.9.3 to 7.0.2 #13, chore(deps): bump @inquirer/prompts from 7.10.1 to 8.7.2 #11). TS 7 no longer loads @types/* implicitly, so tsconfig.json lists "types": ["node"]. Build output is the same 122 files.
  4. feat(cli): oclif 5 and Node.js 22+ (Dependabot chore(deps): bump oclif from 4.23.28 to 6.0.0 #6, chore(deps): bump @types/node from 22.20.1 to 26.5.1 #7, chore(deps): bump @oclif/core from 4.12.0 to 5.0.0 #8, chore(deps): bump @oclif/test from 4.2.0 to 5.0.0 #9, chore(deps): bump @oclif/plugin-help from 6.2.53 to 7.0.0 #10, chore(deps): bump @oclif/plugin-autocomplete from 3.2.53 to 4.0.0 #12). @oclif/core 5, plugin-help 7, plugin-autocomplete 4, @oclif/test 5, oclif 6 and @types/node 26. The oclif 5 packages require Node ≥ 22, so engines.node is >=22 (Node 18/20 are EOL). README and the CI matrix (Node 22/24 × Linux/macOS/Windows) are updated.

Release

The real analyzeCommits + generateNotes since v0.1.0 give 0.2.0: Features: cli: move to oclif 5 and require Node.js 22+; Bug Fixes: deps: require @norbix.ai/ts ^1.3.0. The Node 22 requirement is stated in the release notes, without a BREAKING CHANGE footer (that would publish 1.0.0).

After merge

Close the Dependabot PRs covered here: #6–#13.

Test plan

  • typecheck, 42 tests, --help / db --help / files --help, packed oclif manifest (112 commands incl. files:publish, push:stop), npm audit 0
  • Lockfile: npm@10 ci and npm@11 ci pass, npm ls clean
  • SDK 1.3.0 exposes every method the CLI calls; default endpoint https://api.norbix.ai
  • CI matrix
  • After merge: @norbix.ai/cli@0.2.0 on npm with provenance, tag v0.2.0, GitHub Release

🤖 Generated with Claude Code

Domantas and others added 4 commits September 16, 2026 17:37
The lockfile pinned @norbix.ai/ts 1.2.0, which has no makeFilePublic /
makeFilePrivate / makeFolderPublic / makeFolderPrivate or stopPushCampaign.
`norbix files publish|unpublish` and `norbix push stop` call those,
so they would fail at runtime (the tests replace the SDK with a recorder and
could not catch it). 1.2.0 also defaulted to *.norbix.dev endpoints, while the
CLI assumes the *.norbix.ai defaults; 1.3.0 uses https://api.norbix.ai and
https://hub.norbix.ai.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
After #5 merged, docs PRs landed seconds later; the run for an earlier SHA
logged "The local branch main is behind the remote one, therefore a new
version won't be published". Fetch and reset to origin/<branch> first, as
norbix-js's release job does.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- typescript 5.9 -> 7.0 (native compiler). TS 7 no longer picks up @types/*
  automatically, so tsconfig lists "types": ["node"]. The build emits the
  same 122 files; the packed oclif manifest still has all 112 commands.
- @inquirer/prompts 7 -> 8 (confirm / input / password API unchanged here).
  Note: v8 requires Node >= 20.17.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- @oclif/core 4 -> 5, @oclif/plugin-help 6 -> 7,
  @oclif/plugin-autocomplete 3 -> 4, @oclif/test 4 -> 5, oclif 4 -> 6,
  @types/node 22 -> 26.
- The oclif 5 packages require Node >= 22, so engines.node is now >=22
  (Node 18 and 20 are end-of-life). README and the CI matrix (Node 22/24 on
  Linux, macOS, Windows) follow; the test suite now runs on every matrix entry.

Minimum Node.js is now 22. Users on Node 18/20 keep working with 0.1.x.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 0.2.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant