First off, thank you for considering contributing to ChemInformant! We welcome and value contributions from everyone. Whether it's reporting a bug, suggesting an enhancement, seeking support, or writing code, your help is appreciated.
This document provides guidelines for contributing to make the process as smooth as possible for everyone involved.
- Ways to Contribute
- Seeking Support or Asking Questions
- Reporting Bugs
- Suggesting Enhancements
- Your First Code Contribution
- Code of Conduct
- Ask for Help: If you have questions about how to use the project, please open an issue.
- Report Bugs: If you find a bug, please report it using GitHub Issues.
- Suggest Enhancements: Have an idea for a new feature or an improvement? Open an issue to discuss it.
- Submit Pull Requests: Contribute code to fix bugs or add new features.
If you have a question about how to use ChemInformant or are not sure if you've encountered a bug, the best place to ask is the GitHub Issues page.
When you open an issue for support, please be sure to:
- Search existing issues first to see if your question has already been answered.
- Provide a clear and descriptive title.
- Explain what you are trying to achieve and what problem you are facing.
- If possible, include a small, self-contained code snippet to illustrate your question.
Before submitting a bug report, please check the existing GitHub Issues to see if the bug has already been reported.
If it hasn't, please open a new issue and include the following information:
- ChemInformant Version: (e.g., from
ChemInformant.__version__) - Python Version:
- Operating System:
- Description of the Bug: Clearly describe the issue.
- Steps to Reproduce: Provide a minimal, complete, and verifiable code example that triggers the bug.
- Expected Behavior: What you expected to happen.
- Actual Behavior: What actually happened (including any error messages or tracebacks).
We are open to suggestions for new features or improvements. Before submitting an enhancement suggestion:
- Check the existing GitHub Issues to see if a similar idea has already been discussed.
- Open a new issue.
- Clearly describe the proposed enhancement and the motivation behind it (what problem does it solve?).
- If possible, provide examples of how the feature might be used.
Ready to contribute code? Here’s how to set up ChemInformant for local development and submit your changes.
- Fork the Repository: Click the "Fork" button on the ChemInformant GitHub page.
- Clone Your Fork:
git clone https://github.com/YOUR_USERNAME/ChemInformant.git cd ChemInformant - Create a Virtual Environment: It's highly recommended to use a virtual environment (e.g.,
venv,conda).# Using venv python -m venv .venv source .venv/bin/activate # On Windows use `.venv\Scripts\activate`
- Install Dependencies: Install the package in editable mode along with development dependencies (like
pytest,black). Assuming adevextra is defined in yourpyproject.toml:pip install -e .[dev] # If you don't have a [dev] extra defined yet, install manually: # pip install -e . # pip install pytest requests-cache black
- Create a Branch: Create a new branch for your changes.
git checkout -b your-feature-or-bugfix-branch
- ChemInformant follows the PEP 8 style guide.
- We use Black for automatic code formatting. Before committing your changes, please run Black to format your code:
black .
- We use
pytestfor testing. Please ensure all tests pass before submitting a pull request. - Add new tests for any new features or bug fixes you introduce. We aim for high test coverage.
- Run tests from the root directory of the repository:
pytest tests/
- Make your changes, write tests, and format your code with Black.
- Commit your changes with a clear and descriptive commit message.
- Push your branch to your fork on GitHub:
git push origin your-feature-or-bugfix-branch
- Open a Pull Request (PR) on the ChemInformant GitHub repository.
- Target the
mainbranch of the original repository. - Provide a clear title and description for your PR. Explain the "why" and "what" of your changes.
- Link to any relevant GitHub issues (e.g., "Closes #123").
- Wait for the automated checks (like CI tests) to pass.
- Be prepared to respond to any feedback or review comments.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms. All participants are expected to follow the Code of Conduct in all project spaces, including issues, pull requests, and any other communication channels. Please see the CODE_OF_CONDUCT.md file for details.
Thank you again for your contribution!