From dfacf18a80a19f996cf02cd69b21d6a8e34ba1ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihai=20Capot=C4=83?= Date: Wed, 14 Oct 2020 14:40:11 -0700 Subject: [PATCH 1/3] Add release notes for v0.11 --- CONTRIBUTING.rst | 93 +++++++++++++++++++++++++++++-------------- NEWS.rst | 46 ++++++++++++++++++++- docs/installation.rst | 2 +- 3 files changed, 109 insertions(+), 32 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 254def9f7..4089a15e5 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -113,7 +113,7 @@ checks from ``pr-check.sh`` using the steps bellow:: source ../brainiak_pr_venv/bin/activate # install brainiak in editable mode and developer dependencies - python3 -m pip install --no-use-pep517 -U -r requirements-dev.txt + python3 -m pip install -U -r requirements-dev.txt # static analysis ./run-checks.sh @@ -302,64 +302,97 @@ Before making a release, ensure that: To make a release: 1. Choose a release number, ``v``. We follow `Semantic Versioning - `_, although we omit the patch number when it is 0. + `_, although we omit the patch number when it is 0:: + + export v=0.11 -2. Prepare the release notes:: +2. Prepare the release notes; may require manual additions for PRs without + release notes in ``docs/newsfragments``:: - git checkout -b release-v - towncrier --version + git checkout -b release-v$v + towncrier --version $v ./pr-check.sh - git commit -a -m "Add release notes for v" - git push --set-upstream origin release-v + git commit -a -m "Add release notes for v$v" + git push --set-upstream origin release-v$v git checkout master git pull --ff-only - git branch -d release-v + git branch -d release-v$v 3. Tag the release:: - git tag v + git tag v$v 4. Create and test the source distribution package:: + # build python3 setup.py sdist - tar -xf dist/brainiak-.tar.gz - cd brainiak- + # test + tar -xf dist/brainiak-$v.tar.gz + cd brainiak-$v ./pr-check.sh cd - - rm -r brainiak- + rm -r brainiak-$v + +5. Create and test Conda packages (repeat command for all OSes and Python + versions); requires the ``conda-build`` Conda package; make sure you create + the tag on all the machines:: + + # build and test in a single script + # On Linux machine + .conda/bin/build 3.7 + .conda/bin/build 3.8 + # On macOS machine + git tag v$v + .conda/bin/build 3.7 + .conda/bin/build 3.8 + +6. Build the Docker image (requires brainiak-tutorials checkout):: + + # build + # clone if needed + git clone git@github.com:brainiak/brainiak-tutorials.git tutorials + cd tutorials && git pull --ff-only && cd - + docker build --no-cache -t brainiak/brainiak . + docker tag v$v-$(date +%Y%m%d) brainiak/brainiak + # test + # run pr-check.sh in docker -5. Push release:: +7. Build the documentation:: - git push --tags - twine upload dist/brainiak-.tar.gz + cd docs + make + cd - +8. Push tag:: -7. Create and test Conda packages (repeat command for all OSes and Python - versions); requires the ``conda-build`` Conda package:: - - .conda/bin/build + git push upstream v$v -8. Upload the built Conda package (repeat command for all OSes and Python +9. Upload sdist:: + + twine upload dist/brainiak-$v.tar.gz + +10. Upload Conda package (repeat command for all OSes and Python versions); requires the ``anaconda-client`` Conda package:: anaconda upload -u brainiak \ - $CONDA_HOME/conda-bld//brainiak--.tar.bz2 + $CONDA_HOME/conda-bld//brainiak-$v-.tar.bz2 -9. Build and push the Docker image (requires brainiak-tutorials checkout):: +11. Push Docker image:: - cd tutorials && git pull --ff-only && cd - - docker build --no-cache -t brainiak/brainiak . docker push brainiak/brainiak -10. Build and publish the documentation:: +12. Publish the documentation:: - cd docs - make - cd - cd ../brainiak.github.io + git checkout -b release-v$v rm -r docs cp -ir ../brainiak/docs/_build/html docs - git commit -a -m "Update docs to v" - git push + git commit -a -m "Update docs to v$v" + # use your fork + git push --set-upstream origin release-v$v + + git checkout master + git pull --ff-only + git branch -d release-v$v cd - diff --git a/NEWS.rst b/NEWS.rst index 89929f781..6c4bae7d4 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -2,6 +2,50 @@ .. towncrier release notes start +BrainIAK 0.11 (2020-10-14) +========================== + +Features +-------- + +- matnormal: New package for matrix-normal models. (`#341 + `_) +- fmrisim: Add real-time generator. (`#460 + `_) +- isc: Add 'side' option to randomization tests. (`#477 + `_) +- reconstruct: Add 2D expansion to IEM module. (`#482 + `_) +- funcalign: Add save/load functionality to SRM. (`#484 + `_) + +Bugfixes +-------- + +- isc: Fix pairwise bootstrap to tolerate NaNs. (`#475 + `_) + +Documentation improvements +-------------------------- + +- fmrisim: Add details for noise_dict. (`#474 + `_) +- isc: Update permutation doc to clarify pairwise groups. (`#476 + `_) +- isc: Add caveats about false positive rates. (`#480 + `_) +- Remove ``--no-use-pep517`` Pip installation flag, superfluous with + Pip >= 20.2 (`#479 `_) + +Deprecations and removals +------------------------- + +- reconstruct: Rename IEM class. (`#482 + `_) +- Drop support for Python 3.5, which is no longer supported by NumPy. (`#479 + `_) + + BrainIAK 0.10 (2020-02-06) ========================== @@ -10,7 +54,7 @@ Features - reconstruct: Add inverted encoding model (IEM) for recreating continuous representations in new package for reconstruction methods. (`#364 - `_) + `_) - funcalign: Add FastSRM module for input data that does not fit in RAM. (`#421 `_) - fmrisim: Update to how drift is calculated and used. (`#437 diff --git a/docs/installation.rst b/docs/installation.rst index 8f9c6cf36..fbf273ede 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -93,7 +93,7 @@ Installing and upgrading The Brain Imaging Analysis Kit is available on PyPI. You can install it (or upgrade to the latest version) using the following command:: - python3 -m pip install --no-use-pep517 -U brainiak + python3 -m pip install -U brainiak .. warning:: Running `python setup.py install` might fail. It is recommended to install using pip. From 37764bf62a0ee94e0612108a2698c07f5bedc6fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihai=20Capot=C4=83?= Date: Wed, 14 Oct 2020 15:07:35 -0700 Subject: [PATCH 2/3] Fix formatting --- CONTRIBUTING.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 4089a15e5..fbba73064 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -373,7 +373,7 @@ To make a release: twine upload dist/brainiak-$v.tar.gz 10. Upload Conda package (repeat command for all OSes and Python - versions); requires the ``anaconda-client`` Conda package:: + versions); requires the ``anaconda-client`` Conda package:: anaconda upload -u brainiak \ $CONDA_HOME/conda-bld//brainiak-$v-.tar.bz2 From 8236a1d4cd72041856ef58f734242c3c99a64442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihai=20Capot=C4=83?= Date: Wed, 14 Oct 2020 16:11:08 -0700 Subject: [PATCH 3/3] Update Docker --- CONTRIBUTING.rst | 3 ++- Dockerfile | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index fbba73064..7c8fce90a 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -332,7 +332,6 @@ To make a release: cd brainiak-$v ./pr-check.sh cd - - rm -r brainiak-$v 5. Create and test Conda packages (repeat command for all OSes and Python versions); requires the ``conda-build`` Conda package; make sure you create @@ -357,6 +356,8 @@ To make a release: docker tag v$v-$(date +%Y%m%d) brainiak/brainiak # test # run pr-check.sh in docker + # cleanup + rm -r brainiak-$v 7. Build the documentation:: diff --git a/Dockerfile b/Dockerfile index 7a0d9a388..8841b0bd2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,15 +30,14 @@ RUN apt-get update && apt-get install -y \ libssl-dev \ && rm -rf /var/lib/apt/lists/* -COPY dist/brainiak-* /mnt/brainiak +COPY brainiak-* /mnt/brainiak WORKDIR /mnt/brainiak COPY tutorials/tutorials tutorials RUN set -e \ - && python3 -m pip install --user -U "pip<10" \ - && python3 -m pip install --user -U . \ + && python3 -m pip install --user -U pip \ && python3 -m pip install --user -U -r tutorials/requirements.txt \ && for example in examples/*/requirements.txt; \ do python3 -m pip install --user -U -r $example ; done \