Contributing to LetItCrash
View SourceFirst of all, thank you for considering contributing to LetItCrash! ๐
This project embraces Elixir's "let it crash" philosophy, and your contribution can help other developers test their supervised systems better.
How to Contribute
๐ Reporting Bugs
If you found a bug, please open an issue including:
- Clear description of the problem
- Steps to reproduce the bug
- Expected behavior vs actual behavior
- Elixir version and library version
- Minimal code example that reproduces the problem
Example bug report template:
**Description**
Clear description of the bug.
**To Reproduce**
1. Set up a supervisor...
2. Crash the process with...
3. Run recovered?...
4. See error...
**Expected Behavior**
What should happen.
**Environment**
- Elixir: 1.17.0
- LetItCrash: 0.1.0
- OTP: 26.0๐ก Feature Suggestions
Have an idea to improve the library? Open an issue with:
- Description of the desired functionality
- Use case that justifies the feature
- API proposal (if applicable)
- Usage examples of the new functionality
๐ง Pull Requests
- Fork the repository
- Create a branch for your feature (
git checkout -b feature/my-feature) - Implement your change
- Add tests to cover the new functionality
- Run the tests (
mix test) - Commit your changes (
git commit -am 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
๐ Pull Request Checklist
- [ ] Tests pass (
mix test) - [ ] Code follows Elixir style
- [ ] Documentation updated (if necessary)
- [ ] Tests added for new functionality
- [ ] CHANGELOG.md updated (if applicable)
๐งช Running Tests
# Install dependencies
mix deps.get
# Run all tests
mix test
# Run specific test
mix test test/let_it_crash_test.exs:101
๐ Code Style Standards
- Use 2 spaces for indentation
- Use descriptive names for functions and variables
- Add @doc for public functions
- Add @spec for public functions
- Prefer pattern matching over conditionals when possible
๐๏ธ Project Structure
let_it_crash/
โโโ lib/
โ โโโ let_it_crash.ex # Main module
โโโ test/
โ โโโ let_it_crash_test.exs # Main tests
โ โโโ test_helper.exs # Test setup
โโโ README.md # Main documentation
โโโ CONTRIBUTING.md # This file
โโโ LICENSE # MIT License
โโโ mix.exs # Project configuration๐ฏ Areas That Need Help
Some areas where contributions would be especially welcome:
- Additional tests for edge cases
- Usage examples with different types of supervisors
- Performance improvements in PID tracking
- CI/CD integration tooling
๐ค Code of Conduct
This project follows a simple code of conduct:
- Be respectful to other contributors
- Be constructive in feedback and discussions
- Be patient with beginners
- Be inclusive and welcoming
๐ Questions?
- Open an issue with the
questiontag - Contact via GitHub (@volcov)
Thank you for helping make LetItCrash better! ๐