First off, thank you for considering contributing to GoCard! It's people like you that make GoCard such a great tool for learning and knowledge management.
This project and everyone participating in it are governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Ensure the bug is not already reported by searching existing GitHub issues.
- If you can't find an existing issue, open a new one.
- Include a clear title and description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
- Check the issues list to see if your suggestion is already there.
- If not, open a new feature request.
- Provide a clear and detailed explanation of the feature you want to see.
Unsure where to begin contributing? You can start by looking through these good-first-issue and help-wanted issues:
- Good First Issues - issues that should only require a few lines of code
- Help Wanted - issues that are more involved but not necessarily difficult
- Fork the repository and create your branch from
main. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue the pull request!
- Update the README.md or documentation with details of changes if applicable.
- Increase version numbers in any examples files and the README.md to the new version that this Pull Request would represent.
- You may merge the Pull Request once it has been reviewed and approved by a maintainer.
- Go 1.23 or later
- Git
- Pre-commit (optional but recommended)
- Clone the repository
git clone https://github.com/DavidMiserak/GoCard.git
cd GoCard- Install dependencies
go mod download- Install pre-commit hooks (recommended)
make pre-commit-setup# Run all tests
go test ./...
# Run tests with coverage
make test-cover
# Run linters
make lint- Use
gofmtfor formatting - Follow Go best practices and idioms
- Keep functions small and focused
- Add comments to explain complex logic
We use Conventional Commits format:
feat:A new featurefix:A bug fixdocs:Documentation changesstyle:Formatting, missing semicolons, etc.refactor:Code refactoringtest:Adding or modifying testschore:Maintenance tasks
Example:
feat: add import/export functionality for cards
- Implement Anki package (.apkg) import
- Add export to markdown feature
- Update documentation with new features- Create a feature branch:
git checkout -b feat/new-feature - Make your changes
- Run tests and linters
- Commit with a conventional commit message
- Push your branch
- Open a pull request
Please do not create public GitHub issues for security vulnerabilities. Instead, send a detailed description to [david.miserak@gmail.com](mailto: david.miserak@gmail.com).
If you have any questions, feel free to open an issue or reach out to the maintainers.
Happy Contributing! 🚀📚