Skip to content
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

Make v24.3 #220

Merged
merged 430 commits into from
Mar 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
430 commits
Select commit Hold shift + click to select a range
2920865
style: pre-commit fixes
pre-commit-ci[bot] Feb 8, 2024
1cdea9e
Update UKF example plotting
NicolaCourtier Feb 8, 2024
44e935c
Update simulate
NicolaCourtier Feb 8, 2024
d3fa97f
Add BaseModel tests
BradyPlanden Feb 9, 2024
27c49f0
Merge pull request #167 from pybop-team/162-update-design-optimisatio…
BradyPlanden Feb 9, 2024
3fa1249
Add M1 GitHub runners, Updt. self-hosted
BradyPlanden Feb 9, 2024
1253360
Updt changelog
BradyPlanden Feb 9, 2024
3cf96ae
Remove M1 tests on unsupported python versions
BradyPlanden Feb 9, 2024
7d09c5d
Add VolumetricEnergyDensity example (#191)
NicolaCourtier Feb 9, 2024
a189796
Revert file names
NicolaCourtier Feb 9, 2024
3f66b25
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 9, 2024
ac10023
Re-implement change to BaseCost
NicolaCourtier Feb 9, 2024
93095b6
Separate off plot_parameters
NicolaCourtier Feb 9, 2024
bfe5bb9
style: pre-commit fixes
pre-commit-ci[bot] Feb 9, 2024
1ccfda1
Move plot_parameters in init
NicolaCourtier Feb 9, 2024
993aa91
Update spm_electrode_design.ipynb
NicolaCourtier Feb 9, 2024
541ac05
Re-implement design changes to quick_plot
NicolaCourtier Feb 9, 2024
695170f
#123 rename: `release-action` to `release_action`
agriyakhetarpal Feb 11, 2024
bff90d6
#123 add custom script to dynamically generate matrix
agriyakhetarpal Feb 11, 2024
4f64bd4
#123 run script, pass generated matrix to next job
agriyakhetarpal Feb 11, 2024
48a3e12
#123 make script executable prior to running it
agriyakhetarpal Feb 11, 2024
c324365
#123 don't allow running M-series builds on forks
agriyakhetarpal Feb 11, 2024
e56eb36
#123 don't use `git update-index` for file permissions
agriyakhetarpal Feb 11, 2024
8c06d23
#123 move script to a dedicated `scripts/ci/` folder
agriyakhetarpal Feb 11, 2024
bfe8474
#123 correctly sparse checkout the matrix script
agriyakhetarpal Feb 11, 2024
77e233d
#123 fix up script to return valid JSON
agriyakhetarpal Feb 11, 2024
d26a48f
#123 simplify GitHub Actions output processing
agriyakhetarpal Feb 11, 2024
a4e0979
#123 convert JSON to string before parsing
agriyakhetarpal Feb 11, 2024
4679821
#123 move output before all jobs and test
agriyakhetarpal Feb 11, 2024
d09b537
#123 don't convert JSON output to raw strings
agriyakhetarpal Feb 11, 2024
4d9d732
#123 matrix script is working now, clean it up
agriyakhetarpal Feb 11, 2024
03bf40c
#123 specify a prettified job name via matrix variables
agriyakhetarpal Feb 11, 2024
b77d932
#123 temporarily fetch last three versions, not four
agriyakhetarpal Feb 12, 2024
bcc7983
#123 add `PYBOP_SCHEDULED` and `PYBAMM_VERSION`
agriyakhetarpal Feb 12, 2024
23b7be2
#123 configure `PYBAMM_VERSION` env var
agriyakhetarpal Feb 12, 2024
6cb7264
chore: update pre-commit hooks
pre-commit-ci[bot] Feb 12, 2024
c295138
Merge pull request #194 from pybop-team/pre-commit-ci-update-config
BradyPlanden Feb 13, 2024
7024166
Lengthen test data, updat init_soc for test, flip higher cost solutio…
BradyPlanden Feb 13, 2024
264a4d2
Merge branch 'develop' into 187-add-m-series-github-runners-to-tests
BradyPlanden Feb 13, 2024
0d05f8b
Merge branch '187-add-m-series-github-runners-to-tests' into 196-bug-…
BradyPlanden Feb 13, 2024
5e6c73c
Merge pull request #197 from pybop-team/196-bug-observer-tests-fail-o…
martinjrobins Feb 13, 2024
59653d4
Updt. Changelog for #196 addition
BradyPlanden Feb 13, 2024
a8b54d1
Merge pull request #188 from pybop-team/187-add-m-series-github-runne…
BradyPlanden Feb 13, 2024
1f07663
#123 merge develop
agriyakhetarpal Feb 13, 2024
08c72b1
#123 add feature note to CHANGELOG
agriyakhetarpal Feb 13, 2024
937aea4
#123 moving forward with PyBaMM parameter set check
agriyakhetarpal Feb 14, 2024
9572d8f
#123 update CHANGELOG under bug fixes
agriyakhetarpal Feb 14, 2024
a00a2be
Update subplot widths, test_plotting dataset access, remove square br…
BradyPlanden Feb 16, 2024
bc48170
Update pybop/plotting/plot_convergence.py
NicolaCourtier Feb 16, 2024
b5ebd42
Update pybop/plotting/plot_cost2d.py
NicolaCourtier Feb 16, 2024
c2423a8
Merge pull request #193 from agriyakhetarpal/test-against-pybamm
BradyPlanden Feb 16, 2024
e573c35
docs: update README.md [skip ci]
allcontributors[bot] Feb 16, 2024
d3515e1
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Feb 16, 2024
6fba3ac
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 16, 2024
b26ac6b
Update plot_cost2d.py
NicolaCourtier Feb 16, 2024
c72cf71
Update README.md
BradyPlanden Feb 16, 2024
d58b43a
Merge pull request #199 from pybop-team/all-contributors/add-agriyakh…
BradyPlanden Feb 16, 2024
505a588
Make PyBOP version private attr, use `importlib.metadata`
agriyakhetarpal Feb 16, 2024
b07ca7f
Remove distutils & metadata boilerplate, shift to PEP517
agriyakhetarpal Feb 16, 2024
388496b
Move `pytest`, `ruff` config to `pyproject.toml`
agriyakhetarpal Feb 16, 2024
aa6a9d2
Migrate to `pyproject.toml` (declarative metadata)
agriyakhetarpal Feb 16, 2024
913fcde
Add CHANGELOG entry for `pyproject.toml`
agriyakhetarpal Feb 16, 2024
a4d3211
Split integration and unit tests, update pytest --examples, additiona…
BradyPlanden Feb 16, 2024
b80956e
Merge branch 'develop' into 139-split-integration-unit-tests
BradyPlanden Feb 16, 2024
1e9d5ab
updt coverage action for style
BradyPlanden Feb 16, 2024
ef8968c
Add matrix to m-series runner
BradyPlanden Feb 17, 2024
917cd06
Add filtered matrix job, update m-series env
BradyPlanden Feb 17, 2024
a044e1b
Update .github/workflows/scheduled_tests.yaml
BradyPlanden Feb 17, 2024
e4909e0
Restores pyenv environment initialisation
BradyPlanden Feb 17, 2024
d0fbd7d
os bug patch
BradyPlanden Feb 17, 2024
9cd5f83
revert to single item nox calls
BradyPlanden Feb 17, 2024
c0cfb56
updt. filtered item name
BradyPlanden Feb 17, 2024
59aec2b
Merge develop
BradyPlanden Feb 17, 2024
ff9ab82
Merge branch 'develop' into 18-how-to-handle-structural-parameters
BradyPlanden Feb 17, 2024
e9fe14b
revert @staticmethod definition for list_of_examples
BradyPlanden Feb 17, 2024
e9fb74c
Merge pull request #205 from pybop-team/193-patch-m-series
BradyPlanden Feb 17, 2024
b625ae3
Merge pull request #182 from MarkBlyth/develop
BradyPlanden Feb 19, 2024
2af4397
update Python version requirements to remove 3.12
agriyakhetarpal Feb 19, 2024
a37543f
Merge branch 'develop' into 139-split-integration-unit-tests
BradyPlanden Feb 19, 2024
9bc2c30
Make notes about `[dev]` and `[docs]` extras, revise config
agriyakhetarpal Feb 19, 2024
a6e32a1
Add the `[dev]` extras (pytest, nbmake, pre-commit)
agriyakhetarpal Feb 19, 2024
45df796
Use `[dev]` extras for nox session invocations
agriyakhetarpal Feb 19, 2024
d3f2217
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 19, 2024
452e5e8
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 19, 2024
2c5fbd7
Remove duplicate getitem
NicolaCourtier Feb 19, 2024
d3c845e
Merge pull request #203 from agriyakhetarpal/add-pep517/518-pyproject
BradyPlanden Feb 19, 2024
423bb04
Inital benchmarking setup, suite
BradyPlanden Feb 19, 2024
694cd0c
Merge branch 'develop' into 179-add-airspeed-velocity-for-automated-b…
BradyPlanden Feb 19, 2024
9602190
Updt. asv config, changelog, parameterisaton benchmarks
BradyPlanden Feb 19, 2024
547f512
chore: update pre-commit hooks
pre-commit-ci[bot] Feb 19, 2024
02509bd
Merge branch 'develop' into 18-how-to-handle-structural-parameters
BradyPlanden Feb 19, 2024
fde941b
Change spm_CMAES example to geometric parameters, add true_value to p…
BradyPlanden Feb 19, 2024
8624a44
Add tests for pybop parameters
BradyPlanden Feb 20, 2024
209c5dc
Merge pull request #208 from pybop-team/pre-commit-ci-update-config
BradyPlanden Feb 20, 2024
8b2a655
bump upper python version
BradyPlanden Feb 20, 2024
55f3768
updt test_on_push workflow for 3.12
BradyPlanden Feb 20, 2024
dc9effe
Updts python matrix for scheduled tests
BradyPlanden Feb 20, 2024
7e8fd4c
Updt. matrix generation for incompatible pybamm/python versions
BradyPlanden Feb 20, 2024
e03cbb5
updt workflow order to ensure self-hosted runner starts in parallel
BradyPlanden Feb 20, 2024
bab2872
Update .github/workflows/scheduled_tests.yaml
BradyPlanden Feb 20, 2024
98cbe4a
Updt to filter with jq
BradyPlanden Feb 20, 2024
a104554
revert build trigger, requires create_matrix for matrix, filter_matri…
BradyPlanden Feb 21, 2024
626eb60
Updt Changelog, rm redundant example
BradyPlanden Feb 21, 2024
d8071f2
Add 23.9 / 3.12 to filter
BradyPlanden Feb 21, 2024
7e11e0b
Add tests for rebuild, and increase pybop.parameter tests
BradyPlanden Feb 21, 2024
fb9053d
Updt problem tests, revert model_tests
BradyPlanden Feb 21, 2024
0757091
remove redundant rebuild condition
BradyPlanden Feb 21, 2024
8a17a99
remove missed merge delete
BradyPlanden Feb 21, 2024
ad9a883
Merge pull request #169 from pybop-team/18-how-to-handle-structural-p…
BradyPlanden Feb 21, 2024
8561c52
Merge pull request #209 from pybop-team/206-support-python-312
BradyPlanden Feb 21, 2024
7a30ca0
Patch: add changelog entry for #206
BradyPlanden Feb 21, 2024
7d00ccf
Merge branch 'develop' into 179-add-airspeed-velocity-for-automated-b…
BradyPlanden Feb 21, 2024
7f7d6df
Add peridoci benchmark workflow and nox session
BradyPlanden Feb 21, 2024
8698a5c
updt results path for upload
BradyPlanden Feb 21, 2024
c519916
Merge branch 'develop' into 139-split-integration-unit-tests
BradyPlanden Feb 21, 2024
3f651f4
Create --plots pytest marker, add xdist to non-plots nox test session…
BradyPlanden Feb 21, 2024
89ec0cc
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 21, 2024
89e2932
Add plotting support for notebook rendering, adds kaleido as dependancy
BradyPlanden Feb 22, 2024
f853af9
+ diffevolution notebook
BradyPlanden Feb 22, 2024
fc06f1f
Merge branch '177-plotting-capabilities' into 177b-plotting-capabilities
BradyPlanden Feb 22, 2024
d7a71a7
fix missed deletion during merge
BradyPlanden Feb 22, 2024
79f7199
Update test_on_push workflow to add examples and integration, updates…
BradyPlanden Feb 22, 2024
37e4062
relax integration asserts
BradyPlanden Feb 22, 2024
88522c1
Split test_on_push jobs, reduce integration and example tests to 3.11
BradyPlanden Feb 22, 2024
6019c9a
Add PR template, updt. docs conf.py path definition, add doc tests, a…
BradyPlanden Feb 22, 2024
8e7d6a5
Merge branch '139-split-integration-unit-tests' into 185-add-pull-req…
BradyPlanden Feb 22, 2024
ec564ef
Updt. conftest for --docs arg
BradyPlanden Feb 22, 2024
8175bcb
Update .github/workflows/test_on_push.yaml
BradyPlanden Feb 23, 2024
522bb98
Update noxfile.py
BradyPlanden Feb 23, 2024
890f490
Update noxfile.py
BradyPlanden Feb 23, 2024
dd686a7
style: pre-commit fixes
pre-commit-ci[bot] Feb 23, 2024
240eeb0
convert to session.install()
BradyPlanden Feb 23, 2024
817a778
updt pytest default opts, test_on_push python vers
BradyPlanden Feb 23, 2024
54e97f5
139b Add unit tests for plotting and Thevenin model (#212)
NicolaCourtier Feb 23, 2024
29c6ff2
Updt. CHANGELOG
BradyPlanden Feb 23, 2024
c482583
Merge pull request #204 from pybop-team/139-split-integration-unit-tests
BradyPlanden Feb 23, 2024
6ba58ff
Merge branch 'develop' into 185-add-pull-request-template
BradyPlanden Feb 23, 2024
3a8800f
Updt. Changelog
BradyPlanden Feb 23, 2024
0bf88ce
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 23, 2024
06ac374
Add release_workflow.md, updt. release_action.yaml
BradyPlanden Feb 23, 2024
4f5dbe6
Merge branch '177-plotting-capabilities' into 177b-plotting-capabilities
BradyPlanden Feb 23, 2024
183df28
Update test_plots.py
NicolaCourtier Feb 23, 2024
6203269
Update .github/release_workflow.md
BradyPlanden Feb 23, 2024
33645ae
remove API tokens
BradyPlanden Feb 23, 2024
a393d22
Add condition for main repository only on publish
BradyPlanden Feb 23, 2024
8f3d66b
Updt. Changelog
BradyPlanden Feb 23, 2024
1d9e190
markdown format fix
BradyPlanden Feb 23, 2024
188ebb4
Merge pull request #215 from pybop-team/157-add-release_workflowmd
BradyPlanden Feb 23, 2024
ed2bf7c
Merge branch '177-plotting-capabilities' into 177b-plotting-capabilities
BradyPlanden Feb 23, 2024
fc94e48
Increment to Python 3.12, fix typos, add `push` trigger to workflow
BradyPlanden Feb 24, 2024
1c63061
Updt. nox session name
BradyPlanden Feb 24, 2024
5540042
Updt. nox benchmarks session, tests for CI on benchmark workflow, rem…
BradyPlanden Feb 24, 2024
57d43ee
Merge branch 'develop' into 179-add-airspeed-velocity-for-automated-b…
BradyPlanden Feb 24, 2024
aceedc5
asv installation, calls
BradyPlanden Feb 24, 2024
10801fa
Add gaussian likelihoods, update optimisation cls to for likelihood d…
BradyPlanden Feb 26, 2024
b2fd01a
fix mistyped min_iterations
BradyPlanden Feb 26, 2024
b7b34bb
add property decorator for private n_paramters
BradyPlanden Feb 26, 2024
4d62ddb
increment versions
BradyPlanden Feb 26, 2024
93f33e6
updt architecture image, remove stale assets
BradyPlanden Feb 28, 2024
060f31c
Merge pull request #221 from pybop-team/update-readme-remove-assets
BradyPlanden Feb 29, 2024
a168149
Update to allow no bounds (#213)
NicolaCourtier Feb 29, 2024
a91d7a8
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 29, 2024
30da2fb
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Feb 29, 2024
4cf9108
Revamp model, problem, and cost object from numpy arrays to dictionar…
BradyPlanden Mar 1, 2024
3428c97
Fix ukf examples, temporarily limits ukf to signal output model
BradyPlanden Mar 1, 2024
43521da
default_variables to additional_variables w/ docstrings, updt. observ…
BradyPlanden Mar 2, 2024
67d2887
Fix integration test logic, add gradient landscape plots, pin pytest …
BradyPlanden Mar 4, 2024
b6a073b
Add tests for gradient plots, up coverage
BradyPlanden Mar 4, 2024
ee4cdff
Set default SciPyMinimize method to Nelder-Mead, clean-up repo
BradyPlanden Mar 4, 2024
55d54e5
Merge branch 'develop' / Add unit tests
BradyPlanden Mar 4, 2024
e5396d6
_sigma -> sigma0, updt tests
BradyPlanden Mar 5, 2024
56e62f8
Add ProbabilityBased cost tests, Updt. changelog
BradyPlanden Mar 5, 2024
8d58731
updt cost tests, add set_fail_gradient to RootMeanSquared cost function
BradyPlanden Mar 5, 2024
b0eb7fa
Merge branch 'develop' into 185-add-pull-request-template
BradyPlanden Mar 5, 2024
f447cb4
fix nox doctest session, pytest docs update
BradyPlanden Mar 5, 2024
c3c15a4
add plots session, update nox session installs
BradyPlanden Mar 5, 2024
02ee2e2
update contributing.md
BradyPlanden Mar 6, 2024
1e6b07d
Merge pull request #214 from pybop-team/185-add-pull-request-template
BradyPlanden Mar 6, 2024
7bc6fd2
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Mar 7, 2024
66efaba
unicode fix for win notebooks, update prediction shape checks, remove…
BradyPlanden Mar 8, 2024
7e8271f
Merge branch 'develop' into 210-add-likelihood-classes
BradyPlanden Mar 8, 2024
0b53048
Make likelihoods a type of cost (#230)
NicolaCourtier Mar 8, 2024
fd49cf6
Updt tests, add optional x0 arg to optimisation cls, remove redundant…
BradyPlanden Mar 8, 2024
13309fb
Fix basecost.evaluateS1 tuple negate, up coverage via integration add…
BradyPlanden Mar 8, 2024
da016b4
Merge pull request #218 from pybop-team/210-add-likelihood-classes
BradyPlanden Mar 8, 2024
a76777e
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Mar 8, 2024
6c6494a
Update spm_MLE example
NicolaCourtier Mar 8, 2024
32e946e
chore: update pre-commit hooks
pre-commit-ci[bot] Mar 12, 2024
2b238e4
style: pre-commit fixes
pre-commit-ci[bot] Mar 12, 2024
a006764
Merge pull request #234 from pybop-team/pre-commit-ci-update-config
BradyPlanden Mar 13, 2024
9b03734
Updt. cost2d/optim2d x0 shape/colour, revert conftest win platform un…
BradyPlanden Mar 13, 2024
e7aef79
Updt SciPy & BaseOptimiser for maximum iterations limit - fixes #237
BradyPlanden Mar 13, 2024
afd4990
add infeasible cost tests, remove redundant scipyminimise maxiter opt…
BradyPlanden Mar 13, 2024
a9ea84c
Merge pull request #224 from pybop-team/177c-plotting-capabilities
BradyPlanden Mar 13, 2024
d6a172a
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Mar 14, 2024
05c7f20
Merge branch '177-plotting-capabilities' into 177b-plotting-capabilities
BradyPlanden Mar 14, 2024
db28440
Updt grad descent hypers for likelihood tests, add tol arg to scipy o…
BradyPlanden Mar 15, 2024
61d7d7a
Split kaleido dependancy to avoid windows hang
BradyPlanden Mar 15, 2024
744d166
small refactors and cleanup
BradyPlanden Mar 15, 2024
c1b3854
Updt changelog
BradyPlanden Mar 15, 2024
4e3722f
Additional benchmarks, updt build wheels
BradyPlanden Mar 15, 2024
3315602
Merge branch 'develop' into 179-add-airspeed-velocity-for-automated-b…
BradyPlanden Mar 15, 2024
8f0daf1
updt permissions for deployment
BradyPlanden Mar 15, 2024
ebc7b62
add --global arg to git config
BradyPlanden Mar 15, 2024
aa9a395
Limit workflow to pybop repo
BradyPlanden Mar 16, 2024
8e6f609
Add random seed, updt branch target, increment python for publish job…
BradyPlanden Mar 16, 2024
7e530b0
Updt benchmark intial soc, add tracking of optimisation results, incr…
BradyPlanden Mar 17, 2024
2013161
Adds benchmark badge
BradyPlanden Mar 18, 2024
68b4c9b
Merge pull request #207 from pybop-team/179-add-airspeed-velocity-for…
BradyPlanden Mar 18, 2024
cb73cec
Fix workflow for changing experiment (#240)
NicolaCourtier Mar 18, 2024
f9b10e8
Merge branch 'develop' into 177-plotting-capabilities
NicolaCourtier Mar 18, 2024
a7979c4
chore: update pre-commit hooks
pre-commit-ci[bot] Mar 18, 2024
7a7e9ef
Merge pull request #242 from pybop-team/pre-commit-ci-update-config
BradyPlanden Mar 19, 2024
e1c78d5
patch benchmarks for solution tracking
BradyPlanden Mar 19, 2024
716c671
updt coverage, bugfix sigma check/wrap
BradyPlanden Mar 19, 2024
41cf0f8
Merge branch '177-plotting-capabilities' into 177b-plotting-capabilities
BradyPlanden Mar 19, 2024
896f1b3
Merge pull request #243 from pybop-team/patch-benchmarks
BradyPlanden Mar 19, 2024
a479136
coverage, bugfix model.simulateS1
BradyPlanden Mar 19, 2024
691b0ae
Merge pull request #198 from pybop-team/177b-plotting-capabilities
BradyPlanden Mar 19, 2024
876e951
Add ruff import lint, run across codebase
BradyPlanden Mar 19, 2024
5f0df76
updt. changelog
BradyPlanden Mar 20, 2024
18a1a4e
Update to n_time_data and add two_signal test
NicolaCourtier Mar 20, 2024
19b247c
style: pre-commit fixes
pre-commit-ci[bot] Mar 20, 2024
695c2c9
Test standard plot and plot_trajectories
NicolaCourtier Mar 20, 2024
47c0058
Add test_with_ipykernel
NicolaCourtier Mar 20, 2024
1a80b6f
style: pre-commit fixes
pre-commit-ci[bot] Mar 20, 2024
fa551a0
Re-add test_with_ipykernel
NicolaCourtier Mar 20, 2024
b6ce663
Update test_plots.py
NicolaCourtier Mar 20, 2024
f198cbe
Rename plot_cost2d as plot2d
NicolaCourtier Mar 20, 2024
9ef3897
Merge plot_optim2d with plot2d
NicolaCourtier Mar 20, 2024
f42298f
Update scripts to plot2d
NicolaCourtier Mar 20, 2024
3ca404d
Update notebooks to plot2d
NicolaCourtier Mar 20, 2024
302add7
Update spm_MLE.py
NicolaCourtier Mar 20, 2024
fe090f1
Update filename to plot2d
NicolaCourtier Mar 20, 2024
7b8c7f0
Rename plot_cost2d.py to plot2d.py
NicolaCourtier Mar 20, 2024
8bfaeba
Fix typo in error message
NicolaCourtier Mar 20, 2024
cb70505
Reduce init_soc in test_model_misparameterisation
NicolaCourtier Mar 20, 2024
76b5c19
Update ipykernel print to assert
NicolaCourtier Mar 21, 2024
e513c33
Fix version check
NicolaCourtier Mar 21, 2024
b2afea4
Merge pull request #178 from pybop-team/177-plotting-capabilities
NicolaCourtier Mar 21, 2024
91724ab
Merge branch 'develop' into v24.2
BradyPlanden Mar 21, 2024
899b117
Merge branch 'develop' into 244-add-reorder-python-imports-to-pre-commit
BradyPlanden Mar 21, 2024
80514d0
style: pre-commit fixes
pre-commit-ci[bot] Mar 21, 2024
75967f7
Merge pull request #245 from pybop-team/244-add-reorder-python-import…
BradyPlanden Mar 21, 2024
a02634d
Updt model.simulateS1, refactor cost evaluates for object change + si…
BradyPlanden Mar 25, 2024
63b3792
updt changelog
BradyPlanden Mar 25, 2024
47767c7
move changelog entry to bugfix
BradyPlanden Mar 25, 2024
21119db
Merge pull request #260 from pybop-team/259-bug-incorrect-gradient-ob…
BradyPlanden Mar 25, 2024
45785ab
Merge branch 'develop' into v24.2
BradyPlanden Mar 25, 2024
c33f494
increment versions to v24.3
BradyPlanden Mar 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@
"contributions": [
"ideas",
"mentoring",
"review"
"review",
"code",
"test"
]
},
{
Expand Down Expand Up @@ -79,6 +81,16 @@
"contributions": [
"financial"
]
},
{
"login": "agriyakhetarpal",
"name": "Agriya Khetarpal",
"avatar_url": "https://avatars.githubusercontent.com/u/74401230?v=4",
"profile": "https://github.com/agriyakhetarpal",
"contributions": [
"code",
"infra"
]
}
],
"contributorsPerLine": 7,
Expand Down
36 changes: 36 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

## Issue reference
Fixes # (issue-number)

## Review
Before you mark your PR as ready for review, please ensure that you've considered the following:
- Updated the [CHANGELOG.md](https://github.com/pybop-team/PyBOP/blob/develop/CHANGELOG.md) in reverse chronological order (newest at the top) with a concise description of the changes, including the PR number.
- Noted any breaking changes, including details on how it might impact existing functionality.

## Type of change
- [ ] New Feature: A non-breaking change that adds new functionality.
- [ ] Optimization: A code change that improves performance.
- [ ] Bug Fix: A non-breaking change that addresses an issue.
- [ ] Documentation: Updates to documentation or new documentation for new features.
- [ ] Refactoring: Non-functional changes that improve the codebase.
- [ ] Style: Non-functional changes related to code style (formatting, naming, etc).
- [ ] Testing: Additional tests to improve coverage or confirm functionality.
- [ ] Other: (Insert description of change)

# Key checklist:

- [ ] No style issues: `$ pre-commit run` (or `$ nox -s pre-commit`) (see [CONTRIBUTING.md](https://github.com/pybop-team/PyBOP/blob/develop/CONTRIBUTING.md#installing-and-using-pre-commit) for how to set this up to run automatically when committing locally, in just two lines of code)
- [ ] All unit tests pass: `$ nox -s tests`
- [ ] The documentation builds: `$ nox -s docs`

You can run integration tests, unit tests, and doctests together at once, using `$ nox -s quick`.

## Further checks:
- [ ] Code is well-commented, especially in complex or unclear areas.
- [ ] Added tests that prove my fix is effective or that my feature works.
- [ ] Checked that coverage remains or improves, and added tests if necessary to maintain or increase coverage.

Thank you for contributing to our project! Your efforts help us to deliver great software.
34 changes: 34 additions & 0 deletions .github/release_workflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Release Workflow

This document outlines the release workflow for publishing to PyPI and TestPyPI using GitHub Actions.

## Creating a New Release

To create a new release, follow these steps:

1. **Prepare the Release:**
- Create a new branch for the release (i.e. `v24.XX`) from `develop`.
- Increment the following;
- The version number in the `pyproject.toml` file following CalVer versioning.
- The`CHANGELOG.md` version with the changes for the new version.
- Open a PR to the `main` branch. Once the PR is merged, proceed to the next step.

2. **Tag the Release:**
- Create a new Git tag for the release. For a full release, use a tag like `v24.2`. For a release candidate, use a tag like `v24.2rc.1`.
- Push the tag to the remote repository: `git push origin <tag_name>`.

3. **Create a GitHub Release:**
- Go to the "Releases" section of on GitHub.
- Click "Draft a new release."
- Enter the tag you created in the "Tag version" field.
- Fill in the release title and description. Add any major changes and link to the `CHANGELOG.md` for a list of total changes.
- If it's a pre-release (release candidate), check the "This is a pre-release" checkbox.
- Click "Publish release" to create the release.

4. **Monitor the Workflow:**
- Go to the "Actions" tab of your repository to monitor the workflow's progress.
- The workflow will build the distribution packages and then publish them to PyPI or TestPyPI, depending on whether the release is a full release or a pre-release.

5. **Verify the Release:**
- Check PyPI or TestPyPI to ensure that your package is available and has been updated to the new version.
- Test installing the package using `pip` to ensure everything works as expected.
100 changes: 100 additions & 0 deletions .github/workflows/periodic_benchmarks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Initial Source: pybop-team/PyBop

# This workflow periodically runs the benchmarks suite in benchmarks/
# using asv and publish the results, effectively updating
# the display website hosted in the pybop-bench repo

# Steps:
# - Benchmark all commits since the last one that was benchmarked
# - Push results to pybop-bench repo
# - Publish website
name: Benchmarks
on:
# Everyday at 12 pm UTC
schedule:
- cron: "0 12 * * *"
# Make it possible to trigger the
# workflow manually
workflow_dispatch:

jobs:
benchmarks:
runs-on: [self-hosted, macOS, ARM64]
if: github.repository == 'pybop-team/PyBOP'
steps:
- uses: actions/checkout@v4

- name: Install python & create virtualenv
shell: bash
run: |
eval "$(pyenv init -)"
pyenv install 3.12 -s
pyenv virtualenv 3.12 pybop-312-bench

- name: Install dependencies & run benchmarks
shell: bash
run: |
eval "$(pyenv init -)"
pyenv activate pybop-312-bench
python -m pip install -e .[all,dev]
python -m pip install asv[virtualenv]
python -m asv machine --machine "SelfHostedRunner"
python -m asv run --machine "SelfHostedRunner" NEW --show-stderr -v

- name: Upload results as artifact
uses: actions/upload-artifact@v4
with:
name: asv_periodic_results
path: results

- name: Uninstall pyenv-virtualenv & python
if: always()
shell: bash
run: |
eval "$(pyenv init -)"
pyenv activate pybop-312-bench
pyenv uninstall -f $( python --version )

publish-results:
name: Push and publish results
needs: benchmarks
runs-on: ubuntu-latest
if: github.repository == 'pybop-team/PyBOP'
steps:
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12

- name: Install asv
run: pip install asv

- name: Checkout pybop-bench repo
uses: actions/checkout@v4
with:
repository: pybop-team/pybop-bench
token: ${{ secrets.PUSH_BENCH_TOKEN }}

- name: Download results artifact
uses: actions/download-artifact@v4
with:
name: asv_periodic_results
path: new_results

- name: Copy new results and push to pybop-bench repo
env:
PUSH_BENCH_EMAIL: ${{ secrets.PUSH_BENCH_EMAIL }}
PUSH_BENCH_NAME: ${{ secrets.PUSH_BENCH_NAME }}
run: |
cp -vr new_results/* results
git config --global user.email "$PUSH_BENCH_EMAIL"
git config --global user.name "$PUSH_BENCH_NAME"
git add results
git commit -am "Add new benchmark results"
git push

- name: Publish results
run: |
asv publish
git fetch origin gh-pages:gh-pages
asv gh-pages
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.8"
python-version: "3.12"
- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: python3 -m build
run: python -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
Expand All @@ -35,9 +35,8 @@ jobs:
Publish Python 🐍 distribution 📦 to PyPI
if: >
startsWith(github.ref, 'refs/tags/') &&
!contains(github.ref, 'rc')
needs:
- build
!contains(github.ref, 'rc') && github.repository == github.event.repository
needs: build
runs-on: ubuntu-latest
environment:
name: pypi
Expand Down Expand Up @@ -91,7 +90,7 @@ jobs:

publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
if: contains(github.ref, 'rc') # only publish to TestPyPI for rc tags
if: contains(github.ref, 'rc') && github.repository == github.event.repository # only publish to TestPyPI for rc tags
needs:
- build
runs-on: ubuntu-latest
Expand Down
98 changes: 79 additions & 19 deletions .github/workflows/scheduled_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,65 +6,125 @@ on:
branches:
- main

# runs every day at 09:00 UTC
# runs every day at 09:00 and 15:00 UTC
schedule:
- cron: '0 9 * * *'
- cron: '0 15 * * *'

# Check noxfile.py for associated environment variables
env:
PYBOP_SCHEDULED: 1

jobs:
# Dynamically create a matrix of OS, Python, and PyBaMM versions
create_pybamm_matrix:
name: Dynamically create GitHub Actions matrix
runs-on: ubuntu-latest
steps:
- name: Check out PyBOP repository
uses: actions/checkout@v4
with:
sparse-checkout-cone-mode: false
sparse-checkout: |
scripts/ci/build_matrix.sh

- name: Run script to create matrix
id: set-matrix
run: |
echo "matrix=$(bash scripts/ci/build_matrix.sh)" >> "$GITHUB_OUTPUT"
outputs:
pybop_matrix: ${{ steps.set-matrix.outputs.matrix }}

# filter the matrix to only include the macOS-latest entries
filter_pybamm_matrix:
name: Filter the matrix for macOS-latest entries
needs: [create_pybamm_matrix]
runs-on: ubuntu-latest
outputs:
filtered_pybop_matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Filter pybop matrix
id: set-matrix
run: |
import json
import os

# Get the matrix
matrix_json = '${{ needs.create_pybamm_matrix.outputs.pybop_matrix }}'
matrix = json.loads(matrix_json)

# Filter the matrix for macOS-latest entries only
filtered_entries = [entry for entry in matrix['include'] if entry['os'] == 'macos-latest']
filtered_matrix = {'include': filtered_entries}

# Set the output variable for other jobs to use
output_file = os.environ['GITHUB_OUTPUT']
with open(output_file, "a", encoding="utf-8") as output_stream:
output_stream.write(f"matrix={json.dumps(filtered_matrix)}\n")
shell: python

build:
needs: [create_pybamm_matrix, filter_pybamm_matrix]
name: Build (${{ matrix.os }}, Python ${{ matrix.python_version }}, PyBaMM ${{ matrix.pybamm_version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.8", "3.9", "3.10", "3.11"]
matrix: ${{fromJson(needs.create_pybamm_matrix.outputs.pybop_matrix)}}
env:
PYBAMM_VERSION: ${{ matrix.pybamm_version }}

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ matrix.python_version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip nox

- name: Unit tests with nox
run: |
python -m nox -s unit
python -m nox -s notebooks
run: python -m nox -s coverage

#M-series Mac Mini
- name: Run notebooks with nox
run: python -m nox -s notebooks

# M-series Mac Mini
build-apple-mseries:
needs: [filter_pybamm_matrix]
name: Build (MacOS M-series, Python ${{ matrix.python_version }}, PyBaMM ${{ matrix.pybamm_version }})
runs-on: [self-hosted, macOS, ARM64]
if: github.repository == 'pybop-team/PyBOP'
env:
GITHUB_PATH: ${PYENV_ROOT/bin:$PATH}
PYBAMM_VERSION: ${{ matrix.pybamm_version }}
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
matrix: ${{fromJson(needs.filter_pybamm_matrix.outputs.filtered_pybop_matrix)}}

steps:
- uses: actions/checkout@v4
- name: Install python & create virtualenv
shell: bash
run: |
eval "$(pyenv init -)"
pyenv install ${{ matrix.python-version }} -s
pyenv virtualenv ${{ matrix.python-version }} pybop-${{ matrix.python-version }}
pyenv install ${{ matrix.python_version }} -s
pyenv virtualenv ${{ matrix.python_version }} pybop-${{ matrix.python_version }}-${{ matrix.pybamm_version }}

- name: Install dependencies & run unit tests
- name: Install dependencies & run unit + notebook tests
shell: bash
run: |
eval "$(pyenv init -)"
pyenv activate pybop-${{ matrix.python-version }}
python -m pip install --upgrade pip wheel setuptools nox
python -m nox -s unit
pyenv activate pybop-${{ matrix.python_version }}-${{ matrix.pybamm_version }}
python -m pip install --upgrade pip nox
python -m nox -s coverage
python -m nox -s notebooks

- name: Uninstall pyenv-virtualenv & python
if: always()
shell: bash
run: |
eval "$(pyenv init -)"
pyenv activate pybop-${{ matrix.python-version }}
pyenv activate pybop-${{ matrix.python_version }}-${{ matrix.pybamm_version }}
pyenv uninstall -f $( python --version )
Loading
Loading