-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Update contributing guide, fail fast #4280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
441828d
34ea308
98a88a3
d9d9bf0
1f772c2
aea778e
116e993
11a048b
fe9350b
6471298
f7db5df
ad6ffba
6fe30d0
df6bd86
337d439
c895d32
eb47495
d7bf529
abe5c3f
72f8e08
f4cd319
9ada716
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,11 +9,11 @@ jobs: | |
pytest: | ||
strategy: | ||
matrix: | ||
python-version: ["3.8"] | ||
os: [ubuntu-18.04] | ||
floatx: [float64] | ||
test-subset: | ||
- pymc3/tests/test_sampling.py | ||
fail-fast: false | ||
runs-on: ${{ matrix.os }} | ||
env: | ||
TEST_SUBSET: ${{ matrix.test-subset }} | ||
|
@@ -26,20 +26,28 @@ jobs: | |
- name: Cache conda | ||
uses: actions/cache@v1 | ||
env: | ||
# Increase this value to reset cache if environment-dev.yml has not changed | ||
# Increase this value to reset cache if environment-dev-py38.yml has not changed | ||
CACHE_NUMBER: 0 | ||
with: | ||
path: ~/conda_pkgs_dir | ||
key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ | ||
hashFiles('environment-dev.yml') }} | ||
hashFiles('conda-envs/environment-dev-py38.yml') }} | ||
- uses: conda-incubator/setup-miniconda@v2 | ||
with: | ||
activate-environment: testenv | ||
activate-environment: pymc3-dev-py38 | ||
channel-priority: strict | ||
environment-file: environment-dev.yml | ||
environment-file: conda-envs/environment-dev-py38.yml | ||
use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! | ||
- run: | | ||
conda activate testenv | ||
- name: Install pymc3 | ||
run: | | ||
conda activate pymc3-dev-py38 | ||
pip install -e . | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it's probably good to check this works, in case there are any errors in setup.py - it only takes about 5 seconds during CI anyway |
||
python --version | ||
- name: Install latest arviz | ||
run: | | ||
conda activate pymc3-dev-py38 | ||
conda remove arviz -y | ||
pip install git+git://github.com/arviz-devs/arviz.git | ||
- name: Run tests | ||
run: | | ||
python -m pytest -vv --cov=pymc3 --cov-report=xml --cov-report term --durations=50 $TEST_SUBSET |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -38,19 +38,27 @@ The preferred workflow for contributing to PyMC3 is to fork the [GitHub reposito | |
3. Create a ``feature`` branch to hold your development changes: | ||
|
||
```bash | ||
$ git checkout -b my-feature | ||
$ git switch -c my-feature | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. git's new way of switching branches - There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. and this creates a new branch too? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yup, |
||
``` | ||
|
||
Always use a ``feature`` branch. It's good practice to never routinely work on the ``master`` branch of any repository. | ||
|
||
4. Project requirements are in ``requirements.txt``, and libraries used for development are in ``requirements-dev.txt``. To set up a development environment, you may (probably in a [virtual environment](https://docs.python-guide.org/dev/virtualenvs/)) run: | ||
4. Project requirements are in ``requirements.txt``, and libraries used for development are in ``requirements-dev.txt``. The easiest (and recommended) way to set up a development environment is via [miniconda](https://docs.conda.io/en/latest/miniconda.html): | ||
|
||
```bash | ||
$ pip install -r requirements.txt | ||
$ conda env create -f conda-envs/environment-dev-py36.yml # or py37 or py38 | ||
$ conda activate pymc3-dev-py36 | ||
$ pip install -e . | ||
``` | ||
|
||
_Alternatively_ you may (probably in a [virtual environment](https://docs.python-guide.org/dev/virtualenvs/)) run: | ||
|
||
```bash | ||
$ pip install -e . | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this includes all the requirements.txt already + gives a local editable install |
||
$ pip install -r requirements-dev.txt | ||
``` | ||
|
||
Alternatively, there is a script to create a docker environment for development. See: [Developing in Docker](#Developing-in-Docker). | ||
Yet another alternative is to create a docker environment for development. See: [Developing in Docker](#Developing-in-Docker). | ||
|
||
5. Develop the feature on your feature branch. Add changed files using ``git add`` and then ``git commit`` files: | ||
|
||
|
@@ -103,26 +111,7 @@ tools: | |
$ pytest --cov=pymc3 pymc3/tests/<name of test>.py | ||
``` | ||
|
||
* No `pyflakes` warnings, check with: | ||
|
||
```bash | ||
$ pip install pyflakes | ||
$ pyflakes path/to/module.py | ||
``` | ||
|
||
* No PEP8 warnings, check with: | ||
|
||
```bash | ||
$ pip install pycodestyle | ||
$ pycodestyle path/to/module.py | ||
``` | ||
|
||
* AutoPEP8 can help you fix some of the easy redundant errors: | ||
|
||
```bash | ||
$ pip install autopep8 | ||
$ autopep8 path/to/pep8.py | ||
``` | ||
* No `pre-commit` errors: see the [Python code style](https://github.com/pymc-devs/pymc3/wiki/PyMC3-Python-Code-Style) and [Jupyter Notebook style](https://github.com/pymc-devs/pymc3/wiki/PyMC's-Jupyter-Notebook-Style) page from our Wiki on how to install and run it. | ||
|
||
## Developing in Docker | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
name: pymc3-dev-py37 | ||
channels: | ||
- conda-forge | ||
- defaults | ||
dependencies: | ||
- python=3.7 | ||
- arviz>=0.9 | ||
- theano-pymc==1.0.11 | ||
- numpy>=1.13 | ||
- scipy>=0.18 | ||
- pandas>=0.18 | ||
- patsy>=0.5 | ||
- fastprogress>=0.2 | ||
- h5py>=2.7 | ||
- typing-extensions>=3.7 | ||
- python-graphviz | ||
- ipython>=7.16 | ||
- nbsphinx>=0.4 | ||
- numpydoc>=0.9 | ||
- pre-commit>=2.8.0 | ||
- pytest-cov>=2.5 | ||
- pytest>=3.0 | ||
- recommonmark>=0.4 | ||
- sphinx-autobuild>=0.7 | ||
- sphinx>=1.5 | ||
- watermark | ||
- mkl-service | ||
- dill | ||
- libblas=*=*mkl |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
name: pymc3-dev-py38 | ||
channels: | ||
- conda-forge | ||
- defaults | ||
dependencies: | ||
- python=3.8 | ||
- arviz>=0.9 | ||
- theano-pymc==1.0.11 | ||
- numpy>=1.13 | ||
- scipy>=0.18 | ||
- pandas>=0.18 | ||
- patsy>=0.5 | ||
- fastprogress>=0.2 | ||
- h5py>=2.7 | ||
- typing-extensions>=3.7 | ||
- python-graphviz | ||
- ipython>=7.16 | ||
- nbsphinx>=0.4 | ||
- numpydoc>=0.9 | ||
- pre-commit>=2.8.0 | ||
- pytest-cov>=2.5 | ||
- pytest>=3.0 | ||
- recommonmark>=0.4 | ||
- sphinx-autobuild>=0.7 | ||
- sphinx>=1.5 | ||
- watermark | ||
- mkl-service | ||
- dill | ||
- libblas=*=*mkl |
Uh oh!
There was an error while loading. Please reload this page.