Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In the last decade, Javascript (JS) has been increasingly used for backend software development, especially since the first appearance of Node.js.  Listed below are some of the most common processes that are involved in a Javascript project lifecycle in several JS ecosystems/platforms, and how they interact with the project infrastructure provided by the Foundation.

Table of Contents

Node.js

Node.js is a Javascript runtime for running JS code; the node command line is easy to install and provides a rich set of options to manage the entire project lifecycle.

...

There are some situations where it is not possible to specify the scope of a package, since scoping maybe used for behaviour-related aspects of the application; for example when defining typescript typings.

Semantic release

Semantic release is a Node.js library that automates the software release process by parsing commit messages; on every commit, semantic release is executed by Travis CI and - based on the commit message - decides to trigger a release or not; release managers can use commitizen (see image below) to simplify their commit process; simply install npm install -g commitizen and use git cz (instead of git commit) to commit your changes.

...

  • Run all build and validation tasks defined by .travis.yml
  • Create a GitHub tag, labelled after the version specified in package.json
    • Include a CHANGELOG.md file with a recap of all commits added since last release
    • Publish (on npmjs.org/org/finos) an updated version of the NPM package defined by package.json
  • Increase the the version specified in package.json and push changes to master branch

Release setup

Travis CI must be configured with the following environment variables:

...

Release configurations can also be shared across npm projects.

Advanced configurations

Semantic release allows additional configurations to customise the release flow.

...