Skip to content

Contributing

Contributions are welcome, and they are greatly appreciated! Every little helps, and credit will always be given. You can contribute in many ways.

Types of Contributions

Report Bugs

Report bugs at https://github.com/gabor-boros/minutes/issues.

If you are reporting a bug, please use the bug report template, and include:

  • your operating system name and version
  • any details about your local setup that might be helpful in troubleshooting
  • detailed steps to reproduce the bug

Fix Bugs

Look through the GitHub issues for bugs. Anything tagged with "bug" and "help wanted" is open to whoever wants to implement it.

Implement Features

Look through the GitHub issues for features. Anything tagged with "enhancement" and "help wanted" is open to whoever wants to implement it. In case you added a new source or target, do not forget to add them to the docs as well.

Write Documentation

Minutes could always use more documentation, whether as part of the docs, in docstrings, or even on the web in blog posts, articles, and such.

Submit Feedback

The best way to send feedback is to file an issue.

If you are proposing a feature:

  • explain in detail how it would work
  • keep the scope as narrow as possible, to make it easier to implement
  • remember that this is a volunteer-driven project, and that contributions are welcome :)

Get Started!

Ready to contribute? Here's how to set up minutes for local development.

As step 0 make sure you have Go 1.17+ and Python 3 installed.

  1. Fork the repository
  2. Clone your fork locally
$ git clone git@github.com:your_name_here/minutes.git
  1. Install prerequisites
$ cd minutes
$ make prerequisites
$ make deps
$ python -m virtualenv -p python3 virtualenv
$ pip install -r www/requirements.txt
  1. Create a branch for local development
$ git checkout -b github-username/bugfix-or-feature-name
  1. When you're done making changes, check that your changes are formatted, passing linters, and tests are succeeding
$ make format
$ make lint
$ make test
  1. Update documentation and check the results by running make docs
  2. Commit your changes and push your branch to GitHub

We use conventional commits, and we require every commit to follow this pattern.

$ git add .
$ git commit -m "action(scope): summary"
$ git push origin github-username/bugfix-or-feature-name
  1. Submit a pull request on GitHub

Pull Request Guidelines

Before you submit a pull request, check that it meets these guidelines:

  1. The pull request should include tests
  2. Tests should pass for the PR
  3. If the pull request adds new functionality, or changes existing one, the docs should be updated

Releasing

A reminder for the maintainers on how to release.

Before doing anything, ensure you have git-cliff installed, and you already executed make prerequisites.

  1. Make sure every required PR is merged
  2. Make sure every test is passing both on GitHub and locally
  3. Make sure that formatters are not complaining (make format returns 0)
  4. Make sure that linters are not complaining (make lint returns 0)
  5. Take a note about the next release version, keeping semantic versioning in mind
  6. Update the CHANGELOG.md using TAG="<CURRENT RELEASE VERSION>" make changelog
  7. Compare the CHANGELOG.md changes and push to master
  8. Cut a new tag for the next release version
  9. Run GITHUB_TOKEN="<TOKEN>" make release to package the tool and create a GitHub release
  10. Provide a changelog for the release using CHANGELOG.md
  11. Create a new milestone following the v<NEXT RELEASE VERSION> pattern