First off, thank you for considering contributing to Problems! It's people like you that make Problems such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps which reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots and animated GIFs if possible
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the steps
- Describe the current behavior and explain which behavior you expected to see instead
- Explain why this enhancement would be useful
When adding new programming problems:
- Create a new Python file in
src/problems/ - Follow the existing problem format:
- Include comprehensive docstrings with examples
- Implement the problem interface
- Add appropriate tests
- Update the problems list in
problems.md
- Fork the repository on GitHub
- Clone your fork locally
- Create your feature branch from
main - If you've added code that should be tested, add tests
- Ensure the test suite passes (
poetry run tests) - Ensure your code passes all linting checks (
poetry run lint) - Issue that pull request!
- Install Poetry:
curl -sSL https://install.python-poetry.org | python3 --
Fork the repository on GitHub:
- Visit https://github.com/Hugues-DTANKOUO/problems
- Click the "Fork" button in the top-right corner
- Wait for the forking process to complete
-
Clone your fork:
git clone https://github.com/YOUR-USERNAME/problems.git
cd problems- Install dependencies:
poetry install- Run the linting tools:
poetry run lint- Run the tests:
poetry run tests- Start the development server:
poetry run server- Follow PEP 8 guidelines
- Use type hints
- Write descriptive docstrings
- Keep functions focused and small
- Use meaningful variable names
- Comment complex logic
- Update the README.md with details of changes if needed
- Update the CHANGELOG.md with notes on your changes
- The PR should work for Python 3.10 and above
- Include relevant tests
- Make sure all linting checks pass by running:
poetry run lint- Write descriptive commit messages
- Keep PRs focused - don't include unrelated changes
- Link PRs to issues where applicable
- Always run
poetry run lintbefore committing your changes - If you're updating documentation, verify the links work correctly
Before submitting your PR, make sure to run:
- All tests:
poetry run tests- Linting tools:
poetry run lint- Type checking:
poetry run mypy src/problemsThank you for your contribution! 🎉