We welcome any kind of contribution to our software, from simple comment or question to a full fledged pull request.
A contribution can be one of the following cases:
- you have a question;
- you think you may have found a bug (including unexpected behavior);
- you want to make some kind of change to the code base (e.g. to fix a bug, to add a new feature, to update documentation).
The sections below outline the steps in each case.
- use the search functionality here to see if someone already filed the same issue;
- if your issue search did not yield any relevant results, make a new issue;
- apply the "Question" label; apply other labels when relevant.
- use the search functionality here to see if someone already filed the same issue;
- if your issue search did not yield any relevant results, make a new issue, making sure to provide enough information to the rest of the community to understand the cause and context of the problem. Depending on the issue, you may want to include:
- the SHA hashcode of the commit that is causing your problem;
- some identifying information (name and version number) for dependencies you're using;
- information about the operating system;
- apply relevant labels to the newly created issue.
- (important) announce your plan to the rest of the community before you start working. This announcement should be in the form of a (new) issue;
- (important) wait until some kind of concensus is reached about your idea being a good idea;
- if needed, fork the repository to your own Github profile and create your own feature branch off of the latest master commit. While working on your feature branch, make sure to stay up to date with the master branch by pulling in changes, possibly from the 'upstream' repository (follow the instructions here and here);
- install dependencies with
yarn
; - make sure build still works by running
yarn build
; - make sure the existing tests still work by running
yarn test -- run
; - add your own tests (if necessary);
- update or expand the documentation;
- make sure linter is happy with
yarn lint
. Optionally enable automatic lint before committing withyarn postinstall
; - push your feature branch to (your fork of) this repository on GitHub;
- create the pull request, e.g. following the instructions here.
In case you feel like you've made a valuable contribution, but you don't know how to write or run tests for it, or how to generate the documentation: don't let this discourage you from making the pull request; we can help you! Just go ahead and submit the pull request, but keep in mind that you might be asked to append additional commits to your pull request (have a look at some of our old pull requests to see how this works, for example #1).
Audience for this chapter are the maintainers of this repo.
There are 3 things that can be published in this repo in this repo:
- The
packages/core/
directory aka@i-vresse/wb-core
package, versions of this package are published to npmjs - The
packages/form/
directory aka@i-vresse/wb-form
package, versions of this package are published to npmjs - The root of the repo, versions of the repo are published as GitHub releases and Zenodo records.
There is a single CHANGELOG.md that is for consumers of the packages and repo.
- Set version in
packages/form/package.json
withyarn workspace @i-vresse/wb-form version <patch|minor|major>
- Add changes to CHANGELOG.md and push changes to main branch
- Make sure you are logged in on npm by checking with
yarn npm whoami --scope i-vresse
and optionally login in withyarn workspace @i-vresse/wb-form npm login --scope i-vresse --publish
- Clean
dist/
withyarn workspace @i-vresse/wb-form clean
, make sureyarn dev
is not running - Build with
yarn workspace @i-vresse/wb-form build
- Publish with
yarn workspace @i-vresse/wb-form npm publish --otp <otp code>
- Create git tag for version with
git tag @i-vresse/wb-form@${packages/form/package.json:version}
andgit push origin --tags
- Set version in
packages/core/package.json
withyarn workspace @i-vresse/wb-core version <patch|minor|major>
- Add changes to CHANGELOG.md and push changes to main branch
- Make sure you are logged see step 3 in chapter above.
- Clean
dist/
withyarn workspace @i-vresse/wb-core clean
, make sureyarn dev
is not running - Build with
yarn workspace @i-vresse/wb-core build
- Publish with
yarn workspace @i-vresse/wb-core npm publish --otp <otp code>
- Create git tag for version with
git tag @i-vresse/wb-core@${packages/core/package.json:version}
andgit push origin --tags
The @i-vresse/wb-core
depends on @i-vresse/wb-form
.
To use the core package outside this monorepo make sure the version of the form package it needs has been published.
The root, packages and apps have independend versions. To make a release of the whole repo the versions need to be concatenated.
- Add changes to CHANGELOG.md
- Set version in
/package.json
withyarn version <patch|minor|major>
and push changes to main branch - Goto https://github.com/i-VRESSE/workflow-builder/releases/new
- Create a tag in format 'v' + version value from
/package.json
- Set title to
i-VRESSE workflow-builder
- Copy
The workflow builder allows you to create a complex TOML formatted config file based on a set of JSON schemas.
to release description - Append newest sections in CHANGELOG.md to release description
- Release it