Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 65 additions & 31 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -302,64 +302,98 @@ Before making a release, ensure that:
To make a release:

1. Choose a release number, ``v``. We follow `Semantic Versioning
<http://semver.org>`_, although we omit the patch number when it is 0.
<http://semver.org>`_, 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<v>
towncrier --version <v>
git checkout -b release-v$v
towncrier --version $v
./pr-check.sh
git commit -a -m "Add release notes for v<v>"
git push --set-upstream origin release-v<v>
git commit -a -m "Add release notes for v$v"
git push --set-upstream origin release-v$v
<Create a PR; merge the PR.>
git checkout master
git pull --ff-only
git branch -d release-v<v>
git branch -d release-v$v

3. Tag the release::

git tag v<v>
git tag v$v

4. Create and test the source distribution package::

# build
python3 setup.py sdist
tar -xf dist/brainiak-<v>.tar.gz
cd brainiak-<v>
# test
tar -xf dist/brainiak-$v.tar.gz
cd brainiak-$v
./pr-check.sh
cd -
rm -r brainiak-<v>

5. Push release::
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
# cleanup
rm -r brainiak-$v

7. Build the documentation::

git push --tags
twine upload dist/brainiak-<v>.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
versions); requires the ``anaconda-client`` Conda package::
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/<OS>/brainiak-<v>-<python_version>.tar.bz2
$CONDA_HOME/conda-bld/<OS>/brainiak-$v-<python_version>.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<v>"
git push
git commit -a -m "Update docs to v$v"
# use your fork
git push --set-upstream origin release-v$v
<Create a PR; merge the PR.>
git checkout master
git pull --ff-only
git branch -d release-v$v
cd -
5 changes: 2 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
46 changes: 45 additions & 1 deletion NEWS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,50 @@

.. towncrier release notes start

BrainIAK 0.11 (2020-10-14)
==========================

Features
--------

- matnormal: New package for matrix-normal models. (`#341
<https://github.com/brainiak/brainiak/pull/341>`_)
- fmrisim: Add real-time generator. (`#460
<https://github.com/brainiak/brainiak/pull/460>`_)
- isc: Add 'side' option to randomization tests. (`#477
<https://github.com/brainiak/brainiak/pull/477>`_)
- reconstruct: Add 2D expansion to IEM module. (`#482
<https://github.com/brainiak/brainiak/pull/482>`_)
- funcalign: Add save/load functionality to SRM. (`#484
<https://github.com/brainiak/brainiak/pull/484>`_)

Bugfixes
--------

- isc: Fix pairwise bootstrap to tolerate NaNs. (`#475
<https://github.com/brainiak/brainiak/pull/475>`_)

Documentation improvements
--------------------------

- fmrisim: Add details for noise_dict. (`#474
<https://github.com/brainiak/brainiak/pull/474>`_)
- isc: Update permutation doc to clarify pairwise groups. (`#476
<https://github.com/brainiak/brainiak/pull/476>`_)
- isc: Add caveats about false positive rates. (`#480
<https://github.com/brainiak/brainiak/pull/480>`_)
- Remove ``--no-use-pep517`` Pip installation flag, superfluous with
Pip >= 20.2 (`#479 <https://github.com/brainiak/brainiak/pull/479>`_)

Deprecations and removals
-------------------------

- reconstruct: Rename IEM class. (`#482
<https://github.com/brainiak/brainiak/pull/482>`_)
- Drop support for Python 3.5, which is no longer supported by NumPy. (`#479
<https://github.com/brainiak/brainiak/pull/479>`_)


BrainIAK 0.10 (2020-02-06)
==========================

Expand All @@ -10,7 +54,7 @@ Features

- reconstruct: Add inverted encoding model (IEM) for recreating continuous
representations in new package for reconstruction methods. (`#364
<https://github.com/brainiak/brainiak/pull/364/files>`_)
<https://github.com/brainiak/brainiak/pull/364>`_)
- funcalign: Add FastSRM module for input data that does not fit in RAM.
(`#421 <https://github.com/brainiak/brainiak/pull/421>`_)
- fmrisim: Update to how drift is calculated and used. (`#437
Expand Down
2 changes: 1 addition & 1 deletion docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down