@camunda8/sdk
Version:
[](https://www.npmjs.com/package/@camunda8/sdk)
122 lines (85 loc) • 5.72 kB
Markdown
# Contributing to /sdk
Thank you for considering contributing to /sdk! We welcome contributions from the community to make our package even better.
## Getting Started
To get started with contributing, please follow these steps:
It's a good idea to discuss your contribution in an issue in the repository first, to align on the approach - particularly if it is a new feature.
1. Fork the repository and clone it to your local machine.
2. Check out the `alpha` branch. This is the development branch.
3. Install the dependencies by running `npm install`.
4. Make your changes or additions to the codebase.
5. Write tests to cover your changes and ensure existing tests pass.
6. Run the tests using `npm test` to make sure everything is working correctly. See below for details on running integration tests.
7. Commit your changes and push them to your forked repository. Use [Conventional Commit](https://www.conventionalcommits.org/en/v1.0.0/) format for the commit message. See the note below.
8. Submit a pull request against `alpha`.
9. If any changes are needed they will be requested.
10. Your PR will be merged to `alpha` and the integration tests run in CI.
11. When the `alpha` branch is merged into `main`, a new package is published to NPM.
## A note on commit messages
The repository uses [`semantic-release`](https://github.com/semantic-release/semantic-release) to create releases. Because we track the Camunda 8 Platform minor version, we treat feature implementation during a minor release cycle as a patch release rather than a minor release.
Creating a commit with a `feat` commit message will cause the package version patch release number to increment. To update the minor version, a commit with the type `minor` is needed.
## Running tests
Run all the unit tests with `npm run test`.
### Integration tests
Integration tests can be run against Self-Managed or against Camunda SaaS.
To run integration tests against Camunda SaaS, but credentials for a Camunda SaaS API Client with scopes for all components in the environment, then run the integration tests against Camunda SaaS with `npm run test:integration`.
To run the integration tests against Self-Managed, you can use either your own Self-Managed instance, or start one locally using Docker.
To start one locally, run `docker compose -f docker-compose-modeler.yaml -f docker-compose-multitenancy.yml up -d`.
Put the following credentials in the environment:
```bash
# Self-Managed
export ZEEBE_SECURE_CONNECTION=false
export ZEEBE_GRPC_ADDRESS='localhost:26500'
export ZEEBE_REST_ADDRESS='localhost:8080/v1/'
export ZEEBE_CLIENT_ID='zeebe'
export ZEEBE_CLIENT_SECRET='zecret'
export ZEEBE_AUTHORIZATION_SERVER_URL='http://localhost:18080/auth/realms/camunda-platform/protocol/openid-connect/token'
export ZEEBE_TOKEN_AUDIENCE='zeebe.camunda.io'
export CAMUNDA_CREDENTIALS_SCOPES='Zeebe,Tasklist,Operate,Optimize'
export CAMUNDA_OAUTH_URL='http://localhost:18080/auth/realms/camunda-platform/protocol/openid-connect/token'
export CAMUNDA_TASKLIST_BASE_URL='http://localhost:8082'
export CAMUNDA_OPERATE_BASE_URL='http://localhost:8081'
export CAMUNDA_OPTIMIZE_BASE_URL='http://localhost:8083'
export CAMUNDA_MODELER_BASE_URL='http://localhost:8086'
export CAMUNDA_MODELER_OAUTH_AUDIENCE='_omit_'
export CAMUNDA_TENANT_ID=''
export CAMUNDA_TEST_TYPE='local'
# Modeler API Client
export CAMUNDA_CONSOLE_CLIENT_ID='zeebe'
export CAMUNDA_CONSOLE_CLIENT_SECRET='zecret'
# export CAMUNDA_CONSOLE_BASE_URL='https://api.cloud.camunda.io'
# export CAMUNDA_CONSOLE_OAUTH_AUDIENCE='api.cloud.camunda.io'
```
Now run the integration tests against Self-Managed with `npm run test:local-integration`.
### Multi-tenancy tests
To run the multi-tenancy tests, use the following environment variables:
```bash
# Self-Managed
export ZEEBE_SECURE_CONNECTION=false
export ZEEBE_GRPC_ADDRESS='localhost:26500'
export ZEEBE_REST_ADDRESS='localhost:8080/v1/'
export ZEEBE_CLIENT_ID='zeebe'
export ZEEBE_CLIENT_SECRET='zecret'
export ZEEBE_AUTHORIZATION_SERVER_URL='http://localhost:18080/auth/realms/camunda-platform/protocol/openid-connect/token'
export ZEEBE_TOKEN_AUDIENCE='zeebe.camunda.io'
export CAMUNDA_CREDENTIALS_SCOPES='Zeebe,Tasklist,Operate,Optimize'
export CAMUNDA_OAUTH_URL='http://localhost:18080/auth/realms/camunda-platform/protocol/openid-connect/token'
export CAMUNDA_TASKLIST_BASE_URL='http://localhost:8082'
export CAMUNDA_OPERATE_BASE_URL='http://localhost:8081'
export CAMUNDA_OPTIMIZE_BASE_URL='http://localhost:8083'
export CAMUNDA_TEST_TYPE='local'
export CAMUNDA_TENANT_ID='<default>'
```
Now run the integration tests against Self-Managed with `npm run test:multitenancy`.
## Code Style
We follow a specific code style in our project to maintain consistency. Please make sure to adhere to the following guidelines:
- Run `npm run lint` to lint your code with ESLint.
- Run `npm run format` to format your code to the project standard.
## Issue Reporting
If you encounter any bugs or issues while using /sdk, please report them in the [issue tracker](https://github.com/camunda/camunda-8-js-sdk/issues). Provide as much detail as possible, including steps to reproduce the issue.
## Feature Requests
If you have any ideas or feature requests for /sdk, please submit them in the [issue tracker](https://github.com/camunda/camunda-8-js-sdk/issues). We appreciate your feedback and suggestions.
## License
By contributing to /sdk, you agree that your contributions will be licensed under the [Apache License](https://opensource.org/licenses/Apache).
## Contact
If you have any questions or need further assistance, open an issue in the repository.
Happy contributing!