Skip to content

Release 3.0.0 - #39

Merged
franciscbalint merged 1 commit into
mainfrom
release/v3.0.0
Oct 25, 2026
Merged

franciscbalint merged 1 commit into
mainfrom
release/v3.0.0

Conversation

@franciscbalint

Copy link
Copy Markdown
Collaborator

Why a release

npm's latest is 2.1.11, published 2026-08-14, and package.json still carried that same version — so the 27 commits since then had nothing to publish from. The v2.1.11 tag contains only index.js, utils.js and zero-bounce.js.

Unreleased until now:

Feature v2.1.11 (npm) main
Inbox Placement Tester missing present
SFTP bulk jobs missing present
Warmup client missing present
listS3files missing present
verify_plus missing present

Why major, not minor

The error contract changed. In 2.1.11 notInitialized, parameterIsMissing and parameterIsInvalid called console.error and the method resolved to undefined. They now throw, so every public method rejects on a missing or invalid argument — a caller without a catch goes from a silent undefined to an unhandled rejection. init rejecting a non-https:// apiBaseURL breaks in the same way.

Shipping that under a caret range would upgrade consumers into it silently, so it is 3.0.0. Both lines are marked BREAKING in the changelog, with a summary under the 3.0.0 heading.

Also

The changelog gains the three published releases it never recorded: 2.1.9, 2.1.10 and 2.1.11, dated from their tags. 2.1.9 is dated 2026-06-18 to match its tag rather than the npm timestamp (the same moment in UTC), which would otherwise sort it above 2.1.8.

Verified at 3.0.0

  • npm run build — webpack, compiled successfully
  • npm test — 143 jest tests pass, plus tsc --noEmit on the type consumer
  • npm run test:smoke — dist exports check out

Publishing stays manual: publish.yml is workflow_dispatch, so merging and tagging will not push to npm.

🤖 Generated with Claude Code

npm's latest is 2.1.11, published 2026-08-14, and package.json still carried
that same version -- so the 27 commits since then had nothing to publish from.
The released tag contains only index.js, utils.js and zero-bounce.js: the Inbox
Placement Tester, the SFTP bulk jobs, the Warmup client, listS3files and
verify_plus have all been unreleased since August.

Major rather than minor, because the error contract changed. In 2.1.11
notInitialized, parameterIsMissing and parameterIsInvalid called console.error
and the method resolved to undefined; they now throw, so every public method
rejects on a missing or invalid argument. A caller without a catch goes from a
silent undefined to an unhandled rejection, which is not something to ship under
a caret range. init rejecting a non-https apiBaseURL is breaking in the same way.
Both are marked BREAKING in the changelog and summarised under the 3.0.0 heading.

The changelog also gains the three published releases it never recorded: 2.1.9,
2.1.10 and 2.1.11, dated from their tags. 2.1.9 is dated 2026-06-18 to match its
tag rather than the npm timestamp, which is the same moment in UTC and would
otherwise sort it above 2.1.8.

Verified at 3.0.0: webpack build, 143 jest tests, tsc --noEmit on the type
consumer, and the dist smoke test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@franciscbalint
franciscbalint merged commit e08fa8a into main Oct 25, 2026
6 checks passed
@franciscbalint
franciscbalint deleted the release/v3.0.0 branch October 25, 2026 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant