To get an overview of the project, read the README and Documentation.
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.
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.
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.
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.
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
When you change something in the html component library, re-generate the component methods by running:
melos run generate:html
When you change or add the jaspr create
scaffold, re-generate the bundle for the cli by running:
melos run generate:scaffold
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.