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.
syntax:bash
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
syntax:bash
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:
syntax:bash
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.