From c99bf0451ec9f6a699c28a5710c5acd8bc8aebee Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 15:44:33 +0200 Subject: [PATCH 01/16] add a changelog file --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..2f0febb1f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,20 @@ +.. _changes: + +Ongoing development +=================== + +New features +------------ + + +Changes +------- + + +Bug fixes +--------- + + +Maintenance +----------- + From a38ff5c8e4ba5d1cc83a8938591874f329a985ec Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 16:10:57 +0200 Subject: [PATCH 02/16] add file for contributors --- CONTRIBUTOR.rst | 0 doc_conf/whats_news/CONTRIBUTORS.rst | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 CONTRIBUTOR.rst create mode 100644 doc_conf/whats_news/CONTRIBUTORS.rst diff --git a/CONTRIBUTOR.rst b/CONTRIBUTOR.rst new file mode 100644 index 000000000..e69de29bb diff --git a/doc_conf/whats_news/CONTRIBUTORS.rst b/doc_conf/whats_news/CONTRIBUTORS.rst new file mode 100644 index 000000000..e69de29bb From 02ba278d0235a019c8a879fbabd3afd19e6e9aca Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 16:11:48 +0200 Subject: [PATCH 03/16] add changelogtemplate --- CHANGELOG.md | 11 +++++++++-- build_tools/template/CHANGELOG.rst | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 build_tools/template/CHANGELOG.rst diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f0febb1f..1b3a2f6e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ .. _changes: -Ongoing development -=================== +================================= +Version 1.1 (under devellopement) +================================= + +HIGHLIGHTS +---------- + New features ------------ @@ -18,3 +23,5 @@ Bug fixes Maintenance ----------- +Contributors +------------ diff --git a/build_tools/template/CHANGELOG.rst b/build_tools/template/CHANGELOG.rst new file mode 100644 index 000000000..3c23d3786 --- /dev/null +++ b/build_tools/template/CHANGELOG.rst @@ -0,0 +1,27 @@ +.. _changes: + +================================= +Version X.Y.Z (under devellopement) +================================= + +HIGHLIGHTS +---------- + + +New features +------------ + + +Changes +------- + + +Bug fixes +--------- + + +Maintenance +----------- + +Contributors +------------ \ No newline at end of file From 744a592a69e3f3611dfa7fad88e635d0250307e9 Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 16:12:20 +0200 Subject: [PATCH 04/16] a what is new for listing the change --- doc_conf/whats_news/whats_new.rst | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc_conf/whats_news/whats_new.rst diff --git a/doc_conf/whats_news/whats_new.rst b/doc_conf/whats_news/whats_new.rst new file mode 100644 index 000000000..44e23b17f --- /dev/null +++ b/doc_conf/whats_news/whats_new.rst @@ -0,0 +1,8 @@ +.. _whats_new: + +========== +What's new +========== + +.. _v1.0.0: +.. include:: _v1.0.0.rst \ No newline at end of file From a16d339c33aa6365e28ab1398e79977601cbafb0 Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 16:12:58 +0200 Subject: [PATCH 05/16] update pyproject --- pyproject.toml | 66 ++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e37629ea4..c1dcd2852 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,36 +1,49 @@ [build-system] -requires = ["hatchling", "hatch-vcs"] -build-backend = "hatchling.build" +requires = [ + "setuptools >= 64, < 100", # builer for python packages + "setuptools_scm[toml] >= 8, < 50" # pluging for getting the version from github + ] +build-backend = "setuptools.build_meta" [project] name = "HiDimStat" -# Version from setuptools_scm -dynamic = ["version"] -dependencies = [ - "joblib >= 1.2.0, < 2", - "numpy >= 1.25, < 3", - "pandas >= 2.0, < 3", - "scikit-learn >= 1.4, < 2", - "scipy >= 1.6, < 2", -] -requires-python = ">=3.9, < 4" -authors = [{ name = "HiDimStat developers" }] +dynamic = ["version"] # dynamical version extracted from the git version +authors = [ # TODO see if we need more details + { name = "HiDimStat developers" } # possibility to add an email address + ] maintainers = [ { name = "Bertrand Thirion", email = "bertrand.thirion@inria.fr" }, ] +# Don't forget to have the coherence between the README and the description description = "High-dimensional statistical inference tools for Python" +keywords = ["statistic", "high dimension", "importance variable"] readme = "README.md" +license = { file = "LICENSE" } classifiers = [ "Intended Audience :: Science/Research", "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Operating System :: MacOS", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3:: Only", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Software Development", "Topic :: Scientific/Engineering", ] -license = { file = "LICENSE" } +requires-python = ">=3.9, < 4" +dependencies = [ + "joblib >= 1.2.0, < 2", + "numpy >= 1.25, < 3", + "pandas >= 2.0, < 3", + "scikit-learn >= 1.4, < 2", + "scipy >= 1.6, < 2", +] [project.optional-dependencies] # Requirements necessary for building the documentation @@ -65,24 +78,19 @@ test = [ ] [project.urls] -Development = "https://github.com/nilearn/nilearn" -Homepage = "https://mind-inria.github.io/hidimstat" Repository = "https://github.com/mind-inria/hidimstat" +Documentation = "https://github.com/hidimstat/hidimstat.github.io" +Teams = "https://team.inria.fr/mind/" +Issues = "https://github.com/mind-inria/hidimstat/issues" +Discussion = "https://github.com/mind-inria/hidimstat/discussions" # TODO see if we keep it or not +# Configuration of the builder +[tool.setuptools] +package-dir = {"" = "src"} # define the root of the packages as src -[tool.hatch.build.hooks.vcs] -version-file = "src/hidimstat/_version.py" - -[tool.hatch.build.targets.wheel] -packages = ["src/hidimstat"] - -[tool.setuptools.packages.find] -where = ["src"] - - -[tool.hatch.version] -source = "vcs" +# file where the version is save +[tool.setuptools_scm] +version_file = "src/hidimstat/_version.py" -#pyproject.toml [tool.pytest.ini_options] testpaths = "tests" From 94839887acf7d96367cabc6051f60a6068c89554 Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 16:24:41 +0200 Subject: [PATCH 06/16] add a swithcer of version --- doc_conf/conf.py | 6 ++++++ doc_conf/version.json | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 doc_conf/version.json diff --git a/doc_conf/conf.py b/doc_conf/conf.py index 77bdb8926..6d284a335 100644 --- a/doc_conf/conf.py +++ b/doc_conf/conf.py @@ -79,6 +79,12 @@ ], "navbar_end": ["version-switcher", "theme-switcher", "navbar-icon-links"], "header_links_before_dropdown": 4, + "switcher": { + "json_url": ( + "https://raw.githubusercontent.com/mind_inria/hidimstat/main/doc_conf/version.json" + ), + "version_match": release, + }, } html_title = "HiDimStat" html_context = { diff --git a/doc_conf/version.json b/doc_conf/version.json new file mode 100644 index 000000000..d11343243 --- /dev/null +++ b/doc_conf/version.json @@ -0,0 +1,18 @@ +[ + { + "name": "1.1.dev0 (dev)", + "version": "1.1.dev0", + "url": "https://hidimstat.github.io/dev/" + }, + { + "name": "1.0.0 (stable)", + "version": "1.0.0", + "url": "https://hidimstat.github.io/stable/", + "preferred": true + }, + { + "name": "1.0.0 (stable)", + "version": "1.0.0", + "url": "https://hidimstat.github.io/1.0.0/" + } +] \ No newline at end of file From 9880a03059cebc8f8568189ef54c09868a2fd590 Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 18:16:57 +0200 Subject: [PATCH 07/16] include lastest modification --- doc_conf/whats_news/latest.rst | 1 + doc_conf/whats_news/whats_new.rst | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 120000 doc_conf/whats_news/latest.rst diff --git a/doc_conf/whats_news/latest.rst b/doc_conf/whats_news/latest.rst new file mode 120000 index 000000000..e03087ef6 --- /dev/null +++ b/doc_conf/whats_news/latest.rst @@ -0,0 +1 @@ +v1.0.0.rst \ No newline at end of file diff --git a/doc_conf/whats_news/whats_new.rst b/doc_conf/whats_news/whats_new.rst index 44e23b17f..a5a5020dd 100644 --- a/doc_conf/whats_news/whats_new.rst +++ b/doc_conf/whats_news/whats_new.rst @@ -4,5 +4,17 @@ What's new ========== +==================== +Lastest modification +==================== + +.. _lastest: +.. include:: _lastest.rst + + +======================= +History of modification +======================= + .. _v1.0.0: .. include:: _v1.0.0.rst \ No newline at end of file From f48735426188a6108fe6de123856a56aaa183d1e Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 18:19:06 +0200 Subject: [PATCH 08/16] fix a bug --- doc_conf/whats_news/whats_new.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc_conf/whats_news/whats_new.rst b/doc_conf/whats_news/whats_new.rst index a5a5020dd..bea4655c0 100644 --- a/doc_conf/whats_news/whats_new.rst +++ b/doc_conf/whats_news/whats_new.rst @@ -9,7 +9,7 @@ Lastest modification ==================== .. _lastest: -.. include:: _lastest.rst +.. include:: lastest.rst ======================= @@ -17,4 +17,4 @@ History of modification ======================= .. _v1.0.0: -.. include:: _v1.0.0.rst \ No newline at end of file +.. include:: v1.0.0.rst \ No newline at end of file From 34c4ec75b958cdc49f4e5b9d94a74724db18ada6 Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 28 Apr 2025 18:25:00 +0200 Subject: [PATCH 09/16] documenation on how to make a release --- build_tools/How_to_release.md | 156 ++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 build_tools/How_to_release.md diff --git a/build_tools/How_to_release.md b/build_tools/How_to_release.md new file mode 100644 index 000000000..b9842b2a7 --- /dev/null +++ b/build_tools/How_to_release.md @@ -0,0 +1,156 @@ +--- +title: hidimstat-release + +--- +# How to create a release + +The simplest way to make a release can be find in this `tutorial ` + +The creation of the release is based on a builder. +We use `setuptools` has builder. Ths follownig links, we helps to configure it: +https://learn.scientific-python.org/development/guides/packaging-simple/ +https://setuptools.pypa.io/en/latest/userguide/quickstart.html +https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html + +The version of the packages is defined dynamically based on the git tag using setuptools_scm. +For more details about it, look at this pages: +https://setuptools-scm.readthedocs.io/en/stable/usage/#builtin-mechanisms-for-obtaining-version-numbers + +The format of version tag is X.Y.Z: + - X represents a major revision (frequency: more than 1 year): + - Important modification of the API + - Refactoring of the major part of the code + - Y represents major release (frequency: 6 month to 1 year): + - Add new functionnality (methods, functionnalities, ...) + - Important modification of one function + - Z represents minor release (minimum: 1 days): + - Fix important bugs in a release + - Small modification of the example + - Adding new examples + +## Step for creating the Release: +This steps suppose that there a branch for each a major release (0.0.X). +The main branch is used for the ongoing work on the next major release. +For a major revision, a new branch should be create from scratch or from a commit of main. +For a modification of a previous release, the modification should be pushed on the branch associate to it. + # TODO difficulty for fixing error in multiple release + # TODO for each fix of a bug require a release in order to have the documentation in coherence with the release + +0. [Check if today is a good day for releasing](https://shouldideploy.today/) + +1\. Update the information related to the release: + - Update `CHANGELOG.rst` with the missing elements + - Update `CONTRIBUTORS.rst` with the missing contributors + +2\. Update the docstring of function based on CHANGELOG with ``deprecated``, ``versionchanged`` and ``versionadded`` directives. +Add ` .. versionadded:: x.y.z` in the docstring. +Additionally, make sure all deprecations that are supposed to be removed with this new version have been addressed. + +2\. Create create a tag and branches associate with the release. + + 1. git commit --allow-empty-message -m 'release X.Y.Z' + - **minor release of the ongoing release**: + 1. Create a branch `git checkout -b release-X.Y.(Z+1)` + 2. Add a tag on the last commit with the name of the release `git tag X.Y.(Z+1)` + - **major release**: + 1. A create a branch like `git checkout -b X.(Y+1).0` on the last commit of main + 2. (optional) `git rebase -i X.Y.Z` if you want to cherry pick some commits + 3. Add a tag to this branch with `git tag X.(Y+1).0` + - **major revision**: + 1. `git reset --hard (X+1).0.0` # Change main to major revion branch (with a force push) + 2. `git push -f mind-inria/main` # force to update main (disable the rule Prevent Branch deletion) + 3. `git checkout (X+1).0.0` # swtich to the branch + 4. Add a tag on this version `(X+1).0.0` (the branch should be already create) `git tag (X+1).0.0` + +3\. build the wheel & test it + - `cd $(root of repositor)` + - `rm -r release_file` # remove the previous build + - `mkdir release_file` + - `git pull` # update your repository + - `git checkout X.Y.Z` # checkout to the tag + - `python -m venv release_file/venv` # create virtual environment for testing the release + - `source release_file/venv/bin/activate` # activate this new venvironement + - `pip install build twines` # install packages for create a wheel and push it on pype + - `python -m build -o release_file/dist` (may need `pip install build`) # build the wheel + - `twine check release_file/_dist/*` (may need `pip install twine`) # check if the wheel is ready to be use + - `pip install release_file/dist/hidimstat.....whl` # install the wheel in a fresh virtualenv + - `pytest` # test the installation + +4\. Create a PR for creating the release: + 1. `git push --set-upstream origin X.Y.Z` + 2. Create a PR based on this new branch to the **right branch**. + +Merging this PR will update the documentation automatically + +5a. If you are on main => Update the changelog, contributor and version: + - Move the `CHANGELOG.rst` in the `doc_conf\whats_news\vX.Y.Z.rst` + `mv CHANGELOG.rst doc_conf\whats_news\vX.Y.Z.rst` + - Update symlink to lastest version of the changelog: `ln -s vX.Y.Z.rst latest.rst` + - Replace `CHANGELOG.rst` with an empty template of `build_tools\template\CHANGELOG.rst` + `cp build_tools\template\CHANGELOG.rst CHANGELOG.rst` + - Change the version in this template and commit the modification + - Create a new entry in `doc_conf\whats_news\whats_news.rst` + - Update the file `CONTRIBUTORS.rst` in the documentation + `cp CONTRIBUTORS.rst doc_conf\whats_news\CONTRIBUTORS.rst` + - Add/Update the documentation with the new version. For doing it's require to update `doc_conf/version.json` which define all the version of the project.\ + The 2 first elements indicate the devellopement version and the last stable version. + - Update symlink to stable version in the github branches repo: https://github.com/hidimstat/hidimstat.github.io + + +5b. For minor release => Update the changelog, contributor: + - Modify the `build_tools\template\CHANGELOG.rst` with the modification + - Update `CONTRIBUTORS.rst` if it's necesarry + - + +6\. Commit and push modification: + - Commit the modifications + - Push the modification + +7\. merge the PR on `0.4.X` (don't squash the commits) + - check if the tests are passed and the redering of the documentation, the examples, the changelog are good + - merge the PR **without squashing commit**: + no squash see warning in https://scikit-learn.org/dev/developers/maintainer.html#reference-steps \ + *NOTE*: in normal times only squash&merge is enabled because that's what we want for the main branch and we don't want to rebase or merge without squashing my mistake. there seems to be no way to configure this per branch ATM on github. so when we do a release we temporarily enable rebase. go to repository settings -> general -> pull requests, enable rebase, then merge the PR on 0.4.X (with the rebase option), then in the settings disable it again +- now we build the wheel we will upload to pypi locally `git fetch upstream` and `git checkout upstream/0.4.X` + +7\. Rebuild the wheel & retest it (see step [3]) + +8\. (Optional) upload to TestPyPi for testing (https://test.pypi.org/) + - `twine upload --repository testpypi release_file/dist/*` + - `python3 -m pip install --upgrade --force-reinstall ---index-url https://test.pypi.org/simple/ --no-deps --extra-index-url https://test.pypi.org/simple/hidismtat` + - `pytest` # test the installation + +9\. upload to pype + - `twine upload release_file/dist/*` + - (Optional) `python3 -m pip install --upgrade --force-reinstall --no-deps hidismtat==X.Y.Z` + - (Optional) `pytest` # test the installation + +10\. Update the tag + - Update the tag: `git tag -d X.Y.0` + - `git tag -s 'X.Y.Z'` # `-s` is for signing, optional + - `git push upstream X.Y.Z` # (disable the rule Prevent Branch deletion) + +11\. Create a release on github from a specific tag: + - See the following tutorial: https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#about-release-management + At this point, we need to upload the binaries to GitHub and link them to the tag. + To do so, go to the :nilearn-gh:`Hidimstat GitHub page ` under the "Releases" tab, and edit the ``x.y.z`` tag by providing a description, and upload the distributions we just created (you can just drag and drop the files). + +12\. Update the conda-forge recipe + - in `hidimstat-feedstock` https://github.com/conda-forge/hidimstat-feedstock + - create branch `release-X.Y.Z` + - update `recipe/meta.yml` + - that is the only file we ever edit manually in that repo + - update version number + - update sha256 + - if needed reset build number to 0 + - if needed update the requirements (easiest way to check is in hidimstat `git checkout 0.4.2` `git diff 0.4.1 -- pyproject.toml`) + - open a PR to `upstream/hidimstat-feedstock` main branch + - use checklist that will be posted in PR + - in particular it asks to post a comment asking a bot to re-render the + recipe, make sure to wait until that has finished + - then merge the PR. it can take around an hour (maybe more?) for the + package to be available from the conda-forge channel + - when it becomes available, install in a fresh env & test + - NOTE: to add new maintainers to that repo add them to the list at the end of meta.yml + +13\. Once everything is doen take a break by announced the release on social network channels. From a12fb4754fea8d74c80d141c58cb45b4703f30bc Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 19 May 2025 15:34:12 +0200 Subject: [PATCH 10/16] move build packages Need to be check f this script is still usefull --- build_tools/How_to_release.md | 1 + build_package.sh => build_tools/release/build_package.sh | 0 2 files changed, 1 insertion(+) rename build_package.sh => build_tools/release/build_package.sh (100%) diff --git a/build_tools/How_to_release.md b/build_tools/How_to_release.md index b9842b2a7..10331868d 100644 --- a/build_tools/How_to_release.md +++ b/build_tools/How_to_release.md @@ -35,6 +35,7 @@ For a major revision, a new branch should be create from scratch or from a commi For a modification of a previous release, the modification should be pushed on the branch associate to it. # TODO difficulty for fixing error in multiple release # TODO for each fix of a bug require a release in order to have the documentation in coherence with the release + # TODO check to use the script release/build_packages.py 0. [Check if today is a good day for releasing](https://shouldideploy.today/) diff --git a/build_package.sh b/build_tools/release/build_package.sh similarity index 100% rename from build_package.sh rename to build_tools/release/build_package.sh From e2a79c45abc82a881dff43123c7ca9aecc3e9628 Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 20 Oct 2025 17:25:37 +0200 Subject: [PATCH 11/16] move file --- CHANGELOG.md => CHANGELOG.rst | 0 docs/{tools => src}/whats_news/CONTRIBUTORS.rst | 0 docs/{tools => src}/whats_news/latest.rst | 0 docs/{tools => src}/whats_news/whats_new.rst | 0 {build_tools/template => docs/tools/_templates}/CHANGELOG.rst | 0 {build_tools => tools/release}/How_to_release.md | 0 {build_tools => tools}/release/build_package.sh | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename CHANGELOG.md => CHANGELOG.rst (100%) rename docs/{tools => src}/whats_news/CONTRIBUTORS.rst (100%) rename docs/{tools => src}/whats_news/latest.rst (100%) rename docs/{tools => src}/whats_news/whats_new.rst (100%) rename {build_tools/template => docs/tools/_templates}/CHANGELOG.rst (100%) rename {build_tools => tools/release}/How_to_release.md (100%) rename {build_tools => tools}/release/build_package.sh (100%) diff --git a/CHANGELOG.md b/CHANGELOG.rst similarity index 100% rename from CHANGELOG.md rename to CHANGELOG.rst diff --git a/docs/tools/whats_news/CONTRIBUTORS.rst b/docs/src/whats_news/CONTRIBUTORS.rst similarity index 100% rename from docs/tools/whats_news/CONTRIBUTORS.rst rename to docs/src/whats_news/CONTRIBUTORS.rst diff --git a/docs/tools/whats_news/latest.rst b/docs/src/whats_news/latest.rst similarity index 100% rename from docs/tools/whats_news/latest.rst rename to docs/src/whats_news/latest.rst diff --git a/docs/tools/whats_news/whats_new.rst b/docs/src/whats_news/whats_new.rst similarity index 100% rename from docs/tools/whats_news/whats_new.rst rename to docs/src/whats_news/whats_new.rst diff --git a/build_tools/template/CHANGELOG.rst b/docs/tools/_templates/CHANGELOG.rst similarity index 100% rename from build_tools/template/CHANGELOG.rst rename to docs/tools/_templates/CHANGELOG.rst diff --git a/build_tools/How_to_release.md b/tools/release/How_to_release.md similarity index 100% rename from build_tools/How_to_release.md rename to tools/release/How_to_release.md diff --git a/build_tools/release/build_package.sh b/tools/release/build_package.sh similarity index 100% rename from build_tools/release/build_package.sh rename to tools/release/build_package.sh From 8d5f9a07bc23e356a4482d5ff9782fb3674c4d1c Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Mon, 20 Oct 2025 18:46:17 +0200 Subject: [PATCH 12/16] add contributors --- CONTRIBUTOR.rst | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CONTRIBUTOR.rst b/CONTRIBUTOR.rst index e69de29bb..4fe42b4f4 100644 --- a/CONTRIBUTOR.rst +++ b/CONTRIBUTOR.rst @@ -0,0 +1,28 @@ +Version 0.1.0 (see https://github.com/ja-che/hidimstat) +https://github.com/ja-che +https://github.com/tbng +https://github.com/agramfort +https://github.com/GuillaumeFavelier + +Version 0.1.1 (see https://github.com/Parietal-INRIA/hidimstat) +https://github.com/tbng +https://github.com/bthirion +https://github.com/achamma723 + +Version 0.2.0 +https://github.com/tbng +https://github.com/bthirion +https://github.com/achamma723 + +Version 1.0.0 +https://github.com/bthirion +https://github.com/AngelReyero +https://github.com/jpaillard +https://github.com/lionelkusch +https://github.com/tbng +https://github.com/Remi-Gau +https://github.com/jeromedockes +https://github.com/glemaitre +https://github.com/antoinebaker +https://github.com/man-shu +https://github.com/alexblnn \ No newline at end of file From 0ef59c77088f73dbc93f5393c5bcbedaebe8a814 Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Fri, 24 Oct 2025 16:31:22 +0200 Subject: [PATCH 13/16] update version --- docs/tools/version.json | 25 ++++++++++++++++++++----- tools/release/How_to_release.md | 4 +--- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/docs/tools/version.json b/docs/tools/version.json index d11343243..4014f6fdd 100644 --- a/docs/tools/version.json +++ b/docs/tools/version.json @@ -5,14 +5,29 @@ "url": "https://hidimstat.github.io/dev/" }, { - "name": "1.0.0 (stable)", - "version": "1.0.0", + "name": "1.0 (stable)", + "version": "1.0", "url": "https://hidimstat.github.io/stable/", "preferred": true }, { - "name": "1.0.0 (stable)", - "version": "1.0.0", - "url": "https://hidimstat.github.io/1.0.0/" + "name": "1.0 (stable)", + "version": "1.0", + "url": "https://hidimstat.github.io/1.0/" + }, + { + "name": "0.2.0", + "version": "0.2.0", + "url": "https://hidimstat.github.io/0.2/" + }, + { + "name": "0.1.1", + "version": "0.1.1", + "url": "https://hidimstat.github.io/0.1.1/" + }, + { + "name": "0.1.0", + "version": "0.1.0", + "url": "https://hidimstat.github.io/0.1.0/" } ] \ No newline at end of file diff --git a/tools/release/How_to_release.md b/tools/release/How_to_release.md index 10331868d..dbe664537 100644 --- a/tools/release/How_to_release.md +++ b/tools/release/How_to_release.md @@ -33,9 +33,7 @@ This steps suppose that there a branch for each a major release (0.0.X). The main branch is used for the ongoing work on the next major release. For a major revision, a new branch should be create from scratch or from a commit of main. For a modification of a previous release, the modification should be pushed on the branch associate to it. - # TODO difficulty for fixing error in multiple release - # TODO for each fix of a bug require a release in order to have the documentation in coherence with the release - # TODO check to use the script release/build_packages.py + # TODO check if it's necesary to have a script release/build_packages.py 0. [Check if today is a good day for releasing](https://shouldideploy.today/) From ffe35249dff89b07c17e21f5f68fd25d83df797b Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Fri, 24 Oct 2025 16:40:14 +0200 Subject: [PATCH 14/16] Fix codespell --- docs/src/whats_news/whats_new.rst | 6 +++--- pyproject.toml | 4 ++-- tools/release/How_to_release.md | 16 ++++++++-------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/src/whats_news/whats_new.rst b/docs/src/whats_news/whats_new.rst index bea4655c0..7f0635d18 100644 --- a/docs/src/whats_news/whats_new.rst +++ b/docs/src/whats_news/whats_new.rst @@ -5,11 +5,11 @@ What's new ========== ==================== -Lastest modification +Latest modification ==================== -.. _lastest: -.. include:: lastest.rst +.. _latest: +.. include:: latest.rst ======================= diff --git a/pyproject.toml b/pyproject.toml index 218246470..06638af50 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [build-system] requires = [ - "setuptools >= 64, < 100", # builer for python packages - "setuptools_scm[toml] >= 8, < 50" # pluging for getting the version from github + "setuptools >= 64, < 100", # builder for python packages + "setuptools_scm[toml] >= 8, < 50" # plugging for getting the version from github ] build-backend = "setuptools.build_meta" diff --git a/tools/release/How_to_release.md b/tools/release/How_to_release.md index dbe664537..b97c7eb5d 100644 --- a/tools/release/How_to_release.md +++ b/tools/release/How_to_release.md @@ -7,7 +7,7 @@ title: hidimstat-release The simplest way to make a release can be find in this `tutorial ` The creation of the release is based on a builder. -We use `setuptools` has builder. Ths follownig links, we helps to configure it: +We use `setuptools` has builder. This following links, we helps to configure it: https://learn.scientific-python.org/development/guides/packaging-simple/ https://setuptools.pypa.io/en/latest/userguide/quickstart.html https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html @@ -21,7 +21,7 @@ The format of version tag is X.Y.Z: - Important modification of the API - Refactoring of the major part of the code - Y represents major release (frequency: 6 month to 1 year): - - Add new functionnality (methods, functionnalities, ...) + - Add new functionality (methods, functionalities, ...) - Important modification of one function - Z represents minor release (minimum: 1 days): - Fix important bugs in a release @@ -33,7 +33,7 @@ This steps suppose that there a branch for each a major release (0.0.X). The main branch is used for the ongoing work on the next major release. For a major revision, a new branch should be create from scratch or from a commit of main. For a modification of a previous release, the modification should be pushed on the branch associate to it. - # TODO check if it's necesary to have a script release/build_packages.py + # TODO check if it's necessary to have a script release/build_packages.py 0. [Check if today is a good day for releasing](https://shouldideploy.today/) @@ -58,11 +58,11 @@ Additionally, make sure all deprecations that are supposed to be removed with th - **major revision**: 1. `git reset --hard (X+1).0.0` # Change main to major revion branch (with a force push) 2. `git push -f mind-inria/main` # force to update main (disable the rule Prevent Branch deletion) - 3. `git checkout (X+1).0.0` # swtich to the branch + 3. `git checkout (X+1).0.0` # switch to the branch 4. Add a tag on this version `(X+1).0.0` (the branch should be already create) `git tag (X+1).0.0` 3\. build the wheel & test it - - `cd $(root of repositor)` + - `cd $(root of repository)` - `rm -r release_file` # remove the previous build - `mkdir release_file` - `git pull` # update your repository @@ -84,7 +84,7 @@ Merging this PR will update the documentation automatically 5a. If you are on main => Update the changelog, contributor and version: - Move the `CHANGELOG.rst` in the `doc_conf\whats_news\vX.Y.Z.rst` `mv CHANGELOG.rst doc_conf\whats_news\vX.Y.Z.rst` - - Update symlink to lastest version of the changelog: `ln -s vX.Y.Z.rst latest.rst` + - Update symlink to latest version of the changelog: `ln -s vX.Y.Z.rst latest.rst` - Replace `CHANGELOG.rst` with an empty template of `build_tools\template\CHANGELOG.rst` `cp build_tools\template\CHANGELOG.rst CHANGELOG.rst` - Change the version in this template and commit the modification @@ -98,7 +98,7 @@ Merging this PR will update the documentation automatically 5b. For minor release => Update the changelog, contributor: - Modify the `build_tools\template\CHANGELOG.rst` with the modification - - Update `CONTRIBUTORS.rst` if it's necesarry + - Update `CONTRIBUTORS.rst` if it's necessary - 6\. Commit and push modification: @@ -152,4 +152,4 @@ Merging this PR will update the documentation automatically - when it becomes available, install in a fresh env & test - NOTE: to add new maintainers to that repo add them to the list at the end of meta.yml -13\. Once everything is doen take a break by announced the release on social network channels. +13\. Once everything is done take a break by announced the release on social network channels. From 7ccbaf9ca26c818c43c496dabfef8b191d0b922d Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Fri, 24 Oct 2025 16:44:30 +0200 Subject: [PATCH 15/16] remove build from isort --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 06638af50..525319d6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,7 +101,7 @@ skip = "./.git,*.bib,./docs/_build" [tool.isort] profile = "black" -skip = ["src/hidimstat/_version.py", "docs/_build"] +skip = ["src/hidimstat/_version.py", "docs/_build", "build/"] # file where the version is save [tool.setuptools_scm] From ab76ff803bf897c8550e20e549c86c0cc1c9d7ec Mon Sep 17 00:00:00 2001 From: kusch lionel Date: Fri, 24 Oct 2025 18:45:56 +0200 Subject: [PATCH 16/16] fix docstring --- .gitignore | 2 ++ CHANGELOG.rst | 2 -- CONTRIBUTOR.rst | 6 +++++- docs/Makefile | 3 +++ docs/src/index.rst | 1 + docs/src/whats_news/CONTRIBUTORS.rst | 0 docs/src/whats_news/v1.0.0.rst | 3 +++ .../src/whats_news/{whats_new.rst => whats_news.rst} | 12 +++++++++++- docs/tools/_templates/CHANGELOG.rst | 2 -- docs/tools/conf.py | 2 ++ tools/documentation_developer/index.rst | 7 +++++++ 11 files changed, 34 insertions(+), 6 deletions(-) delete mode 100644 docs/src/whats_news/CONTRIBUTORS.rst create mode 100644 docs/src/whats_news/v1.0.0.rst rename docs/src/whats_news/{whats_new.rst => whats_news.rst} (65%) diff --git a/.gitignore b/.gitignore index 4ffab5fb4..779ff562a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ docs/_build/ docs/src/generated/ docs/src/sg_execution_times.rst tools/documentation_developer/CONTRIBUTING.rst +tools/documentation_developer/CONTRIBUTORS.rst +docs/src/whats_news/CHANGELOG.rst # file generated by hatch src/hidimstat/_version.py diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1b3a2f6e6..9e1e23b7e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,3 @@ -.. _changes: - ================================= Version 1.1 (under devellopement) ================================= diff --git a/CONTRIBUTOR.rst b/CONTRIBUTOR.rst index 4fe42b4f4..f59322fe5 100644 --- a/CONTRIBUTOR.rst +++ b/CONTRIBUTOR.rst @@ -1,20 +1,24 @@ Version 0.1.0 (see https://github.com/ja-che/hidimstat) +------------------------------------------------------- https://github.com/ja-che https://github.com/tbng https://github.com/agramfort https://github.com/GuillaumeFavelier Version 0.1.1 (see https://github.com/Parietal-INRIA/hidimstat) +--------------------------------------------------------------- https://github.com/tbng https://github.com/bthirion https://github.com/achamma723 Version 0.2.0 +------------- https://github.com/tbng https://github.com/bthirion https://github.com/achamma723 -Version 1.0.0 +Version 1.0.0 +------------- https://github.com/bthirion https://github.com/AngelReyero https://github.com/jpaillard diff --git a/docs/Makefile b/docs/Makefile index 630adc24c..74a83c5c4 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -62,6 +62,9 @@ clean: rm -rfv $(BUILDDIR)/* rm -rfv $(SOURCEDIR)/generated/* rm -rfv $(SOURCEDIR)/sg_execution_times.rst + rm -rfv $(SOURCEDIR)/whats_news/CHANGELOG.rst + rm -rfv $(SOURCEDIR)/dev/CONTRIBUTING.rst + rm -rfv $(SOURCEDIR)/dev/CONTRIBUTORS.rst html-noplot: $(SPHINXBUILD) -D plot_gallery=0 -b html $(ALLSPHINXOPTS) $(SOURCEDIR) $(BUILDDIR)/html diff --git a/docs/src/index.rst b/docs/src/index.rst index 315331aa6..64f97fb58 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -135,4 +135,5 @@ References user_guide generated/gallery/examples/index glossary_and_notations + whats_news/whats_news dev/index diff --git a/docs/src/whats_news/CONTRIBUTORS.rst b/docs/src/whats_news/CONTRIBUTORS.rst deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/src/whats_news/v1.0.0.rst b/docs/src/whats_news/v1.0.0.rst new file mode 100644 index 000000000..5e0ccdd87 --- /dev/null +++ b/docs/src/whats_news/v1.0.0.rst @@ -0,0 +1,3 @@ +============== +Version 1.0.0 +============== diff --git a/docs/src/whats_news/whats_new.rst b/docs/src/whats_news/whats_news.rst similarity index 65% rename from docs/src/whats_news/whats_new.rst rename to docs/src/whats_news/whats_news.rst index 7f0635d18..fd782e9b8 100644 --- a/docs/src/whats_news/whats_new.rst +++ b/docs/src/whats_news/whats_news.rst @@ -11,10 +11,20 @@ Latest modification .. _latest: .. include:: latest.rst +.. _changelog: +.. include:: CHANGELOG.rst + ======================= History of modification ======================= .. _v1.0.0: -.. include:: v1.0.0.rst \ No newline at end of file +.. include:: v1.0.0.rst + +.. toctree:: + :hidden: + :maxdepth: 1 + + v1.0.0 + latest \ No newline at end of file diff --git a/docs/tools/_templates/CHANGELOG.rst b/docs/tools/_templates/CHANGELOG.rst index 3c23d3786..4646eb0d8 100644 --- a/docs/tools/_templates/CHANGELOG.rst +++ b/docs/tools/_templates/CHANGELOG.rst @@ -1,5 +1,3 @@ -.. _changes: - ================================= Version X.Y.Z (under devellopement) ================================= diff --git a/docs/tools/conf.py b/docs/tools/conf.py index ff76f444c..1957fa27a 100644 --- a/docs/tools/conf.py +++ b/docs/tools/conf.py @@ -28,6 +28,8 @@ # We avoid duplicating the information, but we do not use symlinks to be # able to build the docs on Windows shutil.copyfile("../../CONTRIBUTING.rst", "../src/dev/CONTRIBUTING.rst") +shutil.copyfile("../../CONTRIBUTOR.rst", "../src/dev/CONTRIBUTORS.rst") +shutil.copyfile("../../CHANGELOG.rst", "../src/whats_news/CHANGELOG.rst") # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/tools/documentation_developer/index.rst b/tools/documentation_developer/index.rst index b035ceb55..9e31883e6 100644 --- a/tools/documentation_developer/index.rst +++ b/tools/documentation_developer/index.rst @@ -13,6 +13,12 @@ You need more information, look here: - :ref:`Continuous Integration` - :ref:`Building the documentation` +============ +CONTRIBUTORS +============ +.. _latest: +.. include:: CONTRIBUTORS.rst + .. toctree:: :hidden: @@ -20,3 +26,4 @@ You need more information, look here: how_to_contribute building_documentation CI_documentation + CONTRIBUTORS