Skip to content

Commit b59ec44

Browse files
Merge pull request #163 from easyscience/develop
Release: merge develop into master
2 parents 0b68c76 + e0e2aea commit b59ec44

109 files changed

Lines changed: 12970 additions & 9216 deletions

File tree

Some content is hidden

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

.copier-answers.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# WARNING: Do not edit this file manually.
22
# Any changes will be overwritten by Copier.
3-
_commit: v0.10.1-25-ga5301e9
3+
_commit: v0.10.1-41-g508666e
44
_src_path: gh:easyscience/templates
55
app_docs_url: https://easyscience.github.io/dynamics-app
66
app_doi: 10.5281/zenodo.18877180
@@ -12,8 +12,8 @@ home_repo_name: dynamics
1212
lib_docs_url: https://easyscience.github.io/dynamics-lib
1313
lib_doi: 10.5281/zenodo.18877180
1414
lib_package_name: easydynamics
15-
lib_python_max: '3.12'
16-
lib_python_min: '3.11'
15+
lib_python_max: '3.14'
16+
lib_python_min: '3.12'
1717
lib_repo_name: dynamics-lib
1818
project_contact_email: henrik.jacobsen@ess.eu
1919
project_copyright_years: 2025-2026

.github/workflows/coverage.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
name: Coverage checks
22

33
on:
4-
# Trigger the workflow on push
4+
# Trigger the workflow on push to develop
55
push:
6+
branches:
7+
- develop
68
# Do not run on version tags (those are handled by other workflows)
79
tags-ignore: ['v*']
810
# Trigger the workflow on pull request
@@ -15,11 +17,11 @@ permissions:
1517
actions: write
1618
contents: read
1719

18-
# Allow only one concurrent workflow, skipping runs queued between the run
19-
# in-progress and latest queued. And cancel in-progress runs.
20+
# Allow only one concurrent workflow per PR or branch ref.
21+
# Cancel in-progress runs only for pull requests, but let branch push runs finish.
2022
concurrency:
2123
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
22-
cancel-in-progress: true
24+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
2325

2426
# Set the environment variables to be used in all jobs defined in this workflow
2527
env:

.github/workflows/issues-labels.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,18 @@ permissions:
1313

1414
jobs:
1515
check-labels:
16+
if: github.actor != 'easyscience[bot]'
17+
1618
runs-on: ubuntu-latest
1719

20+
concurrency:
21+
group: issue-labels-${{ github.event.issue.number }}
22+
cancel-in-progress: true
23+
1824
steps:
25+
- name: Checkout repository
26+
uses: actions/checkout@v5
27+
1928
- name: Setup easyscience[bot]
2029
id: bot
2130
uses: ./.github/actions/setup-easyscience-bot

.github/workflows/lint-format.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,6 @@ jobs:
7979
shell: bash
8080
run: pixi run docstring-lint-check
8181

82-
- name: Check formatting of docstrings in Python code
83-
id: docstring_format
84-
continue-on-error: true
85-
shell: bash
86-
run: pixi run docstring-format-check
87-
8882
- name: Check formatting of non-Python files (md, toml, etc.)
8983
id: nonpy_format
9084
continue-on-error: true
@@ -112,7 +106,6 @@ jobs:
112106
echo "| py lint | ${{ steps.py_lint.outcome == 'success' && '✅' || '❌' }} |"
113107
echo "| py format | ${{ steps.py_format.outcome == 'success' && '✅' || '❌' }} |"
114108
echo "| docstring lint | ${{ steps.docstring_lint.outcome == 'success' && '✅' || '❌' }} |"
115-
echo "| docstring format | ${{ steps.docstring_format.outcome == 'success' && '✅' || '❌' }} |"
116109
echo "| nonpy format | ${{ steps.nonpy_format.outcome == 'success' && '✅' || '❌' }} |"
117110
echo "| notebooks lint | ${{ steps.notebook_lint.outcome == 'success' && '✅' || '❌' }} |"
118111
} >> "$GITHUB_STEP_SUMMARY"
@@ -125,7 +118,6 @@ jobs:
125118
|| steps.py_lint.outcome == 'failure'
126119
|| steps.py_format.outcome == 'failure'
127120
|| steps.docstring_lint.outcome == 'failure'
128-
|| steps.docstring_format.outcome == 'failure'
129121
|| steps.nonpy_format.outcome == 'failure'
130122
|| steps.notebook_lint.outcome == 'failure'
131123
shell: bash

.github/workflows/pypi-test.yml

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,30 +45,26 @@ jobs:
4545
- name: Init pixi project
4646
run: pixi init easydynamics
4747

48-
- name: Add Python 3.12 from Conda
48+
- name: Set the minimum system requirements
4949
working-directory: easydynamics
50-
run: pixi add "python=3.12"
50+
run: pixi project system-requirements add macos 14.0
5151

52-
- name: Add other Conda dependencies
52+
- name: Add Python 3.14 from Conda
5353
working-directory: easydynamics
54-
run: pixi add gsl
54+
run: pixi add "python=3.14"
5555

56-
- name: Add easydynamics from PyPI
56+
- name: Add easydynamics (with dev dependencies) from PyPI
5757
working-directory: easydynamics
58-
run: pixi add --pypi "easydynamics"
59-
60-
- name: Add dev dependencies from PyPI
61-
working-directory: easydynamics
62-
run: pixi add --pypi pytest pytest-xdist
63-
64-
- name: Add Pixi task as a shortcut
65-
working-directory: easydynamics
66-
run: pixi task add easydynamics "python -m easydynamics"
58+
run: pixi add --pypi "easydynamics[dev]"
6759

6860
- name: Run unit tests to verify the installation
6961
working-directory: easydynamics
7062
run: pixi run python -m pytest ../tests/unit/ --color=yes -v
7163

64+
- name: Run functional tests to verify the installation
65+
working-directory: easydynamics
66+
run: pixi run python -m pytest ../tests/functional/ --color=yes -v
67+
7268
- name: Run integration tests to verify the installation
7369
working-directory: easydynamics
7470
run: pixi run python -m pytest ../tests/integration/ --color=yes -n auto

.github/workflows/test.yml

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ concurrency:
4444
# Set the environment variables to be used in all jobs defined in this workflow
4545
env:
4646
CI_BRANCH: ${{ github.head_ref || github.ref_name }}
47-
PY_VERSIONS: '3.11 3.12'
48-
PIXI_ENVS: 'py-311-env py-312-env'
47+
PY_VERSIONS: '3.12 3.14'
48+
PIXI_ENVS: 'py-312-env py-314-env'
4949

5050
jobs:
5151
# Job 1: Set up environment variables
@@ -96,12 +96,27 @@ jobs:
9696
echo
9797
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
9898
99-
env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.11 -> py-311-env
99+
env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env
100100
101101
echo "Running tests in environment: $env"
102102
pixi run --environment $env unit-tests
103103
done
104104
105+
- name: Run functional tests
106+
shell: bash
107+
run: |
108+
set -euo pipefail
109+
110+
for py_ver in $PY_VERSIONS; do
111+
echo
112+
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
113+
114+
env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env
115+
116+
echo "Running tests in environment: $env"
117+
pixi run --environment $env functional-tests
118+
done
119+
105120
- name: Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
106121
shell: bash
107122
run: |
@@ -111,7 +126,7 @@ jobs:
111126
echo
112127
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
113128
114-
env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.11 -> py-311-env
129+
env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env
115130
116131
echo "Running tests in environment: $env"
117132
pixi run --environment $env integration-tests ${{ needs.env-prepare.outputs.pytest-marks }}
@@ -236,7 +251,26 @@ jobs:
236251
cd easydynamics_py$py_ver
237252
238253
echo "Running tests"
239-
pixi run python -m pytest ../tests/unit/ --color=yes --cov= --cov-report=
254+
pixi run python -m pytest ../tests/unit/ --color=yes -v
255+
256+
echo "Exiting pixi project directory"
257+
cd ..
258+
done
259+
260+
- name: Run functional tests
261+
shell: bash
262+
run: |
263+
set -euo pipefail
264+
265+
for py_ver in $PY_VERSIONS; do
266+
echo
267+
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"
268+
269+
echo "Entering pixi project directory easydynamics_py$py_ver"
270+
cd easydynamics_py$py_ver
271+
272+
echo "Running tests"
273+
pixi run python -m pytest ../tests/functional/ --color=yes -v
240274
241275
echo "Exiting pixi project directory"
242276
cd ..

.github/workflows/tutorial-tests.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ jobs:
4545
- name: Set up pixi
4646
uses: ./.github/actions/setup-pixi
4747

48-
- name: Test tutorials as python scripts
49-
shell: bash
50-
run: pixi run script-tests
51-
5248
- name: Prepare notebooks
5349
shell: bash
5450
run: pixi run notebook-prepare

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,6 @@ CMakeLists.txt.user*
4141
*.dmg
4242

4343
# Misc
44+
.cache/
4445
*.log
4546
*.zip

.pre-commit-config.yaml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,6 @@ repos:
3939
pass_filenames: false
4040
stages: [manual]
4141

42-
- id: pixi-docstring-format-check
43-
name: pixi run docstring-format-check
44-
entry: pixi run docstring-format-check
45-
language: system
46-
pass_filenames: false
47-
stages: [manual]
48-
4942
- id: pixi-nonpy-format-check
5043
name: pixi run nonpy-format-check
5144
entry: pixi run nonpy-format-check

.prettierignore

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# Git
2+
.git/
3+
14
# Copier
25
.copier-answers*.yml
36

@@ -14,4 +17,16 @@ docs/docs/assets/
1417
.pytest_cache/
1518

1619
# MyPy
17-
.mypy_cache
20+
.mypy_cache/
21+
22+
# Ruff
23+
.ruff_cache/
24+
25+
# Node
26+
node_modules
27+
28+
# Misc
29+
.benchmarks
30+
.cache
31+
deps/
32+
tmp/

0 commit comments

Comments
 (0)