Skip to content

Latest commit

 

History

History
119 lines (76 loc) · 3.71 KB

CONTRIBUTING.md

File metadata and controls

119 lines (76 loc) · 3.71 KB

Contributing to Jaspr

New contributor guide

To get an overview of the project, read the README and Documentation.

What to contribute

We welcome all contributions to the project, however some contributions are better suited for new contributors or easier to get accepted.

Read Contributing Docs for some guidance on the types of possible contributions.

Issues

Create a new issue

If you spot a problem, search if an issue already exists. If a related issue doesn't exist, you can open a new issue.

For other contributions like documentation, examples, etc. please also open an issue so we know what you want to work on and discuss any details.

Solve an issue

Scan through our existing issues to find one that interests you. If you find an issue to work on, first comment on it to express interest in solving it. Then you are welcome to open a PR with a fix.

Setup and running

1. Cloning and setup

Make sure that you are at least on Dart SDK version 3.5.0.

Clone the project with the following command:

git clone https://github.com/schultek/jaspr.git

Jaspr uses Melos to manage the project and dependencies. To install Melos, run the following command:

dart pub global activate melos

Next, at the root of your locally cloned repository run the bootstrap command:

melos bootstrap

The bootstrap command locally links all dependencies within the project without having to provide manual dependency_overrides. This allows all packages, examples and tests to build from the local clone project.

You do not need to run dart pub get once bootstrap has been completed.

This also overrides the global jaspr command to use the local project, so you have the latest cli version. Whenever you change something in the jaspr_cli package and want to test it using the global jaspr command run melos activate:cli to re-activate the package.

2. Running tests and compute coverage

To run all tests across packages, run:

melos run test

To also compute the coverage and open the report in your browser, run:

melos run coverage

3. Generate html component methods

When you change something in the html component library, re-generate the component methods by running:

melos run generate:html

4. Generate cli scaffold

When you change or add the jaspr create scaffold, re-generate the bundle for the cli by running:

melos run generate:scaffold

Pull Requests & Versioning

Packages inside the /packages directory are versioned using the semantic changelog approach.

That means that the owner of a pull request is responsible for declaring which package versions should be increased based on the changes in the pull request. To mark a version change, edit the CHANGELOG.md file of the given package like this:

## Unreleased <breaking/major/minor/patch>

/_ insert description about the changes done by this PR _/

## 1.2.3

/_ content of the changelog before this PR _/

If there is already a Unreleased ... section, simply add your changes to this section.

If you have changes in multiple packages, edit the changelogs of each affected package. Note that the jaspr, jaspr_builder, jaspr_cli and jaspr_test share a single changelog, so you only have to edit this once.

For a more detailed explanation of this, go to semantic changelog.