Skip to content
Closed
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
31 changes: 31 additions & 0 deletions .github/workflows/build_wheels.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Build

on: [push, pull_request]

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# macos-13 is an intel runner, macos-14 is apple silicon
#os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-13, macos-14]
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v5

- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
# env:
# CIBW_SOME_OPTION: value
# ...
with:
package-dir: .
output-dir: wheelhouse
config-file: "{package}/pyproject.toml"

- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
1 change: 1 addition & 0 deletions docs/NAVIGATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@ See https://oprypin.github.io/mkdocs-literate-nav/
- [Dependency pinning and testing](further-background/dependency-pinning-and-testing.md)
- [Development](development.md)
- [API reference](api/example_fgen_basic/)
- [Fortran API](fortran-api/index.html)
- [Changelog](changelog.md)
29 changes: 29 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,35 @@ Try and keep your merge requests as small as possible
This makes life much easier for reviewers
which allows contributions to be accepted at a faster rate.

## Using uv with a compiled package

Using uv with a compiled package is a bit more painful.
Whenever you do `uv run` or `uv sync` or similar,
uv tries to install the compiled package as an editable package.
This can then cause issues on later calls to `uv run` or `uv sync`
as having compiled packages as editable packages doesn't really work
(you get errors like
`ImportError: re-building the <package-name> meson-python editable wheel package failed`).
The way around this is to:

1. use the `--no-editable` flag with `uv sync`
so that uv doesn't do an editable install
1. use the `--no-sync` flag with `uv run`
(and any other command that takes this flag)
so that `uv` doesn't try and re-build packages
1. use the `--reinstall-package` flag with `uv run`
whenever you want to be sure that the latest changes
will be used for running a command
(yes, this makes running things slower,
but slower and reliable is better than broken)

We include these flags in our `Makefile` and GitHub workflows
if you want to see them in use.

If you forget and run `uv run ...` in your terminal.
The easiest solution seems to be to delete your virtual environment entirely and start again.
We haven't found a way to get out of an accidental editable install.

## Language

We use British English for our development.
Expand Down
Loading