Contribute to AISee#

Everyone is welcome to contribute, and we value everybody’s contribution. Code contributions are not the only way to help the community. Answering questions, helping others, and improving the documentation are also immensely valuable.

It also helps us if you spread the word! Reference the library in blog posts about the awesome projects it made possible, shout out on Twitter every time it has helped you, or simply ⭐️ the repository to say thank you.

However you choose to contribute, please be mindful and respect our code of conduct.

This guide was heavily inspired by the awesome 🤗 Transformers guide to contributing.

Ways to contribute#

There are several ways you can contribute to AISee:

  • Fix outstanding issues with the existing code.

  • Submit issues related to bugs or desired new features.

  • Contribute to the examples or to the documentation.

Fixing outstanding issues#

If you notice an issue with the existing code and have a fix in mind, feel free to start contributing and open a Pull Request!

Do you want to add documentation?#

We’re always looking for improvements to the documentation that make it more clear and accurate. Please let us know how the documentation can be improved such as typos and any content that is missing, unclear or inaccurate. We’ll be happy to make the changes or help you make a contribution if you’re interested!

Create a Pull Request#

Before writing any code, we strongly advise you to search through the existing PRs or issues to make sure nobody is already working on the same thing. If you are unsure, it is always a good idea to open an issue to get some feedback.

Follow the steps below to start contributing:

  1. Fork the repository by clicking on the Fork button on the repository’s page. This creates a copy of the code under your GitHub user account.

  2. Clone your fork to your local disk, and add the base repository as a remote:

    git clone git@github.com:<your Github handle>/aisee.git
    cd aisee
    git remote add upstream https://github.com/iiconocimiento/aisee.git
    
  3. Create a new branch to hold your development changes:

    git checkout -b a-descriptive-name-for-my-changes
    

    🚨 Do not work on the main branch!

  4. Develop the features on your branch.

    As you work on your code, you should make sure the test suite passes. Run the tests impacted by your changes like this:

    poetry run pytest tests/<TEST_TO_RUN>.py
    

    AISee relies on black and ruff to format its source code consistently. After you make changes, apply automatic style corrections and code verifications that can’t be automated in one go.

    If you’re modifying documents under doc directory, make sure the documentation can still be built. This check will also run in the CI when you open a pull request.

    Once you’re happy with your changes, add changed files with git add and record your changes locally with git commit:

    git add modified_file.py
    git commit
    

    Please remember to write good commit messages to clearly communicate the changes you made!

    To keep your copy of the code up to date with the original repository, rebase your branch on upstream/branch before you open a pull request or if requested by a maintainer:

    git fetch upstream
    git rebase upstream/main
    

    Push your changes to your branch:

    git push -u origin a-descriptive-name-for-my-changes
    

    If you’ve already opened a pull request, you’ll need to force push with the –force flag. Otherwise, if the pull request hasn’t been opened yet, you can just push your changes normally.

  5. Now you can go to your fork of the repository on GitHub and click on Pull request to open a pull request. When you’re ready, you can send your changes to the project maintainers for review.

  6. It’s ok if maintainers request changes, it happens to our core contributors too! So everyone can see the changes in the pull request, work in your local branch and push the changes to your fork. They will automatically appear in the pull request.

Pull request checklist#

☐ The pull request title should summarize your contribution.

☐ If your pull request addresses an issue, please mention the issue number in the pull request description to make sure they are linked (and people viewing the issue know you are working on it).

☐ To indicate a work in progress please prefix the title with [WIP] or [DRAFT]. These are useful to avoid duplicated work, and to differentiate it from PRs ready to be merged.

☐ Make sure existing tests pass.

☐ If adding a new feature, also add tests for it.

☐ All public methods must have informative docstrings in NumPy format.

Tests#

An extensive test suite is included to test the library behavior and several examples. Library tests can be found in the tests folder.

To run the tests you can run the following commands:

pip install poetry
poetry install --with dev
poetry run pytest

We use ruff to run the code style checks, in order to run them, execute the following commmands:

pip install poetry
poetry install --with dev
poetry run ruff .

When you create a PR, the github workflow tests will also run.