Skip to content

Commit 3143fbc

Browse files
committed
BUILD: pypi publishing
1 parent e8a69a9 commit 3143fbc

7 files changed

Lines changed: 95 additions & 14 deletions

File tree

.github/workflows/publish-pypi.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
publish:
12+
runs-on: ubuntu-latest
13+
environment:
14+
name: pypi
15+
permissions:
16+
contents: read
17+
id-token: write
18+
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
23+
- name: Set up Python
24+
uses: actions/setup-python@v5
25+
with:
26+
python-version: "3.11"
27+
28+
- name: Install uv
29+
uses: astral-sh/setup-uv@v5
30+
31+
- name: Build distributions
32+
run: uv build --all-packages --no-sources --out-dir dist
33+
34+
- name: Publish distributions
35+
run: uv publish --trusted-publishing always dist/*

README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,21 @@ task-manager, tool, memory, skill, and WebUI primitives. The repository is a
1313

1414
## Installation
1515

16-
### Option 1: `uv` Workspace Sync (recommended)
16+
### Option 1: PyPI
17+
18+
Install the core runtime:
19+
20+
```bash
21+
pip install eaa-core
22+
```
23+
24+
Install the core runtime plus the domain packages:
25+
26+
```bash
27+
pip install eaa-core eaa-imaging eaa-spectroscopy
28+
```
29+
30+
### Option 2: `uv` Workspace Sync
1731

1832
From the repository root:
1933

@@ -29,7 +43,7 @@ This installs the workspace members into the repository-local environment as
2943
editable packages. Use `--all-extras` for local development so optional
3044
dependencies needed by docs, memory, and workflow examples are not removed.
3145

32-
### Option 2: `pip`
46+
### Option 3: Editable Source Install
3347

3448
```bash
3549
python -m venv .venv

docs/installation.md

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
# Installation
22

3-
## Recommended: `uv`
3+
## PyPI
4+
5+
Install the core runtime:
6+
7+
```bash
8+
pip install eaa-core
9+
```
10+
11+
Install the core runtime plus the domain packages:
12+
13+
```bash
14+
pip install eaa-core eaa-imaging eaa-spectroscopy
15+
```
16+
17+
## Source development with `uv`
418

519
At the repository root:
620

@@ -12,6 +26,24 @@ which python
1226

1327
After activation, `which python` should resolve to `.venv/bin/python`.
1428

29+
To sync a smaller source-development environment, select a workspace package.
30+
Domain packages depend on `eaa-core`, so selecting one domain package also
31+
installs the core runtime:
32+
33+
```bash
34+
# Core runtime only
35+
uv sync --package eaa-core
36+
37+
# Core runtime plus imaging
38+
uv sync --package eaa-imaging
39+
40+
# Core runtime plus spectroscopy
41+
uv sync --package eaa-spectroscopy
42+
43+
# Core runtime plus both domain packages
44+
uv sync --all-packages
45+
```
46+
1547
Optional extras are declared in `pyproject.toml`. The most relevant ones are:
1648

1749
- `docs` for the Material for MkDocs documentation toolchain
@@ -26,7 +58,7 @@ extra set with:
2658
uv sync --extra docs
2759
```
2860

29-
## Editable install with `pip`
61+
## Editable source install with `pip`
3062

3163
```bash
3264
python -m venv .venv

packages/eaa-core/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "eaa-core"
7-
version = "0.1.0"
7+
version = "1.0.0"
88
description = "Core runtime, shared tooling, and generic task managers for EAA."
99
requires-python = ">=3.11"
1010
dependencies = [

packages/eaa-imaging/pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "eaa-imaging"
7-
version = "0.1.0"
7+
version = "1.0.0"
88
description = "Imaging and microscopy task managers, tools, and adapters for EAA."
99
requires-python = ">=3.11"
1010
dependencies = [
11-
"eaa-core>=0.1.0",
11+
"eaa-core>=1.0.0,<2.0.0",
1212
"numpy",
1313
"pillow",
1414
"requests",
@@ -19,7 +19,7 @@ dependencies = [
1919

2020
[project.optional-dependencies]
2121
bo = [
22-
"eaa-core[bo]>=0.1.0",
22+
"eaa-core[bo]>=1.0.0,<2.0.0",
2323
]
2424
dev = [
2525
"pytest",

packages/eaa-spectroscopy/pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "eaa-spectroscopy"
7-
version = "0.1.0"
7+
version = "1.0.0"
88
description = "Spectroscopy tools and adaptive-sampling task managers for EAA."
99
requires-python = ">=3.11"
1010
dependencies = [
11-
"eaa-core>=0.1.0",
11+
"eaa-core>=1.0.0,<2.0.0",
1212
"numpy",
1313
"scipy",
1414
]
1515

1616
[project.optional-dependencies]
1717
bo = [
18-
"eaa-core[bo]>=0.1.0",
18+
"eaa-core[bo]>=1.0.0,<2.0.0",
1919
]
2020
dev = [
2121
"pytest",

uv.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)