πŸŽ‰ Contributing#

Thank you for taking the time to contribute to the Scivision project. πŸŽ‰

πŸ“š Contents:

😎 Who should contribute#

The scivision project is being developed openly and invites contributions from anyone interested in computer vision or scientific data, who agrees with the goal of making models and datasets more accessible and discoverable across disciplines!

The following contributions are particularly welcome:

  • Computer vision models for the model catalog, whether new or existing

  • Data sources for the data catalog, from the sciences or humanities

  • New features or other code improvements to the scivision package itself

  • Bug reports

πŸ€” What to contribute#

Catalog contributions#

Submit a model or dataset to the catalog so that they are discoverable by other scivision users when querying the catalog.

See 🎁 Extending the scivision catalog.

Bug reports#

First, please check the open issues in case the bug has already been reported.

If not, then open a new issue here.

Code and documentation contributions#

Additional features, code quality improvements, issues, typos, documentation improvements are all welcome.

To get started:

  • Consider starting a discussion, to get feedback on your idea, or participating in an ongoing one

  • Look for any relevant issues.

Pull requests are welcome: see πŸ›  How to contribute changes to this repository which describes our workflow.

For larger features, substantial changes, or anything where you would like early feedback from the community, consider starting a Scivision Improvement Proposal. about-scips. Feel free to ask for advice about this in an issue/discussion.

πŸ›  How to contribute changes to this repository#

  • Open a Pull Request.

  • Our basic workflow is GitHub flow. In particular:

    • The branch main always contain the latest working version of the package.

    • Pull Requests should normally have main as their base branch (this is the default).

    • A Pull Request doesn’t have to represent finished work. Pull Requests are welcome at an early stage of work on a contribution, so others can watch or give feedback, or as a place to discuss the work in progressβ€”you can always add more commits to the same branch later, and they will be included too. If it is not ready to merge, include β€œWIP” (Work in Progress) in the subject line, or select β€œCreate Draft Pull Request” when opening it.

    • For a Pull Request to be ready to merge:

      • All of the automated tests should pass

      • It should add tests of any new functionality

    • A code review can be requested at any time

    • Pull requests are squash merged to main

  • More information:

🎁 Extending the scivision catalog#

You can add models or datasets to the scivision catalog via the GitHub workflow described above.

Preparing a model for inclusion in the catalog#

In order to submit a model to the scivision catalog, you must first set up the GitHub repository containing the model as per the 🐨 Model repo template.

This will enable you load your model via the scivision API and run it on matching datasets present in the catalog.

Submitting your model to the catalog#

Once you have prepared a model for inclusion in the catalog, submit some details about it here. You will need a GitHub account. Submitting this form will open a pull request on your behalf, that adds the model to the catalog.

Once your model submission is accepted, it will become available to other users of scivision.

Manual steps#

This section describes how to add a catalog entry by hand. These steps are an alternative to using the form above.

Fork the scivision repository and on your new branch, add metadata for your computer vision model to the end of models.json found in (scivision/src/scivision/catalog/data/), with the following format, under "entries".

{
  "name":"Short name for this model"
  "description":"Longer, optional, description of this model"
  "tasks":["segmentation"],
  "url":"https://github.com/alan-turing-institute/my-model",
  "pkg_url":"git+https://github.com/alan-turing-institute/my-model@master",
  "institution":"alan-turing-institute",
  "tags":[
    "help-needed", "3D", "cell", "cell-counting", "biology", "biomedical-science"
  ]
}

After you are done, create a pull request with the changes. A scivision maintainer will approve the addition, making it available to all scivision users.

Preparing a dataset for inclusion in the catalog#

In order to submit a dataset to the scivision catalog, you must first set up a GitHub repository containing important metadata as per the πŸ™ Data repo template.

This will enable you load your dataset via the scivision API and run matching models from catalog on it.

Adding a new dataset to the catalog#

Once you have prepared a datasource for inclusion in the catalog, submit some details about it here. You will need a GitHub account. Submitting this form will open a pull request on your behalf, that adds the datasource to the catalog.

Once your submission is accepted, the dataset will become available to other users of scivision.

Manual steps#

This section describes how to add a catalog entry by hand. These steps are an alternative to using the form above.

On a new branch of the scivision repository, add your dataset to the end of datasources.json, with the following format, incrementing the data number by from the most recent entry. After you are done, create a pull request with the changes.

Fork the scivision repository and on your new branch, add your dataset to the end of datasources.json (found in scivision/src/scivision/catalog/data/), with the following format, under "entries".

    {
      "name":"Short name for this datasource"
      "description": "Longer, optional, description of this datasource"
      "tasks":["object-detection", "segmentation"],
      "domains":["optical-microscopy"],
      "url":"https://github.com/my_datasource/releases/download/0.3.0/demo.zip",
      "format":"image",
      "labels_provided":"yes",
      "institution":"alan-turing-institute",
      "tags":[
        "help-needed", "3D", "cell", "cell-counting", "biology", "biomedical-science"
      ]
    }

After you are done, create a pull request to the original repo with the changes. A scivision maintainer will approve the addition, making it available to all scivision users.