-
-
Notifications
You must be signed in to change notification settings - Fork 483
Update Tutorials and How-to contributing pages #2522
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+165
−199
Merged
Changes from 6 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
f69333f
pr tutorial improvements
OriolAbril 0ce72ae
add h5py as doc dependency
OriolAbril f7baca8
try dev arviz-plots as plot_pair fix
OriolAbril 8ab27ff
update doc building instruccions
OriolAbril bd7cfeb
Apply suggestions from code review
OriolAbril 4115b8a
go over the rest of how-to pages
OriolAbril 9de7d67
Merge branch 'main' into contributing-how-to
OriolAbril File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,71 +1,55 @@ | ||
| # How to make a new release | ||
|
|
||
| ArviZ uses the following process to cut a new release of the library. | ||
| ArviZ uses the following process to cut a new release of the ArviZverse packages. | ||
|
|
||
| 1. Bump the version number in `arviz/__init__.py` | ||
| 1. Bump the version number in `src/<arviz repo>/__init__.py` or `src/<arviz repo>/_version.py` | ||
|
|
||
| ```diff | ||
| - __version = "0.12.0" | ||
| + __version = "0.12.1" | ||
| - __version = "1.2.0" | ||
| + __version = "1.2.1" | ||
| ``` | ||
|
|
||
| 2. Update the release notes in `CHANGELOG.md`. Remove any subsections within the released version | ||
| without any items within them. | ||
| 2. Check versions in `pyproject.toml`. Arviz aims to follow the recommendations in [SPEC-0](https://scientific-python.org/specs/spec-0000/) from scientific python. | ||
|
|
||
| ```diff | ||
| - ## v0.x.x Unreleased | ||
| + ## v0.12.1 (2022 May 12) | ||
| ``` | ||
|
|
||
| Empty subheadings for the "unreleased" development version don't need to be included yet. | ||
|
|
||
| 3. Check versions in `requirements.txt` and `setup.py` files. Arviz aims to follow the recommendations in [SPEC-0](https://scientific-python.org/specs/spec-0000/) from scientific python. | ||
| 3. Open a Pull Request including these changes. Make sure all CI tests pass, adding commits if necessary. | ||
| Even if CI is passing on main, there might be new releases of dependencies that break CI. | ||
|
|
||
| 4. Open a Pull Request including these changes. Make sure all CI tests pass, adding commits if necessary. Even if CI is passing on main, there might be new releases of dependencies that break CI. | ||
| :::{important} | ||
| The documentation build should also complete successfully. If we publish a release from a commit | ||
| where the docs don't build we then have to choose between that version not showing in the | ||
| version switcher or publishing a patch release that fixes the doc build. | ||
| ::: | ||
|
|
||
| 5. Add a release in the Github [release page](https://github.com/arviz-devs/arviz/releases) once the PR is merged. | ||
| 4. Add a release in the Github [release page](https://github.com/arviz-devs/arviz/releases) once the PR is merged. | ||
|
|
||
| 6. After the release on Github, the CI system will complete the rest of the steps. Including making any wheels and uploading the new version to PyPI. | ||
| 5. After the release on Github, the CI system will complete the rest of the steps. Including making any wheels and uploading the new version to PyPI. | ||
| It will also add a PR to update the changelog. | ||
|
|
||
| 7. Add a follow-up PR changing the version string to include the dev flag. | ||
| 6. Add a follow-up PR changing the version string to include the dev flag. | ||
| Make sure the version string is [PEP 440](https://peps.python.org/pep-0440/#appendix-b-parsing-version-strings-with-regular-expressions) compliant. | ||
| For example, after releasing `v0.12.1` it should be set to `0.13.0.dev0`. | ||
|
|
||
| 8. Use the following template to add empty subheadings to the `CHANGELOG.md` file in the follow-up PR. | ||
|
|
||
| ```markdown | ||
| ## v0.x.x Unreleased | ||
|
|
||
| ### New features | ||
|
|
||
| ### Maintenance and fixes | ||
|
|
||
| ### Deprecation | ||
|
|
||
| ### Documentation | ||
| ``` | ||
|
|
||
| 9. If the versions were updated in step 3, update also the [conda forge recipe](https://github.com/conda-forge/arviz-feedstock). | ||
| 7. If the versions were updated in step 3, update also the [conda forge recipe](https://github.com/conda-forge/arviz-feedstock). | ||
|
|
||
| :::{important} | ||
| There is a bot that opens a PR automatically to update the conda forge recipe. | ||
| However, **all dependencies must be checked manually** to ensure the ones in | ||
| the recipe match those in the requirements | ||
| There is a second bot that also attempts to update dependecies automatically from `pyproject.toml`, | ||
| however, at the time of writing it is experimental, so we always need to double check dependencies. | ||
| ::: | ||
|
|
||
| 10. (here for reference but we really want to avoid it) If for some reason there were an issue | ||
| with a release, there are two tools to fix it in conda forge: | ||
| 8. (here for reference but we really want to avoid it) If for some reason there were an issue | ||
| with a release, there are two tools to fix it in conda forge: | ||
|
|
||
| * repodata patch: If there is a new release for one of the dependencies with breaking changes | ||
| for example, a repodata patch should be submitted to conda forge to prevent users | ||
| from installing a broken environment. | ||
| * repodata patch: If there is a new release for one of the dependencies with breaking changes | ||
| for example, a repodata patch should be submitted to conda forge to prevent users | ||
| from installing a broken environment. | ||
|
|
||
| Repodata patches are submitted to [conda-forge/conda-forge-repodata-patches-feedstock](https://github.com/conda-forge/conda-forge-repodata-patches-feedstock) | ||
| * mark a build as broken: If the dependencies were incorrect in the recipe, then the existing | ||
| build should be marked as broken and a PR (completely manual) should be submitted | ||
| to the arviz-feedstock to fix the recipe. Note that if this is being done for a release | ||
| different than the latest, changes should not be merged into `main` but on a dedicated | ||
| branch, the conda-forge package build is generated all the same but the history is kept | ||
| tidier and prevents issues when a new release is published. | ||
| Repodata patches are submitted to [conda-forge/conda-forge-repodata-patches-feedstock](https://github.com/conda-forge/conda-forge-repodata-patches-feedstock) | ||
| * mark a build as broken: If the dependencies were incorrect in the recipe, then the existing | ||
| build should be marked as broken and a PR (completely manual) should be submitted | ||
| to the arviz-feedstock to fix the recipe. Note that if this is being done for a release | ||
| different than the latest, changes should not be merged into `main` but on a dedicated | ||
| branch, the conda-forge package build is generated all the same but the history is kept | ||
| tidier and prevents issues when a new release is published. | ||
|
|
||
| Requests to mark packages as broken are submitted to [conda-forge/admin-requests](https://github.com/conda-forge/admin-requests/) | ||
| Requests to mark packages as broken are submitted to [conda-forge/admin-requests](https://github.com/conda-forge/admin-requests/) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about the recommendation to first create a virtual environment? Not sure if this is mandatory, but I've found it helpful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you mean to install
toxin a dedicated virtual environment? It is a python library but I see it partially as pixi or conda too. It will create the different virtualenvs for each task. It could be different projects using tox might need different tox versions to work but I am not sure how worth is keeping the advice given the current workflow.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but in this exact time I'm also realizing it may not be needed. I've been doing it because I've been following this to literally.
So, let's continue without the virtual environment creation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should have those be links to the updated contributing guide at some point
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree