Thank you so much for considering contributing to eventually
! 🎉
The current project structure is using a Rust virtual workspace, where all the crates share the same dependencies and lock file. (This might be changed in the future)
The workspace has the following crates:
eventually
: the main crate, users should depend solely on this crateeventually-macros
: the crate that contains procedural macros to make the development experience nicer for users,eventually-postgres
: the crate that contains implementations of abstractions fromeventually
for PostgreSQL databases,
When submitting a PR involving one or more of these crates, please make sure to use the corresponding label.
If you want to contribute but you have no idea how, or what specific features are missing, please check the issues page: we usually have some issues that are marked as "good for beginners".
Being an open-source project, we are always looking for new contributors, so no matter your level of Event Sourcing skills or language mastery, your PRs are always welcome ❤️
Before opening a Pull Request, check the Issues section for an issue that might describe the feature you're considering adding.
If no such issue has been created, feel free to create one and use the rfc
label to discuss technical
implementation before the code review process. You can also reach out to our [Gitter chat][gitter] to discuss new
features or other technical aspects of the crate.
In order to submit a PR, follow these steps:
- Fork the repository
- Clone your fork of the repository in your local machine
- Add the upstream repository in your local machine copy:
git remote add upstream [email protected]:get-eventually/eventually-rs git fetch upstream
- Create a new branch starting from
upstream/main
:git checkout -b "<branch-name>" --track upstream/main
- Do your magic 🎉
- Once ready, open a PR pointing to
upstream/main
👍
After the PR is created, wait for the CI pipeline to run and the test to pass. Whenever introducing new changes to the repository, make sure your changes are covered by unit or integration tests.
When all PR badges are green, the review process can start. Maintainer and collaborators will try to finish the PR review as fast as possible.
Once the PR has been approved, the maintainer or collaborators will squash-merge the PR onto main
.
Please, include a meaningful PR description, detailing is the scope of the PR and the changes introduced to fulfill it.
If an issue has been opened already, and if the technical discussion has already happened in the issue, you can avoid
including a detailed PR description by linking the issue to the PR (e.g. Closes #..
or Fixes #..
).
The project makes use of Conventional Commits style for the Git commit messages.
Please, make sure to follow the style specifications, and try to leave a clear commit history: this will make the review process easier for reviewers, as the review can be carried commit-by-commit.
As you might've guessed, eventually
is a Rust project.
The CI pipeline will check the code style by using clippy
and cargo check
every time a new commit has been pushed to an open PR.
Make sure you run rustfmt
before committing any changes, as failing to do so will most likely fail the CI pipeline steps.