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
8 changes: 5 additions & 3 deletions .github/workflows/desktop-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
matrix:
include:
- os: macos-14 # Apple silicon
platform: macOS-arm64
platform: macOS-AppleSilicon
- os: macos-15-intel # Intel
platform: macOS-Intel
- os: windows-latest
Expand Down Expand Up @@ -121,7 +121,9 @@ jobs:
- name: Package .dmg
if: runner.os == 'macOS'
env:
NAME: MEA-NAP-${{ steps.version.outputs.version }}-${{ matrix.platform }}
# No version in the name: the docs link to
# releases/latest/download/<name>, which needs the same name every release.
NAME: MEA-NAP-${{ matrix.platform }}
run: |
staging=packaging/build/dmg
rm -rf "$staging" && mkdir -p "$staging"
Expand All @@ -143,7 +145,7 @@ jobs:
/DSourceDir="$PWD\packaging\dist\MEA-NAP" `
/DOutputDir="$PWD\packaging\dist" `
packaging\windows\meanap.iss
$asset = "packaging/dist/MEA-NAP-${{ steps.version.outputs.version }}-${{ matrix.platform }}-Setup.exe"
$asset = "packaging/dist/MEA-NAP-${{ matrix.platform }}-Setup.exe"
"ASSET=$asset" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8

- uses: actions/upload-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
> [!IMPORTANT]
> **MEA-NAP is now available in Python (beta).** It is much faster and introduces a lot of new features. The MATLAB version is still supported.
>
> [**Read the release note**](release_notes/python-beta.md) · [**Download the app**](docs/python/installation.md#the-desktop-app-easiest) (Windows, Mac) · [**Install from source**](docs/python/installation.md#from-the-source-code) · [**Quickstart**](docs/python/quickstart.md) · [**MATLAB vs Python**](docs/python/matlab-vs-python.md) · [**Send us feedback**](https://github.com/SAND-Lab/MEA-NAP/discussions)
> [**Read the release note**](release_notes/python-beta.md) · [**Download the app**](https://analysis-pipeline.readthedocs.io/en/latest/python/installation.html#the-desktop-app-easiest) (Windows, Mac) · [**Install from source**](https://analysis-pipeline.readthedocs.io/en/latest/python/installation.html#from-the-source-code) · [**Quickstart**](docs/python/quickstart.md) · [**MATLAB vs Python**](docs/python/matlab-vs-python.md) · [**Send us feedback**](https://github.com/SAND-Lab/MEA-NAP/discussions)

![Visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2FSAND-Lab%2FAnalysisPipeline&label=Visitors&countColor=%23263759)
[![Documentation Status](https://readthedocs.org/projects/analysis-pipeline/badge/?version=latest)](https://analysis-pipeline.readthedocs.io/en/latest/?badge=latest)
Expand Down
1 change: 1 addition & 0 deletions docs/imgs/download-mac.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/imgs/download-windows.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 24 additions & 34 deletions docs/python/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,21 @@ same results.

## The desktop app (easiest)

Download the file for your computer from the
[**latest release**](https://github.com/SAND-Lab/MEA-NAP/releases/latest)
on GitHub, under **Assets**:
Click the logo for your computer. The download starts straight away, and is
always the newest version.

| Computer | File |
|---|---|
| Windows 10 or 11 (64-bit) | `MEA-NAP-<version>-Windows-x64-Setup.exe` |
| Mac with Apple silicon (M1, M2, M3, M4 …) | `MEA-NAP-<version>-macOS-arm64.dmg` |
| Mac with an Intel processor | `MEA-NAP-<version>-macOS-Intel.dmg` |
| [![Download for Windows](../imgs/download-windows.svg)](https://github.com/SAND-Lab/MEA-NAP/releases/latest/download/MEA-NAP-Windows-x64-Setup.exe) | [![Download for Mac with Apple silicon](../imgs/download-mac.svg)](https://github.com/SAND-Lab/MEA-NAP/releases/latest/download/MEA-NAP-macOS-AppleSilicon.dmg) | [![Download for Mac with Intel](../imgs/download-mac.svg)](https://github.com/SAND-Lab/MEA-NAP/releases/latest/download/MEA-NAP-macOS-Intel.dmg) |
|:---:|:---:|:---:|
| [**Windows**](https://github.com/SAND-Lab/MEA-NAP/releases/latest/download/MEA-NAP-Windows-x64-Setup.exe)<br>Windows 10 or 11 | [**Mac – Apple silicon**](https://github.com/SAND-Lab/MEA-NAP/releases/latest/download/MEA-NAP-macOS-AppleSilicon.dmg)<br>M1, M2, M3, M4 … | [**Mac – Intel**](https://github.com/SAND-Lab/MEA-NAP/releases/latest/download/MEA-NAP-macOS-Intel.dmg)<br>older Macs |

Not sure which Mac you have? Apple menu → **About This Mac**: "Chip: Apple M…"
means Apple silicon; "Processor: … Intel …" means an Intel Mac. Either needs
macOS 12 (Monterey) or later.

The download is about 150 MB (about 700 MB once installed): it carries its own Python
What changed in each version, and older versions, are on the
[releases page](https://github.com/SAND-Lab/MEA-NAP/releases).

The download is 130–180 MB (about 700 MB once installed): it carries its own Python
and every library MEA-NAP uses, including OASIS for CAT-NAP and the spike
sorters.

Expand All @@ -48,11 +48,9 @@ In Edge, it's the **…** beside the download → **Keep** → **Show more** →
[GitHub releases page](https://github.com/SAND-Lab/MEA-NAP/releases) — that is
what makes it safe to click through.

:::::{tab-set}

::::{tab-item} Windows
### Installing on Windows

1. Double-click `MEA-NAP-…-Setup.exe`.
1. Double-click `MEA-NAP-Windows-x64-Setup.exe`.
2. Windows may show **"Windows protected your PC"**. This appears for any
app that is not yet signed with a paid certificate. Click
**More info**, then **Run anyway**.
Expand All @@ -64,11 +62,9 @@ To update, download the newer installer and run it: it replaces the old
version and keeps your settings. To uninstall: **Settings → Apps → Installed
apps → MEA-NAP → Uninstall**.

::::
### Installing on a Mac

::::{tab-item} macOS

1. Double-click the `MEA-NAP-…-macOS-….dmg` you downloaded, then drag **MEA-NAP** onto
1. Double-click the `MEA-NAP-macOS-….dmg` you downloaded, then drag **MEA-NAP** onto
the **Applications** folder in the window that opens.
2. Open MEA-NAP from Applications (or Launchpad). The first time, macOS says
it **"could not verify MEA-NAP is free of malware"** (older macOS: "cannot
Expand Down Expand Up @@ -96,9 +92,7 @@ again:
xattr -dr com.apple.quarantine /Applications/MEA-NAP.app
```

::::

:::::
### Good to know

**The first analysis is slower than later ones.** Parts of step 4 are compiled
for your processor the first time they run, and the result is kept for next
Expand Down Expand Up @@ -187,12 +181,13 @@ If a fresh install fails with `error: command 'cmake' not found`, `clang: error:
unsupported option '-fopenmp'`, or a long `Building wheel for ... did not run
successfully` traceback, it's almost always one of the three above missing.

### Installing

Install with either uv or pip — **from the `MEA-NAP` folder** you changed into
above. If you have opened a new terminal since then, `cd` back into it first.

::::{tab-set}
#### With uv (recommended)

:::{tab-item} uv (recommended)
[uv](https://docs.astral.sh/uv/) manages the virtual environment and the
lockfile (`uv.lock`) for you, so every contributor gets identical dependency
versions.
Expand All @@ -215,9 +210,9 @@ don't need to activate the environment — prefix commands with `uv run`:
```bash
uv run meanap-gui
```
:::

:::{tab-item} pip / venv
#### With pip / venv

If you'd rather manage your own virtual environment — again from the
`MEA-NAP` folder:

Expand All @@ -234,22 +229,17 @@ This installs `meanap` in editable mode using the dependencies declared in
```bash
meanap-gui
```
:::

::::

The same install gives the `meanap` command, which runs a saved parameter
file without the GUI — see [Running from the command line](command-line.md).
On a machine with no screen, `meanap example` is a quick check that
everything works.

:::{admonition} "No `pyproject.toml` found" / "Neither 'setup.py' nor 'pyproject.toml' found"
:class: tip
Both errors mean the same thing: the command ran in the wrong directory. Run
`pwd` — the path should end in `/MEA-NAP` — and `ls`, which should list
`pyproject.toml` next to the `src/`, `python/` and `docs/` folders. If you are
inside `python/`, run `cd ..` and try again.
:::
> **"No `pyproject.toml` found" / "Neither 'setup.py' nor 'pyproject.toml'
> found"?** Both errors mean the same thing: the command ran in the wrong
> directory. Run `pwd` — the path should end in `/MEA-NAP` — and `ls`, which
> should list `pyproject.toml` next to the `src/`, `python/` and `docs/`
> folders. If you are inside `python/`, run `cd ..` and try again.

### Optional: OASIS deconvolution (CAT-NAP)

Expand Down
5 changes: 3 additions & 2 deletions packaging/windows/meanap.iss
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
; Inno Setup script for the MEA-NAP Windows installer.
;
; iscc /DAppVersion=1.12.0 /DSourceDir=packaging\dist\MEA-NAP /DOutputDir=out packaging\windows\meanap.iss
; iscc /DAppVersion=1.13.0 /DSourceDir=packaging\dist\MEA-NAP /DOutputDir=out packaging\windows\meanap.iss
;
; Installs for the current user only (no administrator rights, which many
; university-managed PCs don't give), into %LOCALAPPDATA%\Programs\MEA-NAP.
Expand Down Expand Up @@ -34,7 +34,8 @@ PrivilegesRequiredOverridesAllowed=dialog
ArchitecturesAllowed=x64compatible
ArchitecturesInstallIn64BitMode=x64compatible
OutputDir={#OutputDir}
OutputBaseFilename=MEA-NAP-{#AppVersion}-Windows-x64-Setup
; No version: the docs link to releases/latest/download/<this name>.
OutputBaseFilename=MEA-NAP-Windows-x64-Setup
SetupIconFile=..\build\icon.ico
UninstallDisplayIcon={app}\MEA-NAP.exe
Compression=lzma2/max
Expand Down
1 change: 1 addition & 0 deletions python/DESKTOP_APP_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ it, and gets the MEA-NAP GUI. Today's route — git clone, `uv sync`,
| Extras inside | **OASIS** (CAT-NAP denoising; without it results silently differ) and **spike sorting** (SpikeInterface + MountainSort5 + hdbscan). |
| Left out | CAT-NAP **cell tracking** (needs `roicat` → PyTorch, not a declared dependency); **Kilosort**; **launching MATLAB / old MATLAB-only releases**; switching between versions in place. |
| Distribution | `.dmg` (macOS) and a setup `.exe` (Windows, Inno Setup), built by GitHub Actions on each **official** release tag (and on demand) and attached to the GitHub release. Not on every dev build: hundreds of MB per merge. |
| Download links | Asset names carry **no version** (`MEA-NAP-Windows-x64-Setup.exe`, `MEA-NAP-macOS-AppleSilicon.dmg`, `MEA-NAP-macOS-Intel.dmg`) so the install page can link to `releases/latest/download/<name>`, one click, always the newest. README → the docs site's install page (MyST doesn't render on GitHub). |
| Updates | The app checks GitHub's releases (public repo, no git, no login) and offers a link to download the newer one. |

## What has to change in the code
Expand Down
Loading