Welcome to the project. All PRs are welcome, though I will be critical of PRs to the best of my ability. I want to find developers who can help check my work and also help foster newcomers so that they can help keep me accountable as well. Thank you for your support. If you have any questions, please reach out on the discord server. If I don't respond on the server, feel free to reach out to me (frosty#1337).
If you have a change you want to commit create a branch with the below naming conventions and topic names.
docs/<description>
fix/<username>-<description>
feature/<username>-<description>
refactor/<username>-<description>
If the scope of the issue changes for any reason, please rebranch and use the appropriate anming convention.
While we do provide CI/CD through github actions, it is slow to get results on the CI. You should set up your environment in order to run tests locally before pushing commits.
To set up your testing environment, a general rule is to follow what is provided in the CI configurations. There are workflow files under (.github/workflows) for each platform, which should give you an idea about how to set up your environment appropriately. Provide a database with the appropriate configurations. I highly recommend that you install docker and use the provided docker compose file at (ci/docker-compose.yaml) which sets up a similar database used in the github CI.
Currently there are three tests that need to be run to hit all the tests:
melos test-unit
# These two need to be run inside packages/conduit
dart test -j1 test/* # use dart test -j1 for windows and macos
dart tool/generated_test_runner.dart
The first will run all the unit tests in conduit and all its dependencies. The last two test cli components and string-compiled code respectively.
Please document the intent of the pull request. All non-documentation pull requests must also include automated tests that cover the new code, including failure cases. In the case that tests work locally, but not on the CI, please mention @j4qfrost on the PR. If I don't respond, the best way to contact me is through discord.
The project uses melos for tooling, which provides autoversioning based on conventional commits. Commits to master
will usually be squashed from PRs, so make sure that the PR name uses conventional commits to trigger the versioning and publishing CI; you do NOT need to use conventional commits on each commit to your branch.
The predessor project, Aqueduct, and the corresponding dependencies will retain their BSD and MIT licenses copyrighted by stablekernel. Any subsequent work done on Conduit and changes to dependencies will fall under the BSD-2 liecense attirbuted to conduit-dart and fellow contributors. So any additional package created from scratch for this mono-repo must contain the root level license.