Skip to content

Document and test experimental pip installation - #1270

Open
shimwell wants to merge 1 commit into
festim-dev:mainfrom
shimwell:docs-experimental-pip-install
Open

shimwell wants to merge 1 commit into
festim-dev:mainfrom
shimwell:docs-experimental-pip-install

Conversation

@shimwell

@shimwell shimwell commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Description

Summary

This is as smooth as I can make the pip install for a while. Making better (no use of --pre or avoiding the extra index) is blocked by releases and PRs upstream which will take at least 2 weeks. So I'm not sure if you want this level of experimental installation in your docs but just in case you are interested here is a PR for your consideration.

Documents an optional experimental pip installation route for FESTIM using the FEniCSx/PETSc/scifem wheel index.

Adds a dedicated CI workflow that installs the documented dependency stack, installs FESTIM from the checked-out source, checks dependency consistency, and runs the complete existing pytest suite.

Related Issues

None.

Motivation and Context

FESTIM is available from PyPI, but its compiled FEniCSx stack has traditionally required Conda, Docker, or a source build. The experimental wheel index provides another route for Python 3.12 and newer on Linux x86_64 and aarch64.

The wheel stack currently contains a pre-release DOLFINx version, so this workflow also exposes compatibility changes before that version is released.

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 🔨 Code refactoring (no functional changes, no API changes)
  • 📝 Documentation update
  • ✅ Test update (adding missing tests or correcting existing tests)
  • 🔧 Build/CI configuration change

Testing

  • The new workflow runs the complete existing pytest suite
  • The workflow checks the installed environment with python -m pip check
  • Workflow YAML parses successfully
  • git diff --check

Code Quality Checklist

  • My code follows the code style of this project
  • I have performed a self-review of my own code
  • Comments are limited to the non-obvious UCX runner workaround

Documentation

  • I have updated the documentation accordingly
  • New public functions/classes do not apply

Additional Notes

The CI sets UCX_TLS=self,tcp because some GitHub-hosted Azure runners expose an unusable MANA verbs interface during MPI initialization. The existing FESTIM workflows use a comparable UCX transport restriction.

@codecov

codecov Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.86%. Comparing base (3e37dab) to head (73dbcab).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1270   +/-   ##
=======================================
  Coverage   95.86%   95.86%           
=======================================
  Files          57       57           
  Lines        5036     5036           
=======================================
  Hits         4828     4828           
  Misses        208      208           
Flag Coverage Δ
dolfinx-v0.10.0 92.91% <ø> (ø)
dolfinx-v0.11.0 95.75% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Co-authored-by: Jon Shimwell <174589458+jon-proximafusion@users.noreply.github.com>
@shimwell
shimwell force-pushed the docs-experimental-pip-install branch from 64652ce to 73dbcab Compare September 16, 2026 13:19
@RemDelaporteMathurin

Copy link
Copy Markdown
Collaborator

@shimwell thanks for this! My udnerstanding is that the current dolfinx pip install is pinned to some development version, correct?

@shimwell

shimwell commented Sep 16, 2026

Copy link
Copy Markdown
Contributor Author

@shimwell thanks for this! My udnerstanding is that the current dolfinx pip install is pinned to some development version, correct?

Yes, this can be changed after the next release but for now the development version is needed as it contains a few PRs of mine that make this pip install possible and these are not yet in the released version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants