Skip to content

Point the TypeScript bindings deprecation warning at the SDK plugin - #2778

Open
y4hyya wants to merge 1 commit into
stellar:mainfrom
y4hyya:typescript_bindings_deprecation_warning
Open

y4hyya wants to merge 1 commit into
stellar:mainfrom
y4hyya:typescript_bindings_deprecation_warning

Conversation

@y4hyya

@y4hyya y4hyya commented Oct 1, 2026

Copy link
Copy Markdown

What

The deprecation warning for stellar contract bindings typescript now says three things: the command will be removed in a future version of the CLI, the JavaScript Stellar SDK plugin will provide it after that, and @stellar/stellar-sdk 17.2.0 or later has to be installed globally to keep using it. It links to the plugin section of the SDK README instead of the general CLI section.

Before:

⚠️  `stellar contract bindings typescript` is deprecated. Use the JavaScript Stellar SDK instead: https://github.com/stellar/js-stellar-sdk#cli

After:

⚠️  `stellar contract bindings typescript` is deprecated and will be removed in future versions of the CLI. It will then be provided by the JavaScript Stellar SDK plugin: install `@stellar/stellar-sdk` 17.2.0 or later globally to keep using this command. See https://github.com/stellar/js-stellar-sdk#stellar-cli-plugin

The warning now goes through the existing deprecate_message helper, so its wording matches the other deprecations in the CLI. The help text for the subcommand carries the same information and FULL_HELP_DOCS.md is regenerated. A new test in soroban-test runs the command and asserts the warning on stderr.

Why

Follow up to #2758. The plugin shipped in @stellar/stellar-sdk 17.2.0, so the warning can now name the release that provides the replacement.

The previous text told users to use the SDK instead. With CLI 28.1.0 and SDK 17.2.1 installed, stellar contract bindings typescript still runs the native generator and still prints the warning, because the native command takes precedence over the plugin until it is removed. What users need from the warning is what to install before that removal, and where to read about it.

Known limitations

  1. The warning does not list the differences between the native command and the plugin. Those are tracked in Bring the bindings plugin to parity with stellar contract bindings typescript js-stellar-sdk#1755 and would go stale here. If the warning should name the SDK release that reaches parity instead of 17.2.0, that is a one line change.
  2. docs: add a guide for generating contract bindings with the Stellar CLI plugin js-stellar-sdk#1756 plans a guide and asks for the warning to link to it once it exists. This change links to the README section until then.
  3. --quiet does not silence this warning. run() calls execute(false), so the global flag never reaches the command. That is existing behavior and is not changed here, which is why the test only asserts that the warning is printed. I am glad to open a separate issue and fix for it if that is wanted.

Refs #2758

The warning now says the command will be removed, that the JavaScript
Stellar SDK plugin will provide it after that, and that
`@stellar/stellar-sdk` 17.2.0 or later has to be installed globally to
keep using it. The help text carries the same information and
FULL_HELP_DOCS.md is regenerated. Adds a test for the warning.

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

Labels

None yet

Projects

Status: Backlog (Not Ready)

Development

Successfully merging this pull request may close these issues.

1 participant