Thank you for considering contributing to Taskchamp! Please read the following guidelines before contributing.
Assign yourself to any issue that you would like to work on, or create a new one! If you have any questions, feel free to ask in the issue itself.
Important
Taskchamp depends on the taskchampion rust library.
-
Clone the repo: Clone the repo to your local machine and checkout the
devbranch. -
Create a new branch: You should always work on a new branch on your fork, that should be branched off from the
devbranch. -
Before being able to install the dependencies, you need to have a couple of things installed on your system:
This project is built using Swift, Rust for the taskchampion-swift binary, and Mise + Tuist. You can install the dependencies by running the following commands:
brew install swiftlint
brew install swiftformat
brew install mise
curl https://sh.rustup.rs -sSf | sh -s -- -y
-
To start working on the project:
- Navigate to the root of the project and run
mise install - Run
make up:
- This will install the taskchampion-swift rust binary
- It will also install all the swift/xcode dependencies
- Finally, it will generate the xcode project and open it in xcode.
- Navigate to the root of the project and run
-
Make your changes: Make your changes to the codebase. Make sure that the project builds correctly and does not have any lint warnings.
-
Run the tests: Make sure that the tests pass by running
make test.We currently do not have any tests, but we are working on adding them. Or you can add some yourself under
taskchamp/Tests:) -
Commit your changes: Commit your changes to your branch and make a pull request to the
devbranch of the upstream repository.Any changes to the
mainor any other branch will be rejected. All changes should be made to thedevbranch. -
Code review: Your pull request will be reviewed by the maintainers. Make sure to address any comments that are made on your pull request.
-
Merge: Once your pull request is approved, it will be merged into the
devbranch. Thereleasebranch will be updated with thedevbranch and it will be released for beta testing. -
Beta testing: The beta version will be released for testing. Make sure to test the beta version and report any issues that you find.
You can join the beta by going to the TestFlight page.
-
Release: Once the beta version is stable, it will be merged into
mainand released to the App Store.