You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To enable curvelet-powered features and tests you must build and install FFTW 2.1.5 and CurveLab, then install `curvelops`.
36
29
37
-
macOS/Linux outline:
30
+
To enable curvelet-powered features and tests you must build FFTW 2.1.5 and CurveLab, then install with curvelops. Use the automated script:
31
+
32
+
**Prerequisites:** Clone this repo, install [uv](https://docs.astral.sh/uv/), and download CurveLab to `../utils` (see [doc/INSTALL.md](doc/INSTALL.md)).
33
+
34
+
macOS/Linux:
38
35
```bash
39
-
# 1) Build FFTW 2.1.5 (C only)
40
-
curl -L -O http://www.fftw.org/fftw-2.1.5.tar.gz
41
-
tar xzf fftw-2.1.5.tar.gz
42
-
cd fftw-2.1.5
43
-
# If configure fails on macOS due to outdated config.{sub,guess}, update them from your system
- Recommended: use WSL2 (Ubuntu). Follow the macOS/Linux steps inside WSL.
66
-
- Native Windows: use MSYS2 (for `gcc`, `make`) or Visual Studio toolchain; build FFTW 2.1.5 and CurveLab from source, set `FFTW` and `FDCT` env vars to their install roots, then install `curvelops` as above. Supervisors can validate these steps on a Windows host.
42
+
- Native Windows: use MSYS2 (for `gcc`, `make`) or Visual Studio toolchain; build FFTW 2.1.5 and CurveLab from source, set `FFTW` and `FDCT` env vars to their install roots, then use `uv` commands as above.
43
+
44
+
### Development
45
+
46
+
See [doc/DEVELOPMENT.md](doc/DEVELOPMENT.md) for plugin setup and troubleshooting. Running tests:
- Full tests with curvelets (after installing `curvelops`):
79
-
```bash
80
-
export TMEQ_RUN_CURVELETS=1
81
-
pytest -q
82
-
```
57
+
- Full tests with curvelets (after installing `curvelops`): `make test` — curvelet tests run automatically when curvelops is available; otherwise skipped.
83
58
84
59
Notes:
85
60
- The napari test is an import-only smoke test (no `Viewer` is created); it runs headless.
@@ -93,10 +68,47 @@ Testing policy:
93
68
### Continuous integration
94
69
- CI installs the package without `curvelops` to avoid building FFTW/CurveLab on runners.
95
70
- CI environment:
96
-
-`TMEQ_RUN_CURVELETS=0` (curvelet tests skipped)
71
+
-Curvelet tests skipped (curvelops not installed on CI)
This project uses GitHub Actions secrets for tasks that require authentication or access to private resources. Secrets can be configured in the [Settings tab of the repostiory](https://github.com/uw-loci/tme-quant/settings/secrets/actions). For more information about secrets, see:
76
+
-[Secrets as a concept](https://docs.github.com/en/actions/concepts/security/secrets)
77
+
-[Secrets in actions](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions).
78
+
79
+
#### Manual testing workflow
80
+
The `manual-test` workflow allows developers to manually trigger workflows from the GitHub UI without committing changes to `main`. This is useful for testing workflows that require secrets on topic branches.
81
+
82
+
**How to use it:**
83
+
84
+
1. Create or edit `.github/workflows/test-action.yml` to define your workflow's structure and declare which secrets it needs via the `secrets:` input in `workflow_call`:
85
+
```yaml
86
+
on:
87
+
workflow_call:
88
+
secrets:
89
+
MY_SECRET_NAME:
90
+
ANOTHER_SECRET:
91
+
92
+
jobs:
93
+
my-job:
94
+
runs-on: ubuntu-latest
95
+
steps:
96
+
- name: Use a secret
97
+
run: echo "Secret is ${{ secrets.MY_SECRET_NAME }}"
98
+
```
99
+
100
+
2. The `manual-test` workflow (`.github/workflows/manual-test.yml`) will call `test-action.yml` and pass repository secrets to it via `secrets: inherit`.
101
+
102
+
3. To trigger the workflow:
103
+
- Push your branch with the updated `test-action.yml` to GitHub.
104
+
- Go to the **Actions** tab in the repository and select the **[Manual Testing Stub](https://github.com/uwloci/tme-quant/actions/workflows/manual-test.yml)** workflow.
105
+
- Click **Run workflow** and select your branch.
106
+
- The workflow will execute with access to all secrets configured for the repository.
107
+
108
+
**NOTE**
109
+
- Never hardcode secrets or access tokens in workflow files; always use the `secrets:` context.
110
+
99
111
### Troubleshooting
100
-
- Qt error ("No Qt bindings could be found"): install `pyqt` (or `pyside2`) from conda-forge.
112
+
- Qt error ("No Qt bindings could be found"): ensure `uv sync` completed; pyproject includes PyQt6.
101
113
- Segfault on Viewer creation: avoid creating a `napari.Viewer()` in tests; we only import napari and run offscreen.
102
114
- curvelops build errors: ensure `FFTW` and `FDCT` point to your install roots and the 2D/3D libraries were built.
0 commit comments