Skip to main content
More in Learn

Contributing to SDKs and Libraries

Our SDKs and Libraries are centralized (are in the process of being centralized) to one Mono Repository on Github: https://github.com/CrystallizeAPI/libraries.

Contributing is one Pull Request away!

Install the libraries mono repository to contribute

After you forked and `git clone`d the mono repository you can run the tests right away. It will install the dependencies of each components in the process.

In general we provide targets in the Makefile to ease and automate the actions.

git clone https://github.com/CrystallizeAPI/libraries
cd libraries
make tests

For a Pull Request to be reviewed by the Crystallize team you will need to create it against the “main” branch.

The CI will run on your Pull Request, the tests MUST passed of course but you also need to respect the Coding Standards. It usually a good idea to run

make codeclean

In order to clean the code and fix the Coding Standards.

Live demo on Github.io

Part of the Mono Repo is also the Live Demo of a subset of the provided libs: https://crystallizeapi.github.io/libraries/

You can contribute to these React App that is located in the `docs/react-app` folder. To run it:

cd docs/react-app
npm install
npm start
Once installed there is `make start-demo-app` that can work for you.

Mono Repository

The Mono Repository is the Git Repository that acts as an entry point for code we share in order to regroup these topics:

  • Coding Standards
  • Pull Requests
  • Issues
  • CI & Automations
  • Tests

To sum up:

  • ✅ Everything is in a single place with many components independent from each other but also interoperable and working well all together.
  • 💡 The Mono Repository should never be installed in a project. It is meant for contributions only.

Many Repository

The Many Repositories are the Git Repositories that holds each components from the Mono Repository in order to be released (or tagged) and distributed.

A Many Repository contains a single component :

  • Autonomous
  • Independent
  • Clean

To sum up:

  • ✅ A Many Repository will have tags and it will be read-only.
  • 💡 A Many Repository won’t have Issue or Pull Request enabled. It is meant for distribution only.

People showing thumbs up

Need further assistance?

Ask the Crystallize team or other enthusiasts in our slack community.

Join our slack community