API Working Group repository
Clone or download
nkolba Merge pull request #51 from rikoe/issue-44-remove-actions
Fix issue #44 regarding context resolution
Latest commit ac2c854 Nov 15, 2018


FDC3 API specifications

npm version Build Status semantic-release

Visit the documentation website for more info.


The FDC3 API is released under the FINOS NPMJS Organisation.

On every commit, semantic release will be executed by Travis CI and - based on the commit message - will decide to trigger a release or not.

Release managers can use commitizen to simplify their commit process; simply install npm install -g commitizen and use git cz (instead of git commit) to commit your changes. Commitizen.

It is worth noting that if release managers have the opportunity squash and merge using GitHub merge UI, in order to choose the right commit messages and keep commit log clean.

When a release is performed, Travis CI will do the following:

  • 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:

  • GH_TOKEN, used to create tags on GitHub
  • NPM_TOKEN, used to publish the npm package

You can setup variables using semantic-release-cli, Travis Repository Settings or with the travis CLI.

Release configurations can also be shared across npm projects.

Advanced configurations

Semantic release allows additional configurations to customise the release flow.

Run locally

To run the website documentation locally, please follow the steps below.

Install Ruby (MacOS)

It is strongly advised to use RVM or RBenv to install Ruby; below are the steps to install RVM on MacOS.

mkdir -p ~/.rvm/src && cd ~/.rvm/src && rm -rf ./rvm && \
git clone --depth 1 https://github.com/rvm/rvm.git && \
cd rvm && ./install
rvm install 2.5.2
which bundle #Should return a .rvm sub-path
which ruby #Should return a .rvm sub-path

Install gems needed for jekyll

cd /tmp
git clone https://github.com/pages-themes/slate
cd slate
rm -rf .bundle
gem install jekyll-theme-slate
gem install jekyll-seo-tag
gem install jekyll-watch

Run jekyll on other project

cd ../API/docs
jekyll serve --incremental