Skip to content

Latest commit

 

History

History
40 lines (22 loc) · 2.86 KB

CONTRIBUTING.md

File metadata and controls

40 lines (22 loc) · 2.86 KB

How to contribute

Please read the Contribution Guide.

Then please sign the Contributor License Agreement.

Releasing

SDK maintainers should follow semantic versioning best practices for releasing the SDK.

Use your best judgement when deciding on when to craft a release: maybe enough changes have accumulated to warrant a release, maybe there's a high-urgency fix that needs to be published immediately, or maybe you can put it off for a particular feature. It's all dependent on what else is going on.

As you probably already know, there are two main components to the JavaScript SDK environment: the stellar-base package (this repo) and the higher-level stellar-sdk package (from here) that relies on this one as a dependency. Care should be taken when updating either, as there are quite a few small steps that can get overlooked.

Updating Base

Once all of the PRs for a particular release are in, it's time to actually publish & deploy a new version.

  • Create a new branch with the new version, e.g. git switch -C v1.0.0

  • First, look at the diff between the latest release and master: e.g. https://github.com/stellar/js-stellar-base/compare/v5.1.0...master. Replace v5.1.0 here with the latest release.

  • Ensure that all of the PRs in this delta are accurately reflected in the CHANGELOG, broken down by impact and linking to the corresponding PRs. Update the file if necessary.

  • Update the top-level "version" field in the package.json file to reflect the new version.

  • Run the final sanity check to ensure the builds pass: yarn dtslint && yarn test && yarn preversion.

  • Commit & push your branch, then create a PR.

  • Once approved, merge it and then create a new release, using the same version as you did for the branch; let GitHub create the tag for you. In the description for the release, paste in the relevant parts of the CHANGELOG.

  • Once the release has been created and the build succeeds, the new version should be deployed to npm and accessible to all. You can watch this yourself, either via the npm page or from the command line:

watch 'curl -s "https://registry.npmjs.org/stellar-base" | jq ".versions | keys | last"'

Updating SDK

Refer to the SDK's contributing guide for any additional steps required there.