See the user documentation for details on how to build, run, and instrument Zebra.
Please create an issue on the Zebra issue tracker.
PRs are welcome for small and large changes, but please don't make large PRs without coordinating with us via the issue tracker or Discord. This helps increase development coordination and makes PRs easier to merge.
Check out the help wanted or good first issue labels if you're looking for a place to get started!
Zebra follows the conventional commits standard for the commits merged to main. Since PRs are squashed before merging to main, the PR titles should follow the conventional commits standard so that the merged commits are conformant.
Zebra's CI currently generates coverage reports for every PR with rust's new
source based coverage feature. The coverage reports are generated by the
coverage.yml
file.
These reports are then saved as html and zipped up into a github action's
artifact. These artifacts can be accessed on the checks
tab of any PR, next
to the "re-run jobs" button on the Coverage (+nightly)
CI job's tab
example.
To access a report download and extract the zip artifact then open the top
level index.html
.
Significant changes to the Zebra codebase are planned using Zebra RFCs. These allow structured discussion about a proposed change and provide a record of the planned design.
To make a Zebra RFC:
-
Choose a short feature name like
my-feature
. -
Copy the
book/src/dev/rfcs/0000-template.md
file tobook/src/dev/rfcs/drafts/xxxx-my-feature.md
. -
Edit the template header to add the feature name and the date, but leave the other fields blank for now.
-
Write the design! The template has a suggested list of sections that are a useful guide.
-
Create an design PR using the RFC template.
-
After creating an RFC PR, update the RFC header and the PR description with the PR number.
-
Make changes to the RFC in collaboration with the Zebra team.
-
When the RFC is merged, take the next available RFC number (not conflicting with any existing RFCs or design PRs) and name the RFC file accordingly, e.g.,
0027-my-feature.md
for number 27. -
Make sure that
book/src/SUMMARY.md
links to the new number for the RFC. -
After the RFC is accepted, create an issue for the implementation of the design, and update the RFC header and PR description with the implementation issue number.