From 5277cb0b8c84876d242c70a3fa87b0529be642dd Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Mon, 22 Jul 2024 14:58:43 -0700 Subject: [PATCH 01/30] Test with python 3.12 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 875a0846d..30a9d221a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.9", "3.10", "3.11", "3.12"] nibabel-pre: [true, false] steps: From af62e99f834428b185d5b1c01c15a0b47e84316f Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Tue, 8 Oct 2024 15:48:49 -0700 Subject: [PATCH 02/30] User newer python for releases. --- .github/workflows/publish-to-test-pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 76aeb386f..86973b1bd 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -7,10 +7,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - - name: Set up Python 3.9 + - name: Set up Python 3.11 uses: actions/setup-python@v1 with: - python-version: 3.9 + python-version: 3.11 - name: Install pypa/build run: >- python -m From 7c522092f2c569388bc16651b5c80a6fe2c716ad Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Tue, 8 Oct 2024 15:49:56 -0700 Subject: [PATCH 03/30] Back off upgrade to python 3.12 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30a9d221a..875a0846d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11"] nibabel-pre: [true, false] steps: From fd0ca159c0fa8e43bb2bb425108f0441d529e95c Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Tue, 8 Oct 2024 15:51:56 -0700 Subject: [PATCH 04/30] Update upload artifact. --- .github/workflows/docbuild.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docbuild.yml b/.github/workflows/docbuild.yml index ded354579..46c06c1d9 100644 --- a/.github/workflows/docbuild.yml +++ b/.github/workflows/docbuild.yml @@ -31,7 +31,7 @@ jobs: cd docs make html - name: Upload docs - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: name: docs path: docs/build/html From 477d86049878ac6aca330cbc595a254b996e3e5b Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Tue, 8 Oct 2024 16:05:43 -0700 Subject: [PATCH 05/30] Adapt the release workflow. --- .github/workflows/publish-to-test-pypi.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 86973b1bd..7afb19e62 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -6,34 +6,34 @@ jobs: name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI runs-on: ubuntu-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v1 with: python-version: 3.11 - - name: Install pypa/build + - name: Install pep517 run: >- python -m pip install - build + pep517 --user - name: Build a binary wheel and a source tarball run: >- python -m - build - --sdist - --wheel - --outdir dist/ + pep517.build + --source + --binary + --out-dir dist/ . - name: Publish distribution 📦 to Test PyPI - uses: pypa/gh-action-pypi-publish@master + uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.test_pypi_password }} - repository_url: https://test.pypi.org/legacy/ + repository-url: https://test.pypi.org/legacy/ - name: Publish distribution 📦 to PyPI if: startsWith(github.event.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@master + uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ - password: ${{ secrets.pypi_password }} \ No newline at end of file + password: ${{ secrets.pypi_password }} From 90eed2aa239f8368c1506ec13cd6e6b1eddccdd4 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Tue, 8 Oct 2024 17:18:51 -0700 Subject: [PATCH 06/30] Use the new repo to clone from. --- gpu_docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gpu_docker/Dockerfile b/gpu_docker/Dockerfile index 694489cf7..40beeabe1 100644 --- a/gpu_docker/Dockerfile +++ b/gpu_docker/Dockerfile @@ -29,7 +29,7 @@ ENV LD_LIBRARY_PATH /opt/anaconda/lib:${LD_LIBRARY_PATH} RUN pip install numpy scipy cython nibabel dipy tqdm fslpy # clone pyAFQ GPUStreamlines -RUN git clone https://github.com/yeatmanlab/pyAFQ.git /opt/pyAFQ +RUN git clone https://github.com/tractometry/pyAFQ.git /opt/pyAFQ RUN cd /opt/pyAFQ && git reset --hard ${COMMIT} RUN git clone --recursive -b csaodf https://github.com/dipy/GPUStreamlines /opt/GPUStreamlines From 57cea56c61bed7f0185017fb0d0c958651059eca Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Tue, 8 Oct 2024 20:43:35 -0700 Subject: [PATCH 07/30] Run docbuild only on one version of Python. --- .github/workflows/docbuild.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/docbuild.yml b/.github/workflows/docbuild.yml index 46c06c1d9..2cb300254 100644 --- a/.github/workflows/docbuild.yml +++ b/.github/workflows/docbuild.yml @@ -6,9 +6,8 @@ jobs: build: runs-on: ubuntu-latest strategy: - max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.11"] steps: - name: Checkout repo From 3d3fb0f388347634c4d54cd76ae5f259ccb03153 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Tue, 8 Oct 2024 20:52:31 -0700 Subject: [PATCH 08/30] Point docker build to this repo instead of yeatmanlab. --- pyafq_docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyafq_docker/Dockerfile b/pyafq_docker/Dockerfile index be09b1303..f4cea6fef 100644 --- a/pyafq_docker/Dockerfile +++ b/pyafq_docker/Dockerfile @@ -8,7 +8,7 @@ FROM python:3.8 ARG COMMIT # Install pyAFQ -RUN pip install --no-cache-dir git+https://github.com/yeatmanlab/pyAFQ.git@${COMMIT} +RUN pip install --no-cache-dir git+https://github.com/tractometry/pyAFQ.git@${COMMIT} RUN pip install fslpy RUN pyAFQ download From 4512e84d9b37c9768ff0369e51b66000b1d156d8 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:16:04 -0700 Subject: [PATCH 09/30] Replace yeatmanlab with tractometry wherever that appears. --- .github/CONTRIBUTING.md | 30 +++++++++---------- .zenodo.json | 2 +- AFQ/data/fetch.py | 2 +- AFQ/tasks/viz.py | 2 +- README.md | 2 +- bin/pyAFQ | 4 +-- docs/Makefile | 2 +- docs/source/conf.py | 4 +-- docs/source/explanations/modeling.rst | 2 +- docs/source/howto/contributing.rst | 4 +-- docs/source/howto/developing/index.rst | 6 ++-- docs/source/howto/developing/releasing.rst | 6 ++-- docs/source/howto/getting_help.rst | 4 +-- docs/source/howto/installation_guide.rst | 4 +-- docs/source/howto/usage/docker.rst | 2 +- docs/source/howto/usage/kwargs.rst | 4 +-- docs/source/reference/kwargs.rst | 2 +- examples/howto_examples/add_custom_bundle.py | 20 ++++++------- examples/howto_examples/cloudknot_example.py | 4 +-- .../howto_examples/cloudknot_hcp_example.py | 8 ++--- .../tutorial_examples/plot_002_bids_layout.py | 2 +- setup.cfg | 4 +-- 22 files changed, 60 insertions(+), 60 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 6e5e3ba91..91b0020e4 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -94,19 +94,19 @@ is difficult to be described as one unit of work, please consider splitting it i The current list of issue labels are [here][link_labels] and include: -* [![Good first issue](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/good%20first%20issue)][link_firstissue] *These issues contain a task that is amenable to new contributors because it doesn't entail a steep learning curve.* +* [![Good first issue](https://img.shields.io/github/labels/tractometry/pyAFQ/good%20first%20issue)][link_firstissue] *These issues contain a task that is amenable to new contributors because it doesn't entail a steep learning curve.* If you feel that you can contribute to one of these issues, we especially encourage you to do so! -* [![Bug](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/bug)][link_bugs] *These issues point to problems in the project.* +* [![Bug](https://img.shields.io/github/labels/tractometry/pyAFQ/bug)][link_bugs] *These issues point to problems in the project.* If you find new a bug, please give as much detail as possible in your issue, including steps to recreate the error. If you experience the same bug as one already listed, please add any additional information that you have as a comment. -* [![Enhancement](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/enhancement)][link_enhancement] *These issues are asking for new features and improvements to be considered by the project.* +* [![Enhancement](https://img.shields.io/github/labels/tractometry/pyAFQ/enhancement)][link_enhancement] *These issues are asking for new features and improvements to be considered by the project.* Please try to make sure that your requested feature is distinct from any others that have already been requested or implemented. @@ -118,16 +118,16 @@ we have two sets of special labels: | Label | Description | |--------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------| -| ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/impact%3A%20high)
![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/impact%3A%20medium)
![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/impact%3A%20low) | Estimation of the downstream impact the proposed feature/bugfix will have. | -| ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/effort%3A%20high)
![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/effort%3A%20medium)
![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/effort%3A%20low) | Estimation of effort required to implement the requested feature or fix the reported bug. | +| ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/impact%3A%20high)
![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/impact%3A%20medium)
![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/impact%3A%20low) | Estimation of the downstream impact the proposed feature/bugfix will have. | +| ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/effort%3A%20high)
![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/effort%3A%20medium)
![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/effort%3A%20low) | Estimation of effort required to implement the requested feature or fix the reported bug. | These labels help triage and set priorities to the development tasks. For instance, one bug regression that has been reported to affect most of the users after a release with an easy fix because it is a known old problem that came back. -Such an issue will typically be assigned the following labels ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/bug) ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/impact%3A%20high) ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/effort%3A%20low), and its priority will be maximal since addressing low-effort high-impact deliver the maximum turnout without increasing the churn by much. +Such an issue will typically be assigned the following labels ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/bug) ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/impact%3A%20high) ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/effort%3A%20low), and its priority will be maximal since addressing low-effort high-impact deliver the maximum turnout without increasing the churn by much. -Of course, the implementation of long-term goaled lines may include the scheduling of ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/impact%3A%20medium) ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/effort%3A%20high). -Finally, ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/impact%3A%20low) ![GitHub labels](https://img.shields.io/github/labels/yeatmanlab/pyAFQ/effort%3A%20high) issues are less likely to be addressed. +Of course, the implementation of long-term goaled lines may include the scheduling of ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/impact%3A%20medium) ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/effort%3A%20high). +Finally, ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/impact%3A%20low) ![GitHub labels](https://img.shields.io/github/labels/tractometry/pyAFQ/effort%3A%20high) issues are less likely to be addressed. ## Making a change @@ -156,7 +156,7 @@ but those accepted fastest will follow a workflow similar to the following: add the ["upstream" pyAFQ repository as a remote][link_addremote] to your locally cloned repository. ```Shell - git remote add upstream https://github.com/yeatmanlab/pyAFQ.git + git remote add upstream https://github.com/tractometry/pyAFQ.git ``` Make sure to [keep your fork up to date][link_updateupstreamwiki] with the upstream repository.
For example, to update your master branch on your local cloned repository: @@ -240,7 +240,7 @@ acknowledge that any contributions will be licensed under the same terms. [MetPy project](https://github.com/Unidata/MetPy). [link_github]: https://github.com/ -[link_pyAFQ]: https://github.com/yeatmanlab/pyAFQ +[link_pyAFQ]: https://github.com/tractometry/pyAFQ [link_signupinstructions]: https://help.github.com/articles/signing-up-for-a-new-github-account [link_neurostars]: https://neurostars.org/tags/pyAFQ @@ -254,13 +254,13 @@ acknowledge that any contributions will be licensed under the same terms. [rick_roll]: https://www.youtube.com/watch?v=dQw4w9WgXcQ [autofq]: https://autofq.org/ -[link_issues]: https://github.com/yeatmanlab/pyAFQ/issues -[link_labels]: https://github.com/yeatmanlab/pyAFQ/labels +[link_issues]: https://github.com/tractometry/pyAFQ/issues +[link_labels]: https://github.com/tractometry/pyAFQ/labels [link_discussingissues]: https://help.github.com/articles/discussing-projects-in-issues-and-pull-requests -[link_bugs]: https://github.com/yeatmanlab/pyAFQ/labels/bug -[link_firstissue]: https://github.com/yeatmanlab/pyAFQ/labels/good%20first%20issue -[link_enhancement]: https://github.com/yeatmanlab/pyAFQ/labels/enhancement +[link_bugs]: https://github.com/tractometry/pyAFQ/labels/bug +[link_firstissue]: https://github.com/tractometry/pyAFQ/labels/good%20first%20issue +[link_enhancement]: https://github.com/tractometry/pyAFQ/labels/enhancement [link_pullrequest]: https://help.github.com/articles/creating-a-pull-request-from-a-fork [link_fork]: https://help.github.com/articles/fork-a-repo/ diff --git a/.zenodo.json b/.zenodo.json index 56b5f42e8..1e901939e 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -69,7 +69,7 @@ "license": "BSD-3-Clause", "related_identifiers": [ { - "identifier": "http://yeatmanlab.github.io/pyAFQ", + "identifier": "http://tractometry.github.io/pyAFQ", "relation": "isPartOf", "scheme": "url" } diff --git a/AFQ/data/fetch.py b/AFQ/data/fetch.py index cad48b6ee..67d02ce6b 100644 --- a/AFQ/data/fetch.py +++ b/AFQ/data/fetch.py @@ -203,7 +203,7 @@ def read_callosum_templates(as_img=True, resample_to=False): # # - atlas: https://www.nitrc.org/projects/pediatricatlas # -# - pediatric templates: https://github.com/yeatmanlab/AFQ/tree/babyAFQ +# - pediatric templates: https://github.com/tractometry/AFQ/tree/babyAFQ # # Templates downloaded from: # diff --git a/AFQ/tasks/viz.py b/AFQ/tasks/viz.py index 5e6aee1df..80d322836 100644 --- a/AFQ/tasks/viz.py +++ b/AFQ/tasks/viz.py @@ -404,7 +404,7 @@ def init_viz_backend(viz_backend_spec="plotly_no_gif", viz_backend_spec : str, optional Which visualization backend to use. See Visualization Backends page in documentation for details: - https://yeatmanlab.github.io/pyAFQ/usage/viz_backend.html + https://tractometry.github.io/pyAFQ/usage/viz_backend.html One of {"fury", "plotly", "plotly_no_gif"}. Default: "plotly_no_gif" """ diff --git a/README.md b/README.md index adb905044..55430f709 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # pyAFQ Automated Fiber Quantification ... in Python. -For details, see [Documentation](https://yeatmanlab.github.io/pyAFQ) +For details, see [Documentation](https://tractometry.github.io/pyAFQ) For further analysis of results, see [AFQ-Insight](https://github.com/richford/AFQ-Insight) diff --git a/bin/pyAFQ b/bin/pyAFQ index 261ece7f1..9704cf570 100755 --- a/bin/pyAFQ +++ b/bin/pyAFQ @@ -23,7 +23,7 @@ usage = \ Runs full AFQ processing as specified in the configuration file. For details about configuration, see instructions in: -https://yeatmanlab.github.io/pyAFQ/usage/config.html +https://tractometry.github.io/pyAFQ/usage/config.html The default configuration file looks like: @@ -104,7 +104,7 @@ def parse_cli(arg_dict): logger.info( "Your use of pyAFQ is being recorded using Google Analytics. " "For more information, please refer to the pyAFQ documentation: " - "https://yeatmanlab.github.io/pyAFQ/usage.html#usage-tracking-with-google-analytics. " # noqa + "https://tractometry.github.io/pyAFQ/usage.html#usage-tracking-with-google-analytics. " # noqa "To turn this off, use the `--notrack` " "flag when using the pyAFQ CLI") import popylar diff --git a/docs/Makefile b/docs/Makefile index ff6721d87..5e769d175 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -20,7 +20,7 @@ help: @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) upload: html - ./upload-gh-pages.sh build/html/ pyAFQ yeatmanlab + ./upload-gh-pages.sh build/html/ pyAFQ tractometry .PHONY: distclean realclean diff --git a/docs/source/conf.py b/docs/source/conf.py index b7833db5c..0636a29e0 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -110,7 +110,7 @@ "icon_links": [ { "name": "GitHub", - "url": "https://github.com/yeatmanlab/pyAFQ", + "url": "https://github.com/tractometry/pyAFQ", "icon": "fab fa-github-square", }] @@ -122,7 +122,7 @@ html_context = { "github_url": "https://github.com", - "github_user": "yeatmanlab", + "github_user": "tractometry", "github_repo": "pyAFQ", "github_version": "master", "doc_path": "docs/source", diff --git a/docs/source/explanations/modeling.rst b/docs/source/explanations/modeling.rst index 2039f0fb3..6bac424e8 100644 --- a/docs/source/explanations/modeling.rst +++ b/docs/source/explanations/modeling.rst @@ -11,7 +11,7 @@ For an interesting perspective on modeling of tissue properties from diffusion MRI data, please refer to a recent paper by Novikov and colleagues [Novikov2018]_. -`This page ` includes +`This page ` includes a list of the model parameters that are accessible through the :class:`AFQ.api.group.GroupAFQ` and :class:`AFQ.api.participant.ParticipantAFQ` objects. diff --git a/docs/source/howto/contributing.rst b/docs/source/howto/contributing.rst index 38ac358b2..2080334a6 100644 --- a/docs/source/howto/contributing.rst +++ b/docs/source/howto/contributing.rst @@ -4,9 +4,9 @@ How to contribute to pyAFQ ~~~~~~~~~~~~~~~~~~~~~ pyAFQ is an open-source software project. This means that you are welcome -to use it (see `LICENSE `_ for details). +to use it (see `LICENSE `_ for details). It also means that we welcome contributions from developers outside of our research collaboration and we will credit these contributions appropriately. -Detailed guidelines for contribution are available `here `_. +Detailed guidelines for contribution are available `here `_. diff --git a/docs/source/howto/developing/index.rst b/docs/source/howto/developing/index.rst index 340861341..df33a1f7c 100644 --- a/docs/source/howto/developing/index.rst +++ b/docs/source/howto/developing/index.rst @@ -3,7 +3,7 @@ How to develop `pyAFQ` We are glad that you are here! That probably means that you are interested in contributing to the development of `pyAFQ`. Before you continue reading specific topics below, please read the contribution guidelines -`here `_ . +`here `_ . As an overview, the pyAFQ code can roughly be divided into 5 sections. @@ -20,14 +20,14 @@ As an overview, the pyAFQ code can roughly be divided into 5 sections. 3 - Code which describes tasks within the tractometry workflow. **For most contributors, this is a good place to start**. The user-facing API/CLI use a workflow automatically constructed from these discrete tasks, - as described in `tasks `_ . + as described in `tasks `_ . For shorter tasks, one may only need to edit the relevant task file. For longer tasks, one can add to the files containing low-level functionality. 4 - Code which describes 'definitions', classes which help users describe inputs to pyAFQ. These have particular requirements and must be - BIDS compatible, see `here `_ . + BIDS compatible, see `here `_ . 5 - Code which contains tests, such as in the tests folder and utils/tests. It is important when adding new functionality to add a corresponding test. diff --git a/docs/source/howto/developing/releasing.rst b/docs/source/howto/developing/releasing.rst index 2294ff0ad..76de02df8 100644 --- a/docs/source/howto/developing/releasing.rst +++ b/docs/source/howto/developing/releasing.rst @@ -3,7 +3,7 @@ How to create a release The current release process entails the following steps: -#. Make sure you have the `master` branch locally updated to the state on the `main fork of the project `_. +#. Make sure you have the `master` branch locally updated to the state on the `main fork of the project `_. #. Update CHANGES.rst: run the script `.maintenance/update_changes.sh `, with the tag set to the version string of the upcoming release. Further edit the notes to add a short summary at the top. @@ -18,8 +18,8 @@ The current release process entails the following steps: git push upstream 0.5 #. On GitHub: - - Navigate to the `"Releases" tab `_ - - Click on `"Draft a new release" `_. + - Navigate to the `"Releases" tab `_ + - Click on `"Draft a new release" `_. - In the "Tag version" box enter the version string of this release. - In "Release title" enter (for example) "Version 0.5". - In the description box copy the entry in CHANGES.rst corresponding to this release (with the exclusion of the title). diff --git a/docs/source/howto/getting_help.rst b/docs/source/howto/getting_help.rst index 6da5ed656..5b5b5c48a 100644 --- a/docs/source/howto/getting_help.rst +++ b/docs/source/howto/getting_help.rst @@ -6,7 +6,7 @@ one of the following communication channels: #. If you encounter a problem using the code, you can post an issue on our GitHub repository by going to this - `page `_ and clicking on the "new + `page `_ and clicking on the "new issue" button. Please provide all pertinent information about the issue you are facing: we often need to know what version of the software you are running and how you installed it, as well as the operating system that you @@ -17,7 +17,7 @@ one of the following communication channels: #. If you would like to start a discussion about future developments or about the method, consider starting a discussion on this - `page `_. + `page `_. #. Questions regarding the method and its use can also be posted to the `Neurostars `_ Q&A forum. diff --git a/docs/source/howto/installation_guide.rst b/docs/source/howto/installation_guide.rst index d522eb0bf..c1195e236 100644 --- a/docs/source/howto/installation_guide.rst +++ b/docs/source/howto/installation_guide.rst @@ -25,11 +25,11 @@ The development version is probably less stable, but might include new features and fixes. There are two ways to install this version. The first uses ``pip``:: - pip install git+https://github.com/yeatmanlab/pyAFQ.git + pip install git+https://github.com/tractometry/pyAFQ.git The other requires that you clone the source code to your machine:: - git clone https://github.com/yeatmanlab/pyAFQ.git + git clone https://github.com/tractometry/pyAFQ.git With both installation methods, you can include extensions to the base installation in square brackets. Change your working directory into the top-level directory of this repo and issue:: diff --git a/docs/source/howto/usage/docker.rst b/docs/source/howto/usage/docker.rst index 962401952..a7a882886 100644 --- a/docs/source/howto/usage/docker.rst +++ b/docs/source/howto/usage/docker.rst @@ -2,7 +2,7 @@ The pyAFQ docker image ~~~~~~~~~~~~~~~~~~~~~~ Everytime a new commit is made to master the -`pyAFQ github `_, +`pyAFQ github `_, a new image is pushed to the `NRDG github `_. This image contains an installation of the latest version of diff --git a/docs/source/howto/usage/kwargs.rst b/docs/source/howto/usage/kwargs.rst index aaf679cbf..a11e2163b 100644 --- a/docs/source/howto/usage/kwargs.rst +++ b/docs/source/howto/usage/kwargs.rst @@ -108,7 +108,7 @@ brain_mask_definition: instance from `AFQ.definitions.image`, optional bundle_info: strings, dict, or BundleDict, optional List of bundle names to include in segmentation, or a bundle dictionary (see BundleDict for inspiration), - or a BundleDict. See `Defining Custom Bundle Dictionaries `_ + or a BundleDict. See `Defining Custom Bundle Dictionaries `_ in the `usage` section of pyAFQ's documentation for details. If None, will get all appropriate bundles for the chosen segmentation algorithm. @@ -228,7 +228,7 @@ n_points_indiv: int or None viz_backend_spec: str, optional Which visualization backend to use. See Visualization Backends page in documentation for details: - https://yeatmanlab.github.io/pyAFQ/usage/viz_backend.html + https://tractometry.github.io/pyAFQ/usage/viz_backend.html One of {"fury", "plotly", "plotly_no_gif"}. Default: "plotly_no_gif" diff --git a/docs/source/reference/kwargs.rst b/docs/source/reference/kwargs.rst index d7314f26b..eea01f5dd 100644 --- a/docs/source/reference/kwargs.rst +++ b/docs/source/reference/kwargs.rst @@ -258,7 +258,7 @@ n_points_indiv: int or None viz_backend_spec: str, optional Which visualization backend to use. See Visualization Backends page in documentation for details: - https://yeatmanlab.github.io/pyAFQ/usage/viz_backend.html + https://tractometry.github.io/pyAFQ/usage/viz_backend.html One of {"fury", "plotly", "plotly_no_gif"}. Default: "plotly_no_gif" diff --git a/examples/howto_examples/add_custom_bundle.py b/examples/howto_examples/add_custom_bundle.py index ac8a0d55f..0fc6f92af 100644 --- a/examples/howto_examples/add_custom_bundle.py +++ b/examples/howto_examples/add_custom_bundle.py @@ -63,16 +63,16 @@ # example we download these files from the MATLAB AFQ website, but this code could # be commented out and paths could be used to local ROIs on disk -roi_urls = ['https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgL.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgR.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaL.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaR.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgL.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgR.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgL.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgR.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_L.nii.gz', - 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_R.nii.gz'] +roi_urls = ['https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgL.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgR.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaL.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaR.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgL.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgR.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgL.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgR.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_L.nii.gz', + 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_R.nii.gz'] # We proceed to download the files. First, we define and create the directory # for the template ROIs. In the code below, ``op.expanduser("~")`` expands the diff --git a/examples/howto_examples/cloudknot_example.py b/examples/howto_examples/cloudknot_example.py index e1292cc51..df5af4379 100644 --- a/examples/howto_examples/cloudknot_example.py +++ b/examples/howto_examples/cloudknot_example.py @@ -115,7 +115,7 @@ def afq_process_subject(subject): name='afq-process-subject-201009-0', func=afq_process_subject, base_image='python:3.8', - image_github_installs="https://github.com/yeatmanlab/pyAFQ.git", + image_github_installs="https://github.com/tractometry/pyAFQ.git", pars_policies=('AmazonS3FullAccess',), bid_percentage=100) @@ -159,7 +159,7 @@ def afq_combine_profiles(dummy_argument): name='afq_combine_subjects-201009-0', func=afq_combine_profiles, base_image='python:3.8', - image_github_installs="https://github.com/yeatmanlab/pyAFQ.git", + image_github_installs="https://github.com/tractometry/pyAFQ.git", pars_policies=('AmazonS3FullAccess',), bid_percentage=100) diff --git a/examples/howto_examples/cloudknot_hcp_example.py b/examples/howto_examples/cloudknot_hcp_example.py index 2663fa5b1..039f0133b 100644 --- a/examples/howto_examples/cloudknot_hcp_example.py +++ b/examples/howto_examples/cloudknot_hcp_example.py @@ -8,7 +8,7 @@ `here `_. We will use the ``Cloudknot`` library to run our AFQ analysis in the AWS Batch service (see also -`this example `_). +`this example `_). In the following we will use ``Cloudknot`` to run multiple configurations of pyAFQ on the HCP dataset. Specifically, here we will run pyAFQ with different tractography seeding strategies. @@ -147,13 +147,13 @@ def attach_keys(list_of_arg_lists): ########################################################################## # Define the :meth:`Knot` object to run your jobs on. See -# `this example `_ for more +# `this example `_ for more # details about the arguments to the object. knot = ck.Knot( name='afq-hcp-tractography-201110-0', func=afq_process_subject, base_image='python:3.8', - image_github_installs="https://github.com/yeatmanlab/pyAFQ.git", + image_github_installs="https://github.com/tractometry/pyAFQ.git", pars_policies=('AmazonS3FullAccess',), bid_percentage=100) @@ -194,7 +194,7 @@ def afq_combine_profiles(seed_mask, n_seeds): name='afq_combine_subjects-201110-0', func=afq_combine_profiles, base_image='python:3.8', - image_github_installs="https://github.com/yeatmanlab/pyAFQ.git", + image_github_installs="https://github.com/tractometry/pyAFQ.git", pars_policies=('AmazonS3FullAccess',), bid_percentage=100) diff --git a/examples/tutorial_examples/plot_002_bids_layout.py b/examples/tutorial_examples/plot_002_bids_layout.py index 65d902abe..1c5bc576f 100644 --- a/examples/tutorial_examples/plot_002_bids_layout.py +++ b/examples/tutorial_examples/plot_002_bids_layout.py @@ -213,7 +213,7 @@ # which we already have clear definitions of the information # needed to segment them (e.g., waypoint ROIs and probability maps). # For an example that includes custom definition of bundle info, see the -# `plot_callosal_tract_profile example `_. +# `plot_callosal_tract_profile example `_. bundle_info = abd.default18_bd()[ "Left Superior Longitudinal", diff --git a/setup.cfg b/setup.cfg index 8d163d2d6..40a7a56d1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,7 +1,7 @@ [metadata] name = pyAFQ -url = https://yeatmanlab.github.io/pyAFQ -download_url = https://github.com/yeatmanlab/pyAFQ +url = https://tractometry.github.io/pyAFQ +download_url = https://github.com/tractometry/pyAFQ author = pyAFQ developers author_email = arokem@gmail.com maintainer = Ariel Rokem From b753c9bc8c5c3ce77e3d82ec913029184758806d Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:17:37 -0700 Subject: [PATCH 10/30] Update .zenodo.json --- .zenodo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.zenodo.json b/.zenodo.json index 1e901939e..f52fd2991 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -69,7 +69,7 @@ "license": "BSD-3-Clause", "related_identifiers": [ { - "identifier": "http://tractometry.github.io/pyAFQ", + "identifier": "http://tractometry.org/pyAFQ", "relation": "isPartOf", "scheme": "url" } From ab231ecdf1ef2aa0ce9e3a41615a3d07c69f6f7c Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:18:04 -0700 Subject: [PATCH 11/30] Update AFQ/tasks/viz.py --- AFQ/tasks/viz.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AFQ/tasks/viz.py b/AFQ/tasks/viz.py index 80d322836..c2bfc832c 100644 --- a/AFQ/tasks/viz.py +++ b/AFQ/tasks/viz.py @@ -404,7 +404,7 @@ def init_viz_backend(viz_backend_spec="plotly_no_gif", viz_backend_spec : str, optional Which visualization backend to use. See Visualization Backends page in documentation for details: - https://tractometry.github.io/pyAFQ/usage/viz_backend.html + https://tractometry.org/pyAFQ/usage/viz_backend.html One of {"fury", "plotly", "plotly_no_gif"}. Default: "plotly_no_gif" """ From 4c9e26e2893c733060fef8d763fed0b1b8c2ad64 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:18:22 -0700 Subject: [PATCH 12/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55430f709..f62634d1a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # pyAFQ Automated Fiber Quantification ... in Python. -For details, see [Documentation](https://tractometry.github.io/pyAFQ) +For details, see [Documentation](https://tractometry.org/pyAFQ) For further analysis of results, see [AFQ-Insight](https://github.com/richford/AFQ-Insight) From a3e6ea3057cb7c851319e6a3839b5d6aa71c6821 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:22:12 -0700 Subject: [PATCH 13/30] These should still point to yeatmanlab --- examples/howto_examples/add_custom_bundle.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/howto_examples/add_custom_bundle.py b/examples/howto_examples/add_custom_bundle.py index 0fc6f92af..ac8a0d55f 100644 --- a/examples/howto_examples/add_custom_bundle.py +++ b/examples/howto_examples/add_custom_bundle.py @@ -63,16 +63,16 @@ # example we download these files from the MATLAB AFQ website, but this code could # be commented out and paths could be used to local ROIs on disk -roi_urls = ['https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgL.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgR.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaL.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaR.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgL.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgR.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgL.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgR.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_L.nii.gz', - 'https://github.com/tractometry/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_R.nii.gz'] +roi_urls = ['https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgL.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/MFgR.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaL.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PaR.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgL.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/PrgR.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgL.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SFgR.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_L.nii.gz', + 'https://github.com/yeatmanlab/AFQ/raw/c762ca4c393f2105d4f444c44d9e4b4702f0a646/SLF123/ROIs/SLFt_roi2_R.nii.gz'] # We proceed to download the files. First, we define and create the directory # for the template ROIs. In the code below, ``op.expanduser("~")`` expands the From 526be1d51fc5176c66ec559df2ef1490fd720da1 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:23:06 -0700 Subject: [PATCH 14/30] Update bin/pyAFQ --- bin/pyAFQ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/pyAFQ b/bin/pyAFQ index 9704cf570..b1865e285 100755 --- a/bin/pyAFQ +++ b/bin/pyAFQ @@ -23,7 +23,7 @@ usage = \ Runs full AFQ processing as specified in the configuration file. For details about configuration, see instructions in: -https://tractometry.github.io/pyAFQ/usage/config.html +https://tractometry.org/pyAFQ/usage/config.html The default configuration file looks like: From 4380be0519927401312fc6b34506fc021d2ddc8b Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:23:13 -0700 Subject: [PATCH 15/30] Update bin/pyAFQ --- bin/pyAFQ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/pyAFQ b/bin/pyAFQ index b1865e285..0fbafb8af 100755 --- a/bin/pyAFQ +++ b/bin/pyAFQ @@ -104,7 +104,7 @@ def parse_cli(arg_dict): logger.info( "Your use of pyAFQ is being recorded using Google Analytics. " "For more information, please refer to the pyAFQ documentation: " - "https://tractometry.github.io/pyAFQ/usage.html#usage-tracking-with-google-analytics. " # noqa + "https://tractometry.org/pyAFQ/usage.html#usage-tracking-with-google-analytics. " # noqa "To turn this off, use the `--notrack` " "flag when using the pyAFQ CLI") import popylar From 88b55c0ce228b9289abe1b7dd8dcaa7ab0bd32ca Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:23:20 -0700 Subject: [PATCH 16/30] Update docs/source/explanations/modeling.rst --- docs/source/explanations/modeling.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/explanations/modeling.rst b/docs/source/explanations/modeling.rst index 6bac424e8..e8599df76 100644 --- a/docs/source/explanations/modeling.rst +++ b/docs/source/explanations/modeling.rst @@ -11,7 +11,7 @@ For an interesting perspective on modeling of tissue properties from diffusion MRI data, please refer to a recent paper by Novikov and colleagues [Novikov2018]_. -`This page ` includes +`This page ` includes a list of the model parameters that are accessible through the :class:`AFQ.api.group.GroupAFQ` and :class:`AFQ.api.participant.ParticipantAFQ` objects. From 94ac5c3418f2f0ce36df41e89d9ef37a6ab102ad Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:23:31 -0700 Subject: [PATCH 17/30] Update docs/source/howto/developing/index.rst --- docs/source/howto/developing/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/howto/developing/index.rst b/docs/source/howto/developing/index.rst index df33a1f7c..2eec46b12 100644 --- a/docs/source/howto/developing/index.rst +++ b/docs/source/howto/developing/index.rst @@ -20,7 +20,7 @@ As an overview, the pyAFQ code can roughly be divided into 5 sections. 3 - Code which describes tasks within the tractometry workflow. **For most contributors, this is a good place to start**. The user-facing API/CLI use a workflow automatically constructed from these discrete tasks, - as described in `tasks `_ . + as described in `tasks `_ . For shorter tasks, one may only need to edit the relevant task file. For longer tasks, one can add to the files containing low-level functionality. From 9fc15368a39255d481844fb5404a423134d28770 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:23:38 -0700 Subject: [PATCH 18/30] Update docs/source/howto/developing/index.rst --- docs/source/howto/developing/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/howto/developing/index.rst b/docs/source/howto/developing/index.rst index 2eec46b12..f45210d56 100644 --- a/docs/source/howto/developing/index.rst +++ b/docs/source/howto/developing/index.rst @@ -27,7 +27,7 @@ As an overview, the pyAFQ code can roughly be divided into 5 sections. 4 - Code which describes 'definitions', classes which help users describe inputs to pyAFQ. These have particular requirements and must be - BIDS compatible, see `here `_ . + BIDS compatible, see `here `_ . 5 - Code which contains tests, such as in the tests folder and utils/tests. It is important when adding new functionality to add a corresponding test. From 969cf4cf0f648d17f532acd914d1835c9c5489b9 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:23:51 -0700 Subject: [PATCH 19/30] Update docs/source/howto/usage/kwargs.rst --- docs/source/howto/usage/kwargs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/howto/usage/kwargs.rst b/docs/source/howto/usage/kwargs.rst index a11e2163b..a3cc53722 100644 --- a/docs/source/howto/usage/kwargs.rst +++ b/docs/source/howto/usage/kwargs.rst @@ -108,7 +108,7 @@ brain_mask_definition: instance from `AFQ.definitions.image`, optional bundle_info: strings, dict, or BundleDict, optional List of bundle names to include in segmentation, or a bundle dictionary (see BundleDict for inspiration), - or a BundleDict. See `Defining Custom Bundle Dictionaries `_ + or a BundleDict. See `Defining Custom Bundle Dictionaries `_ in the `usage` section of pyAFQ's documentation for details. If None, will get all appropriate bundles for the chosen segmentation algorithm. From 5d96789e7e71ddccc363ffe967c4ca67a25a4cf6 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:24:00 -0700 Subject: [PATCH 20/30] Update examples/tutorial_examples/plot_002_bids_layout.py --- examples/tutorial_examples/plot_002_bids_layout.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/tutorial_examples/plot_002_bids_layout.py b/examples/tutorial_examples/plot_002_bids_layout.py index 1c5bc576f..61a6365e0 100644 --- a/examples/tutorial_examples/plot_002_bids_layout.py +++ b/examples/tutorial_examples/plot_002_bids_layout.py @@ -213,7 +213,7 @@ # which we already have clear definitions of the information # needed to segment them (e.g., waypoint ROIs and probability maps). # For an example that includes custom definition of bundle info, see the -# `plot_callosal_tract_profile example `_. +# `plot_callosal_tract_profile example `_. bundle_info = abd.default18_bd()[ "Left Superior Longitudinal", From f5739880b206b05aed9ce4bc9f5ea19590615365 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:24:08 -0700 Subject: [PATCH 21/30] Update examples/howto_examples/cloudknot_hcp_example.py --- examples/howto_examples/cloudknot_hcp_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/howto_examples/cloudknot_hcp_example.py b/examples/howto_examples/cloudknot_hcp_example.py index 039f0133b..f2ffa26bc 100644 --- a/examples/howto_examples/cloudknot_hcp_example.py +++ b/examples/howto_examples/cloudknot_hcp_example.py @@ -147,7 +147,7 @@ def attach_keys(list_of_arg_lists): ########################################################################## # Define the :meth:`Knot` object to run your jobs on. See -# `this example `_ for more +# `this example `_ for more # details about the arguments to the object. knot = ck.Knot( name='afq-hcp-tractography-201110-0', From ff2a920f46f650a5d846a875c9910c244a73f2f3 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:25:15 -0700 Subject: [PATCH 22/30] Update docs/source/reference/kwargs.rst --- docs/source/reference/kwargs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/reference/kwargs.rst b/docs/source/reference/kwargs.rst index eea01f5dd..71c81e729 100644 --- a/docs/source/reference/kwargs.rst +++ b/docs/source/reference/kwargs.rst @@ -258,7 +258,7 @@ n_points_indiv: int or None viz_backend_spec: str, optional Which visualization backend to use. See Visualization Backends page in documentation for details: - https://tractometry.github.io/pyAFQ/usage/viz_backend.html + https://tractometry.org/pyAFQ/usage/viz_backend.html One of {"fury", "plotly", "plotly_no_gif"}. Default: "plotly_no_gif" From f9ef051e67d79b2385c789f849eed91dec7a9f12 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:26:01 -0700 Subject: [PATCH 23/30] Update docs/source/howto/usage/kwargs.rst --- docs/source/howto/usage/kwargs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/howto/usage/kwargs.rst b/docs/source/howto/usage/kwargs.rst index a3cc53722..a42393310 100644 --- a/docs/source/howto/usage/kwargs.rst +++ b/docs/source/howto/usage/kwargs.rst @@ -228,7 +228,7 @@ n_points_indiv: int or None viz_backend_spec: str, optional Which visualization backend to use. See Visualization Backends page in documentation for details: - https://tractometry.github.io/pyAFQ/usage/viz_backend.html + https://tractometry.org/pyAFQ/usage/viz_backend.html One of {"fury", "plotly", "plotly_no_gif"}. Default: "plotly_no_gif" From 9e4648ba95aba964b937f5a2c607c43d0274f24b Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:26:16 -0700 Subject: [PATCH 24/30] Update examples/howto_examples/cloudknot_hcp_example.py --- examples/howto_examples/cloudknot_hcp_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/howto_examples/cloudknot_hcp_example.py b/examples/howto_examples/cloudknot_hcp_example.py index f2ffa26bc..1db42e482 100644 --- a/examples/howto_examples/cloudknot_hcp_example.py +++ b/examples/howto_examples/cloudknot_hcp_example.py @@ -8,7 +8,7 @@ `here `_. We will use the ``Cloudknot`` library to run our AFQ analysis in the AWS Batch service (see also -`this example `_). +`this example `_). In the following we will use ``Cloudknot`` to run multiple configurations of pyAFQ on the HCP dataset. Specifically, here we will run pyAFQ with different tractography seeding strategies. From 59c2fc247c623b151c188e10c649e4695d6222c1 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Wed, 9 Oct 2024 13:50:24 -0700 Subject: [PATCH 25/30] Update workflows, including concurrency. --- .github/workflows/docbuild.yml | 13 +++++++++---- .github/workflows/docker_pyafq.yml | 2 +- .github/workflows/docker_pyafq_cuda12.yml | 4 ++-- .github/workflows/test.yml | 4 ++++ 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docbuild.yml b/.github/workflows/docbuild.yml index 2cb300254..d001ece05 100644 --- a/.github/workflows/docbuild.yml +++ b/.github/workflows/docbuild.yml @@ -2,6 +2,13 @@ name: Documentation build on: [push, pull_request] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: write + jobs: build: runs-on: ubuntu-latest @@ -36,8 +43,6 @@ jobs: path: docs/build/html - name: Publish docs to Github Pages if: startsWith(github.event.ref, 'refs/tags') - uses: JamesIves/github-pages-deploy-action@releases/v3 + uses: JamesIves/github-pages-deploy-action@releases/v4 with: - ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} - BRANCH: gh-pages # The branch the action should deploy to. - FOLDER: docs/build/html # The folder the action should deploy. + folder: docs/build/html diff --git a/.github/workflows/docker_pyafq.yml b/.github/workflows/docker_pyafq.yml index 0692f7446..a19162509 100644 --- a/.github/workflows/docker_pyafq.yml +++ b/.github/workflows/docker_pyafq.yml @@ -35,7 +35,7 @@ jobs: sh ./gpu_docker/docker-build.sh \ "${GITHUB_REF:10}" "nrdg" "11.4.3-devel-ubuntu20.04" "11" - - name: Login to GHCR + - name: Login to GHCR if: github.ref == 'refs/heads/master' || startsWith(github.event.ref, 'refs/tags') uses: docker/login-action@v1 with: diff --git a/.github/workflows/docker_pyafq_cuda12.yml b/.github/workflows/docker_pyafq_cuda12.yml index 339a6d337..6cbe4d2c0 100644 --- a/.github/workflows/docker_pyafq_cuda12.yml +++ b/.github/workflows/docker_pyafq_cuda12.yml @@ -25,9 +25,9 @@ jobs: sh ./gpu_docker/docker-build.sh \ "${GITHUB_REF:10}" "nrdg" "12.0.1-devel-ubuntu20.04" "12" - - name: Login to GHCR + - name: Login to GHCR if: github.ref == 'refs/heads/master' || startsWith(github.event.ref, 'refs/tags') - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: registry: ghcr.io username: nrdg diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 875a0846d..9fc863455 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,6 +2,10 @@ name: Test suite on: [push, pull_request] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build: From ef68765bc39c17fbae4ee0eb6af5aa4c3da7a919 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Fri, 4 Oct 2024 15:32:34 -0700 Subject: [PATCH 26/30] Only upload the docs in one of the Python versions. --- .github/workflows/docbuild.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docbuild.yml b/.github/workflows/docbuild.yml index d001ece05..529120adf 100644 --- a/.github/workflows/docbuild.yml +++ b/.github/workflows/docbuild.yml @@ -37,6 +37,7 @@ jobs: cd docs make html - name: Upload docs + if: matrix.python-version == '3.11' uses: actions/upload-artifact@v4 with: name: docs From 24aa1289c2249b037f2a3030c3b452186551c991 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Thu, 23 May 2024 13:24:36 -0700 Subject: [PATCH 27/30] Test against the numpy 2.0 release candidate. --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 40a7a56d1..0b95bf121 100644 --- a/setup.cfg +++ b/setup.cfg @@ -52,7 +52,7 @@ install_requires = imageio>=2.0.0 Pillow matplotlib - numpy==1.23.5 + numpy==2.0.0rc2 altair zip_safe = False From 0da53a6cf21aad93fa9452bb4f6b72d81222ba5b Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Fri, 4 Oct 2024 17:20:10 -0700 Subject: [PATCH 28/30] Bump to numpy 2.1.0. --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 0b95bf121..135fee967 100644 --- a/setup.cfg +++ b/setup.cfg @@ -52,7 +52,7 @@ install_requires = imageio>=2.0.0 Pillow matplotlib - numpy==2.0.0rc2 + numpy==2.1.0 altair zip_safe = False From 82e4d17a9ff5de4ea99c30f1033ca58ab956caf5 Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Fri, 4 Oct 2024 17:33:00 -0700 Subject: [PATCH 29/30] Use newer versions of Python everywhere. --- .github/workflows/nightly_anisotropic_test.yml | 2 +- .github/workflows/nightly_basic_test.yml | 2 +- .github/workflows/nightly_custom_test.yml | 2 +- .github/workflows/nightly_pft_test.yml | 2 +- .github/workflows/nightly_reco80_test.yml | 2 +- .github/workflows/nightly_reco_test.yml | 2 +- .github/workflows/nightly_test.yml | 2 +- .github/workflows/test.yml | 2 +- setup.cfg | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/nightly_anisotropic_test.yml b/.github/workflows/nightly_anisotropic_test.yml index be111546b..1512eaca5 100644 --- a/.github/workflows/nightly_anisotropic_test.yml +++ b/.github/workflows/nightly_anisotropic_test.yml @@ -11,7 +11,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] steps: - name: Checkout repo diff --git a/.github/workflows/nightly_basic_test.yml b/.github/workflows/nightly_basic_test.yml index 809122ae7..beb60e0c9 100644 --- a/.github/workflows/nightly_basic_test.yml +++ b/.github/workflows/nightly_basic_test.yml @@ -11,7 +11,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] steps: - name: Checkout repo diff --git a/.github/workflows/nightly_custom_test.yml b/.github/workflows/nightly_custom_test.yml index bc48aee9a..d500689e6 100644 --- a/.github/workflows/nightly_custom_test.yml +++ b/.github/workflows/nightly_custom_test.yml @@ -11,7 +11,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] steps: - name: Checkout repo diff --git a/.github/workflows/nightly_pft_test.yml b/.github/workflows/nightly_pft_test.yml index 11ed28d16..61bb52563 100644 --- a/.github/workflows/nightly_pft_test.yml +++ b/.github/workflows/nightly_pft_test.yml @@ -11,7 +11,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] steps: - name: Checkout repo diff --git a/.github/workflows/nightly_reco80_test.yml b/.github/workflows/nightly_reco80_test.yml index f054768d2..e768359c3 100644 --- a/.github/workflows/nightly_reco80_test.yml +++ b/.github/workflows/nightly_reco80_test.yml @@ -11,7 +11,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] steps: - name: Checkout repo diff --git a/.github/workflows/nightly_reco_test.yml b/.github/workflows/nightly_reco_test.yml index b9d00da89..1332db9a4 100644 --- a/.github/workflows/nightly_reco_test.yml +++ b/.github/workflows/nightly_reco_test.yml @@ -11,7 +11,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] steps: - name: Checkout repo diff --git a/.github/workflows/nightly_test.yml b/.github/workflows/nightly_test.yml index 9ed7d77be..49a93dc27 100644 --- a/.github/workflows/nightly_test.yml +++ b/.github/workflows/nightly_test.yml @@ -11,7 +11,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] steps: - name: Checkout repo diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9fc863455..add10a2bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: ["3.9", "3.10", "3.11"] + python-version: ["3.10", "3.11"] nibabel-pre: [true, false] steps: diff --git a/setup.cfg b/setup.cfg index 135fee967..908c85087 100644 --- a/setup.cfg +++ b/setup.cfg @@ -24,7 +24,7 @@ platforms = OS Independent [options] setup_requires = setuptools_scm -python_requires = >=3.8 +python_requires = >=3.10 install_requires = # core packages scikit_image>=0.14.2 From 9e023992e7c1dcfa854cb46515cd05a2fb47411d Mon Sep 17 00:00:00 2001 From: Ariel Rokem Date: Fri, 4 Oct 2024 17:42:05 -0700 Subject: [PATCH 30/30] Upgrade DIPY to a version that works with numpy 2. --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 908c85087..3a3bfb55f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,7 +28,7 @@ python_requires = >=3.10 install_requires = # core packages scikit_image>=0.14.2 - dipy>=1.8.0,<1.9.0 + dipy>=1.9.0 pandas pybids>=0.16.2 templateflow>=0.8