Skip to content

Commit bb6fc9b

Browse files
authored
Merge pull request #3780 from pybamm-team/v24.1
Make release v24.1
2 parents 97ca773 + e29dcc0 commit bb6fc9b

File tree

332 files changed

+13050
-11600
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

332 files changed

+13050
-11600
lines changed

.all-contributorsrc

Lines changed: 86 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@
442442
"login": "wigging",
443443
"name": "Gavin Wiggins",
444444
"avatar_url": "https://avatars.githubusercontent.com/u/6828967?v=4",
445-
"profile": "https://wigging.me",
445+
"profile": "https://gavinw.me",
446446
"contributions": [
447447
"bug",
448448
"code"
@@ -708,6 +708,91 @@
708708
"contributions": [
709709
"infra"
710710
]
711+
},
712+
{
713+
"login": "Agnik7",
714+
"name": "Agnik Bakshi",
715+
"avatar_url": "https://avatars.githubusercontent.com/u/77234005?v=4",
716+
"profile": "https://github.com/Agnik7",
717+
"contributions": [
718+
"doc"
719+
]
720+
},
721+
{
722+
"login": "RuiheLi",
723+
"name": "RuiheLi",
724+
"avatar_url": "https://avatars.githubusercontent.com/u/84007676?v=4",
725+
"profile": "https://github.com/RuiheLi",
726+
"contributions": [
727+
"code",
728+
"test"
729+
]
730+
},
731+
{
732+
"login": "chmabaur",
733+
"name": "chmabaur",
734+
"avatar_url": "https://avatars.githubusercontent.com/u/127507466?v=4",
735+
"profile": "https://github.com/chmabaur",
736+
"contributions": [
737+
"bug",
738+
"code"
739+
]
740+
},
741+
{
742+
"login": "AbhishekChaudharii",
743+
"name": "Abhishek Chaudhari",
744+
"avatar_url": "https://avatars.githubusercontent.com/u/91185083?v=4",
745+
"profile": "https://github.com/AbhishekChaudharii",
746+
"contributions": [
747+
"doc",
748+
"code"
749+
]
750+
},
751+
{
752+
"login": "shubhambhar007",
753+
"name": "Shubham Bhardwaj",
754+
"avatar_url": "https://avatars.githubusercontent.com/u/32607282?v=4",
755+
"profile": "https://github.com/shubhambhar007",
756+
"contributions": [
757+
"infra"
758+
]
759+
},
760+
{
761+
"login": "jlauber18",
762+
"name": "Jonathan Lauber",
763+
"avatar_url": "https://avatars.githubusercontent.com/u/28939653?v=4",
764+
"profile": "https://github.com/jlauber18",
765+
"contributions": [
766+
"infra"
767+
]
768+
},
769+
{
770+
"login": "prady0t",
771+
"name": "Pradyot Ranjan",
772+
"avatar_url": "https://avatars.githubusercontent.com/u/99216956?v=4",
773+
"profile": "https://github.com/prady0t",
774+
"contributions": [
775+
"infra"
776+
]
777+
},
778+
{
779+
"login": "XuboGU",
780+
"name": "XuboGU",
781+
"avatar_url": "https://avatars.githubusercontent.com/u/53944452?v=4",
782+
"profile": "https://github.com/XuboGU",
783+
"contributions": [
784+
"code",
785+
"bug"
786+
]
787+
},
788+
{
789+
"login": "cringeyburger",
790+
"name": "Ankit Meda",
791+
"avatar_url": "https://avatars.githubusercontent.com/u/121183876?v=4",
792+
"profile": "https://github.com/cringeyburger",
793+
"contributions": [
794+
"code"
795+
]
711796
}
712797
],
713798
"contributorsPerLine": 7,

.coveragerc

Lines changed: 0 additions & 3 deletions
This file was deleted.

.git-blame-ignore-revs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,9 @@
44
a63e49ece0f9336d1f5c2562f7459e555c6e6693
55
# activated standard pre-commits - https://github.com/pybamm-team/PyBaMM/pull/3192
66
5273214b585c5a4286609aed40e0b092d0e05f42
7+
# migrated config to pyproject.toml - https://github.com/pybamm-team/PyBaMM/pull/3557
8+
12c5d77203bd93542785d237bac00bad5ed5469a
9+
# activated pyupgrade - https://github.com/pybamm-team/PyBaMM/pull/3579
10+
ff6d81c01331c7d269303b4a8321d9881bdf98fa
11+
# migrated to ruff-format - https://github.com/pybamm-team/PyBaMM/pull/3655
12+
60ebd4148059a95428a496f4f55c1175ead362d3

.github/dependabot.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,8 @@ updates:
55
directory: "/"
66
schedule:
77
interval: "weekly"
8+
# group updates in a single PR
9+
groups:
10+
actions:
11+
patterns:
12+
- "*"

.github/release_reminder.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Create {{ date | date('YY.MM') }} (final or rc0) release
3-
labels: priority:high
3+
labels: "priority: high"
44
---
55
Quarterly reminder to create a -
66

.github/release_workflow.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release workflow
22

3-
This file contains the workflow required to make a `PyBaMM` release on GitHub and PyPI by the maintainers.
3+
This file contains the workflow required to make a `PyBaMM` release on GitHub, PyPI, and conda-forge by the maintainers.
44

55
## rc0 releases (automated)
66

@@ -9,8 +9,8 @@ This file contains the workflow required to make a `PyBaMM` release on GitHub an
99
- `pybamm/version.py`
1010
- `docs/conf.py`
1111
- `CITATION.cff`
12+
- `pyproject.toml`
1213
- `vcpkg.json`
13-
- `docs/_static/versions.json`
1414
- `CHANGELOG.md`
1515

1616
These changes will be automatically pushed to a new branch `vYY.MM` and a PR from `vvYY.MM` to `develop` will be created (to sync the branches).
@@ -21,9 +21,9 @@ This file contains the workflow required to make a `PyBaMM` release on GitHub an
2121

2222
## rcX releases (manual)
2323

24-
If a new release candidate is required after the release of `rc0` -
24+
If a new release candidate is required after the release of `rc{X-1}` -
2525

26-
1. Fix a bug in `vYY.MM` (no new features should be added to `vYY.MM` once `rc0` is released) and `develop` individually.
26+
1. Cherry-pick the bug fix (no new features should be added to `vYY.MM` once `rc{X-1}` is released) commit to `vYY.MM` branch once the fix is merged into `develop`. The CHANGELOG entry for such fixes should go under the `rc{X-1}` heading in `CHANGELOG.md`
2727

2828
2. Run `update_version.yml` manually while using `append_to_tag` to specify the release candidate version number (`rc1`, `rc2`, ...).
2929

@@ -32,11 +32,11 @@ If a new release candidate is required after the release of `rc0` -
3232
- `pybamm/version.py`
3333
- `docs/conf.py`
3434
- `CITATION.cff`
35+
- `pyproject.toml`
3536
- `vcpkg.json`
36-
- `docs/_static/versions.json`
3737
- `CHANGELOG.md`
3838

39-
These changes will be automatically pushed to the existing `vYY.MM` branch and a PR from `vvYY.MM` to `develop` will be created (to sync the branches).
39+
These changes will be automatically pushed to the existing `vYY.MM` branch and a PR will be created to update version strings in `develop`.
4040

4141
4. Create a new GitHub _pre-release_ with the same tag (`vYY.MMrcX`) from the `vYY.MM` branch and a description copied from `CHANGELOG.md`.
4242

@@ -53,11 +53,11 @@ Once satisfied with the release candidates -
5353
- `pybamm/version.py`
5454
- `docs/conf.py`
5555
- `CITATION.cff`
56+
- `pyproject.toml`
5657
- `vcpkg.json`
57-
- `docs/_static/versions.json`
5858
- `CHANGELOG.md`
5959

60-
These changes will be automatically pushed to the existing `vYY.MM` branch and a PR from `vvYY.MM` to `develop` will be created (to sync the branches).
60+
These changes will be automatically pushed to the existing `vYY.MM` branch and a PR will be created to update version strings in `develop`.
6161

6262
3. Next, a PR from `vYY.MM` to `main` will be generated that should be merged once all the tests pass.
6363

@@ -70,10 +70,11 @@ Once satisfied with the release candidates -
7070
Some other essential things to check throughout the release process -
7171

7272
- If updating our custom vcpkg registory entries [pybamm-team/sundials-vcpkg-registry](https://github.com/pybamm-team/sundials-vcpkg-registry) or [pybamm-team/casadi-vcpkg-registry](https://github.com/pybamm-team/casadi-vcpkg-registry) (used to build Windows wheels), make sure to update the baseline of the registories in vcpkg-configuration.json to the latest commit id.
73-
- Update jax and jaxlib to the latest version in `pybamm.util` and `setup.py`, fixing any bugs that arise
74-
- Make sure the URLs in `docs/_static/versions.json` are valid
73+
- Update jax and jaxlib to the latest version in `pybamm.util` and `pyproject.toml`, fixing any bugs that arise
7574
- As the release workflow is initiated by the `release` event, it's important to note that the default `GITHUB_REF` used by `actions/checkout` during the checkout process will correspond to the tag created during the release process. Consequently, the workflows will consistently build PyBaMM based on the commit associated with this tag. Should new commits be introduced to the `vYY.MM` branch, such as those addressing build issues, it becomes necessary to manually update this tag to point to the most recent commit -
7675
```
7776
git tag -f <tag_name> <commit_hash>
78-
git push origin <tag_name> # can only be carried out by the maintainers
77+
git push -f <pybamm-team/PyBaMM_remote_name> <tag_name> # can only be carried out by the maintainers
7978
```
79+
- If changes are made to the API, console scripts, entry points, new optional dependencies are added, support for major Python versions is dropped or added, or core project information and metadata are modified at the time of the release, make sure to update the `meta.yaml` file in the `recipe/` folder of the [conda-forge/pybamm-feedstock](https://github.com/conda-forge/pybamm-feedstock) repository accordingly by following the instructions in the [conda-forge documentation](https://conda-forge.org/docs/maintainer/updating_pkgs.html#updating-the-feedstock-repository) and re-rendering the recipe
80+
- The conda-forge release workflow will automatically be triggered following a stable PyPI release, and the aforementioned updates should be carried out directly in the main repository by pushing changes to the automated PR created by the conda-forge-bot. A manual PR can also be created if the updates are not included in the automated PR for some reason. This manual PR **must** bump the build number in `meta.yaml` and **must** be from a personal fork of the repository.

.github/wheel_failure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Fortnightly build for wheels failed
3-
labels: priority:high, bug
3+
labels: "priority: high, bug"
44
---
55

66
The build is failing with the following logs - {{ env.LOGS }}

.github/workflows/benchmark_on_push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
steps:
1616
- uses: actions/checkout@v4
1717
- name: Set up Python 3.8
18-
uses: actions/setup-python@v4
18+
uses: actions/setup-python@v5
1919
with:
2020
python-version: 3.8
2121

.github/workflows/docker.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Build and push Docker images to Docker Hub
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- develop
8+
9+
jobs:
10+
build_docker_images:
11+
# This workflow is only of value to PyBaMM and would always be skipped in forks
12+
if: github.repository_owner == 'pybamm-team'
13+
name: Image (${{ matrix.build-args }})
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
build-args: ["No solvers", "JAX", "ODES", "IDAKLU", "ALL"]
18+
fail-fast: true
19+
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
24+
- name: Set up QEMU
25+
uses: docker/setup-qemu-action@v3
26+
27+
- name: Set up Docker Buildx
28+
uses: docker/setup-buildx-action@v3
29+
30+
- name: Login to Docker Hub
31+
uses: docker/login-action@v3
32+
with:
33+
username: ${{ secrets.DOCKERHUB_USERNAME }}
34+
password: ${{ secrets.DOCKERHUB_TOKEN }}
35+
36+
- name: Create tags for Docker images based on build-time arguments
37+
id: tags
38+
run: |
39+
if [ "${{ matrix.build-args }}" = "No solvers" ]; then
40+
echo "tag=latest" >> "$GITHUB_OUTPUT"
41+
elif [ "${{ matrix.build-args }}" = "JAX" ]; then
42+
echo "tag=jax" >> "$GITHUB_OUTPUT"
43+
elif [ "${{ matrix.build-args }}" = "ODES" ]; then
44+
echo "tag=odes" >> "$GITHUB_OUTPUT"
45+
elif [ "${{ matrix.build-args }}" = "IDAKLU" ]; then
46+
echo "tag=idaklu" >> "$GITHUB_OUTPUT"
47+
elif [ "${{ matrix.build-args }}" = "ALL" ]; then
48+
echo "tag=all" >> "$GITHUB_OUTPUT"
49+
fi
50+
51+
- name: Build and push Docker image to Docker Hub (${{ matrix.build-args }})
52+
uses: docker/build-push-action@v5
53+
with:
54+
context: .
55+
file: scripts/Dockerfile
56+
tags: pybamm/pybamm:${{ steps.tags.outputs.tag }}
57+
push: true
58+
platforms: linux/amd64, linux/arm64
59+
60+
- name: List built image(s)
61+
run: docker images

.github/workflows/lychee_url_checker.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,18 @@ jobs:
4545
--accept 200,429
4646
--exclude-path ./CHANGELOG.md
4747
--exclude-path ./scripts/update_version.py
48+
--exclude-path asv.conf.json
4849
--exclude-path docs/conf.py
4950
'./**/*.rst'
5051
'./**/*.md'
5152
'./**/*.py'
5253
'./**/*.ipynb'
54+
'./**/*.json'
55+
'./**/*.toml'
5356
# fail the action on broken links
5457
fail: true
58+
jobSummary: true
59+
format: markdown
5560
env:
5661
# to be used in case rate limits are surpassed
5762
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

0 commit comments

Comments
 (0)