2.6 KiB
Contributing
Workflow for Contributors
-
Find an issue to work on from our existing issues. If you've identified a bug or potential improvement, please discuss it in the #stocks-in-the-future Slack channel before starting work.
-
Create a branch from
mainwith a descriptive name including the issue number$ git checkout main $ git pull $ git checkout -b feature-description-123 -
Make your changes and commit them with descriptive messages
$ git add . $ git commit -m "Add feature X that solves problem Y" -
Run linting to ensure code quality
$ bin/lintIf issues are found, fix them or use auto-fix when appropriate:
$ bundle exec rubocop -A -
Run tests to verify your changes don't break existing functionality
$ bin/rails testTo check test coverage, run:
$ bin/coverageThis generates an HTML coverage report at
coverage/index.html -
Push your branch to GitHub
# For the first push to a new branch $ git push --set-upstream origin feature-description-123 # For all subsequent pushes $ git push -
Open a Pull Request against the
mainbranch- Include a clear description of the changes
- Linking the issue number in the PR's description (e.g.,
Resolves #123) - Wait for CI checks to pass
- Request review from team members
Linting
This project uses erb_lint to catch ERB template errors during development.
To check all ERB templates:
$ bin/dc bundle exec erb_lint --lint-all
To see autocorrectable issues:
$ bin/dc bundle exec erb_lint --lint-all --autocorrect
Getting Help
If you need help at any point, comment on the issue you're working on or ask in the #stocks-in-the-future channel on the Ruby for Good Slack.
Troubleshooting
ASDF
If you find yourself in a cycle of encountering errors such as:
in stocks-in-the-future/ on main
› asdf install ruby 3.4.4
in stocks-in-the-future/ on main
› asdf set local ruby 3.4.4
in stocks-in-the-future/ on main
› ruby --version
No version is set for command ruby
Consider adding one of the following versions in your config file at /Users/america/dev/stocks-in-the-future/.tool-versions
ruby 3.3.6
ruby 3.1.6
Try upgrading asdf and trying again.