Before I say anything, thank you for considering putting effort into making this project better.
Notes: This is a living document that I will use to learn more about the development cycle of a CLI tool.
There are two main parts pkg
and cmd
that together work to satisfy the interface of the aoc
CLI.
pkg
: in thepkg
part is where the business logic for the CLI lives.cmd
: in thecmd
part of the project is where the implementation details of the CLI User Experience.
the examples
folder has a list of languages and the advent of code years I use to test manually. In the future, it will do the integration tests.
- Automate machine work as much as possible into the GitHub Actions (e.g. build, publish, test).
- Filter all changes proposed by proper checks from GitHub Actions pipelines.
- Follow Conventional Commits.
No matter what type of change we want to propose we need to follow a simple workflow to make sure we are using all the automated processes that are there to help us.
- A good pre-work you can do before starting contributing is to find any issues or open PRs that might be related to your situation.
- If you have not done it, fork this project in a space you have pushing privileges.
- Check the release branch you want to contribute to and create your custom branch.
- Make the changes you find valuable to solve the issue you are fixing.
- Run
go test ./...
and make sure you are not breaking other parts of the codebase. - Create a PR to the release branch associated with the changes and write all the information the maintainer would need to get context to understand the change.
Thank you!