Contributing to ExMaude
View SourceThank you for your interest in contributing to ExMaude!
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/ex_maude.git - Install dependencies:
mix setup - Create a feature branch:
git checkout -b feature/amazing-feature
Development
mix setup # Install dependencies
mix test # Run tests
mix lint # Run linters (format, credo, dialyzer)
mix check # Run all quality checks
mix docs # Generate documentation
mix bench # Run benchmarks
Running Integration Tests
Integration tests require Maude to be installed:
mix maude.install # Install Maude
mix test --include integration # Run all tests including integration
Code Quality
Before submitting a PR, ensure:
- [ ] All tests pass:
mix test - [ ] Code is formatted:
mix format - [ ] Credo passes:
mix credo --strict - [ ] Dialyzer passes:
mix dialyzer - [ ] Documentation is updated
Commit Messages
Follow Conventional Commits:
feat:new featuresfix:bug fixesdocs:documentation changesrefactor:code refactoringtest:test additions or changeschore:maintenance tasks
Pull Request Process
- Ensure your code follows the project style
- Update documentation as needed
- Add tests for new functionality
- Update CHANGELOG.md with your changes
- Submit a PR with a clear description
Releases
Releases are managed by maintainers using git_ops:
- Ensure all tests pass:
mix check - Run
mix release(alias formix git_ops.release) — updates changelog, bumps version, commits, and tags - Push with tags:
git push --follow-tags - CI will publish to Hex.pm on the
v*tag
Questions?
Open an issue for questions or discussions.