Please provide a (simple) way to reproduce the problem. A bug that can not be reproduced is less likely be solved.
Please also include the reasoning for the desired feature and not just its description. Sometimes it is obvious, but other times a few sample use cases or an explanation can come in handy.
Code contributions are greatly welcome and appreciated.
Before creating a pull request for larger features please open a related issue to enable a discussion and ensure alignment with the goals of this project.
webide-client-tools uses npm tasks for the development flows. Examine the [package.json][./package] scripts for all the available tasks:
yarn install
Type checks are done by combining TypeScript interfaces and JSDocs annotations.
yarn run type_check
webide-client-tools uses prettier to avoid caring about code formatting...
To format your new code use:
yarn run format
For ease of use see prettier's editor integrations
Linting is done using ESLint.
yarn run lint
webide-client-tools uses several different types of tests to promote high quality.
The most basic ones are the jest unit tests, which are also the most relevant ones.
yarn run test
Additionally integration tests are used to test webide-client-tools as an end user with the help of npm link
yarn run test_integration
yarn run ci_full_flow
-
Update the CHANGELOG.md.
- It must start with the literal string: "## X.Y.Z (INSERT_DATE_HERE)"
-
Update the BREAKING_CHANGES.md.
-
Commit and push the modifications from the previous steps.
-
Ensure a clean git working directory.
-
Run the release script:
yarn run release [patch|minor|major]
The release script will:
- Update versions and dates in appropiate places.
- Commit those changes to the master branch.
- Create a git tag for the new version.
- Push that tag to the github.com repo.
- Pushing the tag will trigger a deploy to npm build on circle-ci.