Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 3 additions & 3 deletions .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# WARNING: Do not edit this file manually.
# Any changes will be overwritten by Copier.
_commit: v0.10.1-38-g85fbe04
_commit: v0.10.1-41-g508666e
_src_path: gh:easyscience/templates
app_docs_url: https://easyscience.github.io/dynamics-app
app_doi: 10.5281/zenodo.18877180
Expand All @@ -12,8 +12,8 @@ home_repo_name: dynamics
lib_docs_url: https://easyscience.github.io/dynamics-lib
lib_doi: 10.5281/zenodo.18877180
lib_package_name: easydynamics
lib_python_max: '3.12'
lib_python_min: '3.11'
lib_python_max: '3.14'
lib_python_min: '3.12'
lib_repo_name: dynamics-lib
project_contact_email: henrik.jacobsen@ess.eu
project_copyright_years: 2025-2026
Expand Down
24 changes: 10 additions & 14 deletions .github/workflows/pypi-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,30 +45,26 @@ jobs:
- name: Init pixi project
run: pixi init easydynamics

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

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

- name: Add easydynamics from PyPI
- name: Add easydynamics (with dev dependencies) from PyPI
working-directory: easydynamics
run: pixi add --pypi "easydynamics"

- name: Add dev dependencies from PyPI
working-directory: easydynamics
run: pixi add --pypi pytest pytest-xdist

- name: Add Pixi task as a shortcut
working-directory: easydynamics
run: pixi task add easydynamics "python -m easydynamics"
run: pixi add --pypi "easydynamics[dev]"

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

- name: Run functional tests to verify the installation
working-directory: easydynamics
run: pixi run python -m pytest ../tests/functional/ --color=yes -v

- name: Run integration tests to verify the installation
working-directory: easydynamics
run: pixi run python -m pytest ../tests/integration/ --color=yes -n auto
Expand Down
44 changes: 39 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ concurrency:
# Set the environment variables to be used in all jobs defined in this workflow
env:
CI_BRANCH: ${{ github.head_ref || github.ref_name }}
PY_VERSIONS: '3.11 3.12'
PIXI_ENVS: 'py-311-env py-312-env'
PY_VERSIONS: '3.12 3.14'
PIXI_ENVS: 'py-312-env py-314-env'

jobs:
# Job 1: Set up environment variables
Expand Down Expand Up @@ -96,12 +96,27 @@ jobs:
echo
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"

env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.11 -> py-311-env
env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env

echo "Running tests in environment: $env"
pixi run --environment $env unit-tests
done

- name: Run functional tests
shell: bash
run: |
set -euo pipefail

for py_ver in $PY_VERSIONS; do
echo
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"

env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env

echo "Running tests in environment: $env"
pixi run --environment $env functional-tests
done

- name: Run integration tests ${{ needs.env-prepare.outputs.pytest-marks }}
shell: bash
run: |
Expand All @@ -111,7 +126,7 @@ jobs:
echo
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"

env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.11 -> py-311-env
env="py-$(echo $py_ver | tr -d .)-env" # Converts 3.XX -> py-3XX-env

echo "Running tests in environment: $env"
pixi run --environment $env integration-tests ${{ needs.env-prepare.outputs.pytest-marks }}
Expand Down Expand Up @@ -236,7 +251,26 @@ jobs:
cd easydynamics_py$py_ver

echo "Running tests"
pixi run python -m pytest ../tests/unit/ --color=yes --cov= --cov-report=
pixi run python -m pytest ../tests/unit/ --color=yes -v

echo "Exiting pixi project directory"
cd ..
done

- name: Run functional tests
shell: bash
run: |
set -euo pipefail

for py_ver in $PY_VERSIONS; do
echo
echo "🔹🔸🔹🔸🔹 Python: $py_ver 🔹🔸🔹🔸🔹"

echo "Entering pixi project directory easydynamics_py$py_ver"
cd easydynamics_py$py_ver

echo "Running tests"
pixi run python -m pytest ../tests/functional/ --color=yes -v

echo "Exiting pixi project directory"
cd ..
Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/tutorial-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@ jobs:
- name: Set up pixi
uses: ./.github/actions/setup-pixi

- name: Test tutorials as python scripts
shell: bash
run: pixi run script-tests

- name: Prepare notebooks
shell: bash
run: pixi run notebook-prepare
Expand Down
32 changes: 21 additions & 11 deletions docs/docs/installation-and-setup/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ icon: material/cog-box
# :material-cog-box: Installation & Setup

**EasyDynamics** is a cross-platform Python library compatible with
**Python 3.11** through **3.12**.
**Python 3.12** through **3.14**.

To install and set up EasyDynamics, we recommend using
[**Pixi**](https://pixi.prefix.dev), a modern package manager for
Expand Down Expand Up @@ -62,9 +62,9 @@ This section describes the simplest way to set up EasyDynamics using
pixi init easydynamics
cd easydynamics
```
- Set the Python version for the Pixi environment (e.g., 3.12):
- Set the Python version for the Pixi environment (e.g., 3.14):
```txt
pixi add python=3.12
pixi add python=3.14
```
- Add EasyDynamics to the Pixi environment from PyPI:
```txt
Expand Down Expand Up @@ -231,26 +231,36 @@ first. This can be done individually via the :material-download:

- Navigate to your existing Pixi project, created as described in the
[Installing with Pixi](#installing-with-pixi) section.
- Launch the Jupyter Lab server:
- Add JupyterLab and the Pixi kernel for Jupyter:
```txt
pixi run jupyter lab
pixi add --pypi jupyterlab pixi-kernel
```
- Download the EasyDynamics tutorials to the `tutorials/` directory.
- Start JupyterLab in the `tutorials/` directory to access the
notebooks:
```txt
pixi run jupyter lab tutorials/
```
- Your web browser should open automatically. Click on one of the
`*.ipynb` files downloaded previously and select the `Python (Pixi)`
kernel to get started.
`*.ipynb` files and select the `Python (Pixi)` kernel to get started.

### Classical Run Tutorials Locally

- Install Jupyter Notebook and IPython kernel:
```txt
pip install notebook ipykernel
```
- Add the virtual environment as a Jupyter kernel:
```txt
python -m ipykernel install --user --name=venv --display-name "EasyDynamics Python kernel"
```
- Launch the Jupyter Notebook server:
- Download the EasyDynamics tutorials to the `tutorials/` directory.
- Launch the Jupyter Notebook server (opens browser automatically at
`http://localhost:8888/`):
```txt
jupyter notebook
jupyter notebook tutorials/
```
- Your web browser should open automatically. Click on one of the
`*.ipynb` files downloaded previously and select the
- Open one of the `*.ipynb` files and select the
`EasyDynamics Python kernel` to get started.

### Run Tutorials via Google Colab
Expand Down
Loading
Loading