Back to Loguru

Automated Contributions Policy

CONTRIBUTING.rst

0.7.33.9 KB
Original Source

Thank you for considering improving Loguru, any contribution is much welcome!

.. _minimal reproducible example: https://stackoverflow.com/help/mcve .. _open a new issue: https://github.com/Delgan/loguru/issues/new .. _open a pull request: https://github.com/Delgan/loguru/compare .. _PEP 8: https://www.python.org/dev/peps/pep-0008/ .. _Loguru: https://github.com/Delgan/loguru

Automated Contributions Policy

Recent advances in artificial intelligence (AI) offer powerful tools to identify bugs and accelerate development, but their usage must remain carefully controlled.

The use of AI tools to interact with this project is welcome under the following principles:

  • Any content generated or significantly refined by AI must be disclosed as such at the time of submission.
  • While AI can help with drafting your PRs or issues, describing problems or questions in your own words is strongly preferred.
  • Always review and test the output generated by AI tools. Do not submit AI output that you do not understand or cannot verify.
  • Fully-automated contributions without human oversight, such as autonomous agents, are strictly prohibited.

PRs and issues may be closed without proper review if they do not adhere to these guidelines.

Asking questions

If you have any question about Loguru, if you are seeking for help, or if you would like to suggest a new feature, you are encouraged to open a new issue_ so we can discuss it. Bringing new ideas and pointing out elements needing clarification allows to make this library always better!

Reporting a bug

If you encountered an unexpected behavior using Loguru, please open a new issue_ and describe the problem you have spotted. Be as specific as possible in the description of the trouble so we can easily analyse it and quickly fix it.

An ideal bug report includes:

  • The Python version you are using
  • The Loguru version you are using (you can find it with print(loguru.__version__))
  • Your operating system name and version (Linux, MacOS, Windows)
  • Your development environment and local setup (IDE, Terminal, project context, any relevant information that could be useful)
  • Some minimal reproducible example_

Implementing changes

If you are willing to enhance Loguru by implementing non-trivial changes, please open a new issue_ first to keep a reference about why such modifications are made (and potentially avoid unneeded work).

Prefer using a relatively recent Python version as some dependencies required for development may have dropped support for oldest Python versions. Then, the workflow would look as follows:

  1. Fork the Loguru_ project from GitHub.

  2. Clone the repository locally::

    $ git clone [email protected]:your_name_here/loguru.git $ cd loguru

  3. Activate your virtual environment::

    $ python -m venv env $ source env/bin/activate

  4. Install Loguru in development mode::

    $ pip install -e ".[dev]"

  5. Install pre-commit hooks that will check your commits::

    $ pre-commit install --install-hooks

  6. Create a new branch from master::

    $ git checkout master $ git branch fix_bug $ git checkout fix_bug

  7. Implement the modifications wished. During the process of development, honor PEP 8_ as much as possible.

  8. Add unit tests (don't hesitate to be exhaustive!) and ensure none are failing using::

    $ tox -e tests

  9. Remember to update documentation if required.

  10. If your development modifies Loguru behavior, update the CHANGELOG.rst file with what you improved.

  11. add and commit your changes, then push your local project::

    $ git add . $ git commit -m 'Add succinct explanation of what changed' $ git push origin fix_bug

  12. If previous step failed due to the pre-commit hooks, fix reported errors and try again.

  13. Finally, open a pull request_ before getting it merged!