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: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed
- The README's artifact status and install pins now name the published 0.4.1 release.
Release preparation kept them on 0.4.0 until PyPI independently served 0.4.1; this
post-release update closes that intentional gap without rewriting the tagged section.

## [0.4.1] — 2026-08-12

This patch release makes the strengthened backend-isolation conformance contract
Expand Down
18 changes: 8 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,8 @@ bash examples/run_loop.sh
implement `VectorIndex` against FAISS, pgvector, hnswlib, or another store and enforce
authorization in that store too.

**Artifact status:** Source `main` is v0.4.1, alpha and prepared for release. PyPI currently serves v0.4.0.
Install 0.4.0 for the published package; use this source tree to evaluate the
strengthened 0.4.1 backend-conformance checks. The README never
assumes a prepared source release has already reached the registry.
**Artifact status:** Source `main` is v0.4.1, alpha. PyPI currently serves v0.4.1.
Install 0.4.1 for the strengthened backend-conformance checks described here.

The package is published on
[PyPI](https://pypi.org/project/edgeproc-core/), so `pip install edgeproc-core`
Expand Down Expand Up @@ -211,13 +209,13 @@ uv pip install edgeproc-core

In your `pyproject.toml`:
```toml
dependencies = ["edgeproc-core==0.4.0"]
dependencies = ["edgeproc-core==0.4.1"]
```

Verify it worked:
```bash
python -c "import edgeproc_core; print(edgeproc_core.__version__)"
# 0.4.0
# 0.4.1
```

Prefer to build from source? Pin a full commit SHA — Git cannot repoint it, so
Expand All @@ -231,10 +229,10 @@ uv pip install "edgeproc-core @ git+https://github.com/hseshadr/edgeproc-core.gi
> were cut before the import package was renamed to `edgeproc_core`, so they
> ship the old `shared_libs_python` module and every example here would raise
> `ModuleNotFoundError`. Pin a commit at or after the rename (like the one
> above), or install from PyPI as shown first. Source `main` contains the 0.4.1
> conformance fix, but do not declare `edgeproc-core>=0.4.1` until PyPI serves it. `0.2.1`
> and `0.2.2` carry a cross-tenant delete defect fixed in `0.3.0`, and `0.3.0`
> ships without the `conformance` module its README documents.
> above), or install from PyPI as shown first. `0.4.1` contains the strengthened
> backend-isolation conformance checks. `0.2.1` and `0.2.2` carry a cross-tenant
> delete defect fixed in `0.3.0`, and `0.3.0` ships without the `conformance`
> module its README documents.

For local development:
```bash
Expand Down
17 changes: 11 additions & 6 deletions tests/test_docs_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,15 +393,20 @@ def test_readme_status_matches_package_version() -> None:
assert f"Source `main` is v{version}" in _read("README.md")


def test_conformance_isolation_fix_is_not_advertised_as_published_early() -> None:
"""The fixed suite cannot be advertised as installable before registry proof."""
def test_should_advertise_the_release_when_registry_proof_exists() -> None:
"""Once released, every front-door install claim must name the registry version."""
# Given
version = tomllib.loads(_read("pyproject.toml"))["project"]["version"]

# When
readme = _read("README.md")

assert version == "0.4.1"
assert "PyPI currently serves v0.4.0" in readme
assert '"edgeproc-core>=0.4.1"' not in readme
assert "## [0.4.1]" in _read("CHANGELOG.md")
# Then
assert f"PyPI currently serves v{version}" in readme
assert f'"edgeproc-core=={version}"' in readme
assert f"# {version}" in readme
assert "do not declare `edgeproc-core>=0.4.1` until PyPI serves it" not in readme
assert f"## [{version}]" in _read("CHANGELOG.md")


def test_readme_leads_with_a_copy_paste_demo_before_evidence() -> None:
Expand Down