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
5 changes: 2 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,8 @@ jobs:
run: |
set -euo pipefail
VER="$(python -c "import re,pathlib; t=pathlib.Path('pyproject.toml').read_text(); m=re.search(r'version\\s*=\\s*\\\"([^\\\"]+)\\\"', t); print(m.group(1))")"
# Prefer matching engine tag; fall back to v1.2.4 if pin differs
python scripts/vendor_release_assets.py --from-release "v${VER}" --force \
|| python scripts/vendor_release_assets.py --from-release v1.2.4 --force
# Release metadata and shipped assets must track the matching engine tag.
python scripts/vendor_release_assets.py --from-release "v${VER}" --force
test -f cortext/models/manifest.json
python - <<'PY'
from cortext.assets import package_assets_ready, platform_tag, host_library_path, PACKAGE_DIR
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
workflow_dispatch:
inputs:
tag:
description: "Release tag to build/publish (e.g. v1.2.4). Empty = package version from pyproject."
description: "Release tag to build/publish (e.g. v1.3.0). Empty = package version from pyproject."
required: false
default: ""
cortext_assets_tag:
Expand Down
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ AIST model chunks — install is offline after the wheel download.

```bash
# Replace version as needed
export CORTEXT_VERSION=1.2.4
export CORTEXT_VERSION=1.3.0
export CORTEXT_INDEX="https://github.com/augmem/cortext.py/releases/download/v${CORTEXT_VERSION}/index.html"

pip install "cortext==${CORTEXT_VERSION}" --find-links "${CORTEXT_INDEX}"
Expand All @@ -34,14 +34,14 @@ internal index:
```bash
tar -xzf simple-index.tar.gz
# serve the extracted simple/ directory, then:
pip install cortext==1.2.4 --index-url https://your-mirror.example/simple/
pip install cortext==1.3.0 --index-url https://your-mirror.example/simple/
```

### Local wheelhouse / editable checkout

```bash
# After scripts/build_wheels.py
pip install cortext==1.2.4 --find-links dist/wheels --no-index
pip install cortext==1.3.0 --find-links dist/wheels --no-index

# Dev monorepo (all six natives in-tree)
uv sync
Expand All @@ -62,7 +62,7 @@ with cortext.Cortext(":memory:") as memory:
For binary attachments, pass `Media(data, mimetype)` or raw bytes with
`media_mimetype` to `process_text_with_media`.

Python 3.10+. Binding **1.2.4** tracks engine **v1.2.4**.
Python 3.10+. Binding **1.3.0** tracks engine **v1.3.0**.

## Why not pypi.org?

Expand All @@ -80,7 +80,7 @@ same way.
Local full tree after clone:

```bash
python3 scripts/vendor_release_assets.py --from-release v1.2.4 --force
python3 scripts/vendor_release_assets.py --from-release v1.3.0 --force
uv sync && uv run pytest -q
```

Expand Down Expand Up @@ -125,25 +125,25 @@ No sibling checkouts and no runtime GitHub download on the happy path.

```bash
# 1) Vendor engine assets (or rely on CI to fetch augmem/cortext release)
python3 scripts/vendor_release_assets.py --from-release v1.2.4 --force
python3 scripts/vendor_release_assets.py --from-release v1.3.0 --force

# 2) Build platform wheels + local indexes
python3 scripts/build_wheels.py

# 3) Tag + push — CI (.github/workflows/release-wheels.yml) builds, writes
# absolute-URL indexes, and uploads everything to the GitHub Release
git tag v1.2.4
git push origin v1.2.4
git tag v1.3.0
git push origin v1.3.0
```

Manual publish of an existing wheelhouse:

```bash
BASE="https://github.com/augmem/cortext.py/releases/download/v1.2.4"
python3 scripts/write_wheel_index.py dist/wheels --version 1.2.4 --base-url "$BASE"
gh release create v1.2.4 dist/wheels/*.whl dist/wheels/index.html \
BASE="https://github.com/augmem/cortext.py/releases/download/v1.3.0"
python3 scripts/write_wheel_index.py dist/wheels --version 1.3.0 --base-url "$BASE"
gh release create v1.3.0 dist/wheels/*.whl dist/wheels/index.html \
dist/wheels/install.sh dist/wheels/INSTALL.md \
--title "cortext.py 1.2.4" --notes-file dist/wheels/INSTALL.md
--title "cortext.py 1.3.0" --notes-file dist/wheels/INSTALL.md
```

## API
Expand Down
4 changes: 2 additions & 2 deletions cortext/assets-manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schema": "augmem.cortext.release_assets.v1",
"cortext_version": "1.2.4",
"cortext_version": "1.3.0",
"optimize": "ReleaseSmall",
"layout": {
"native": "native/",
Expand Down Expand Up @@ -56,7 +56,7 @@
},
"models": {
"schema": "augmem.cortext.models.v1",
"cortext_version": "1.2.4",
"cortext_version": "1.3.0",
"note": "AIST model is Git-chunked under 100 MiB so it can live in ordinary Git without LFS. Language bindings reassemble and checksum on first use; do not re-shard in binding repos \u2014 copy this tree from cortext.",
"assets": [
{
Expand Down
2 changes: 1 addition & 1 deletion cortext/models/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schema": "augmem.cortext.models.v1",
"cortext_version": "1.2.4",
"cortext_version": "1.3.0",
"note": "AIST model is Git-chunked under 100 MiB so it can live in ordinary Git without LFS. Language bindings reassemble and checksum on first use; do not re-shard in binding repos \u2014 copy this tree from cortext.",
"assets": [
{
Expand Down
4 changes: 2 additions & 2 deletions cortext/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

from .assets import PACKAGE_DIR, host_native_present, platform_tag

DEFAULT_RELEASE_TAG = os.environ.get("CORTEXT_RELEASE_TAG", "v1.2.4")
DEFAULT_RELEASE_TAG = os.environ.get("CORTEXT_RELEASE_TAG", "v1.3.0")
DEFAULT_RELEASE_REPO = os.environ.get("CORTEXT_RELEASE_REPO", "augmem/cortext.cpp")


Expand Down Expand Up @@ -53,7 +53,7 @@ def _download(url: str, dest: Path) -> None:
def _normalize_tag(tag: str | None) -> tuple[str, str]:
raw = tag or DEFAULT_RELEASE_TAG
if raw.upper() == "LATEST":
raise RuntimeError("pin an exact release tag (e.g. v1.2.4); latest is not allowed")
raise RuntimeError("pin an exact release tag (e.g. v1.3.0); latest is not allowed")
t = raw if raw.startswith("v") else f"v{raw}"
return t, t.lstrip("v")

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "cortext"
version = "1.2.4"
version = "1.3.0"
description = "Turnkey Python bindings for Cortext — ships multi-arch natives and AIST model chunks"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
2 changes: 1 addition & 1 deletion scripts/build_wheels.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def require_native(tag: str, artifact: str) -> Path:
if not path.is_file():
raise SystemExit(
f"missing native for {tag}: {path}\n"
"Run: python3 scripts/vendor_release_assets.py --from-release v1.2.4"
"Run: python3 scripts/vendor_release_assets.py --from-release v1.3.0"
)
return path

Expand Down
4 changes: 2 additions & 2 deletions scripts/install.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/env bash
# Curl-friendly entrypoint for release installs (uploaded as a release asset).
# Usage: curl -fsSL …/install.sh | bash -s -- v1.2.4
# Usage: curl -fsSL …/install.sh | bash -s -- v1.3.0
set -euo pipefail
TAG="${1:-v1.2.4}"
TAG="${1:-v1.3.0}"
REPO="${CORTEXT_PY_REPO:-augmem/cortext.py}"
VERSION="${TAG#v}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
Expand Down
4 changes: 2 additions & 2 deletions scripts/install_from_release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
#
# Usage:
# ./scripts/install_from_release.sh # version from pyproject / latest tag
# ./scripts/install_from_release.sh v1.2.4
# CORTEXT_PY_REPO=augmem/cortext.py ./scripts/install_from_release.sh v1.2.4
# ./scripts/install_from_release.sh v1.3.0
# CORTEXT_PY_REPO=augmem/cortext.py ./scripts/install_from_release.sh v1.3.0
#
# Env:
# CORTEXT_PY_REPO GitHub owner/repo (default: augmem/cortext.py)
Expand Down
2 changes: 1 addition & 1 deletion scripts/vendor_release_assets.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

Examples:
python3 scripts/vendor_release_assets.py
python3 scripts/vendor_release_assets.py --from-release v1.2.4 --force
python3 scripts/vendor_release_assets.py --from-release v1.3.0 --force
"""
from __future__ import annotations

Expand Down
6 changes: 3 additions & 3 deletions scripts/write_wheel_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
assets, since the index is itself a release asset).

Examples:
python3 scripts/write_wheel_index.py dist/wheels --version 1.2.4
python3 scripts/write_wheel_index.py dist/wheels --version 1.3.0
python3 scripts/write_wheel_index.py dist/wheels \\
--version 1.2.4 \\
--base-url https://github.com/augmem/cortext.py/releases/download/v1.2.4
--version 1.3.0 \\
--base-url https://github.com/augmem/cortext.py/releases/download/v1.3.0
"""
from __future__ import annotations

Expand Down
15 changes: 14 additions & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading