Contribute to Multiple Inference#

I want to make it as easy as possible to contribute to this package. Below are guidelines for a high-quality contribution. If you’re struggling with any of these steps, please open an issue.

How to contribute:

  1. Create a branch in git with your changes.

  2. Push your branch to GitLab and issue a pull request.

  3. Discuss the pull request.

  4. Iterate with me until I accept the pull request.

You can edit your branch in Gitpod to use a pre-built virtual environment. To work locally, install the requirements and the package with:

$ pip install -r requirements.txt
$ pip install -e .

A good pull request should:

  1. Describe the motivation. What problem are you solving, and how do you solve it?

  2. Use the black coding style. Run make format from the root directory to automatically format your changes.

  3. If you create a new function or method, or modify the arguments for an existing function or method, document your changes with Google-style docstrings. I recommend using autoDocstring if working in visual studio code. You can set it to create Google-style docstrings automatically. autoDocstring is installed automatically in the Gitpod workspace. Build and test the docs by running make docs from the root directory. Then, run make docserve and open http://localhost:8020/ to preview the documentation changes.

  4. Test your changes. Add tests in the tests directory. Run make test from the root directory to check that your tests pass. This command also creates a code coverage report. Run make testserve and open http://localhost:8080/ to view a detailed code coverage report.

Some features I would like to see:

  1. Bayesian estimators with mixture priors, expecially a spike-and-slab prior.

  2. Post-selection inference.

  3. A multivariate truncated normal implementation using exponential tilting methods. See here and here.