Skip to content

Commit 6e21118

Browse files
Ronald Tseronaldtse
authored andcommitted
runtime: deprecate interscript-ml in favor of secryst; pin index default to index-v6 release channel
- DEFAULT_INDEX_URL was raw.githubusercontent.com (never a data channel; the contract is Releases + sha256 sidecar) - now pinned to index-v6 with an exact-pin test, matching all three crystals - README deprecation banner + pyproject 0.1.2 with Inactive/deprecated metadata: the canonical Python crystal is 'secryst'
1 parent 7285b0b commit 6e21118

4 files changed

Lines changed: 26 additions & 5 deletions

File tree

‎runtime/README.md‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
# interscript-ml (Python runtime)
1+
# interscript-ml (Python runtime) — SUPERSEDED by `secryst`
2+
3+
> **Deprecated.** The canonical Python crystal is
4+
> [`secryst`](https://pypi.org/project/secryst/) (same code, same
5+
> IMF v1 contract, same SECRYST_INDEX/SECRYST_CACHE env vars) —
6+
> `pip install secryst` instead. This package remains published for
7+
> provenance; `runtime/` in this repo is the frozen origin of the
8+
> crystal family (golden-owner history in the secryst-py README).
29
310
The reference Python runtime for **IMF v1** model zips — the phonological
411
layer of Interscript. The Ruby (secryst gem) and TypeScript

‎runtime/pyproject.toml‎

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

55
[project]
66
name = "interscript-ml"
7-
version = "0.1.0"
8-
description = "Python runtime for Interscript Model Format (IMF v1) — the phonological layer of Interscript"
7+
version = "0.1.2"
8+
description = "DEPRECATED — superseded by the 'secryst' package; Python runtime for Interscript Model Format (IMF v1)"
99
readme = "README.md"
1010
license = { text = "BSD-3-Clause" }
1111
requires-python = ">=3.10"
1212
authors = [{ name = "Interscript Project" }]
13-
keywords = ["transliteration", "diacritization", "g2p", "onnx", "byt5"]
13+
classifiers = ["Development Status :: 7 - Inactive"]
14+
keywords = ["transliteration", "diacritization", "g2p", "onnx", "byt5", "deprecated"]
1415

1516
dependencies = [
1617
"numpy>=1.26",

‎runtime/src/interscript_ml/registry.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import yaml
2020

2121
DEFAULT_INDEX_URL = (
22-
"https://raw.githubusercontent.com/interscript/interscript-ml/main/models.yaml"
22+
"https://github.com/interscript/interscript-ml/releases/download/index-v6/models-index.yaml"
2323
)
2424
ENV_INDEX = "SECRYST_INDEX"
2525
ENV_CACHE = "SECRYST_CACHE"

‎runtime/tests/test_registry.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,3 +165,16 @@ def test_resolve_parts_rejects_corrupt_part(tmp_path: Path) -> None:
165165
resolve("tiny-1.0", index_url=str(index_path))
166166
finally:
167167
os.environ.pop("SECRYST_CACHE", None)
168+
169+
170+
def test_default_index_url_pins_current_release() -> None:
171+
# exact pin: raw.githubusercontent is NEVER a data channel (the
172+
# contract is GitHub Releases + sha256 sidecar). Bump this test
173+
# WITH the registry constant, never ahead of it.
174+
from interscript_ml.registry import DEFAULT_INDEX_URL
175+
176+
assert DEFAULT_INDEX_URL == (
177+
"https://github.com/interscript/interscript-ml"
178+
"/releases/download/index-v6/models-index.yaml"
179+
)
180+
assert "raw.githubusercontent" not in DEFAULT_INDEX_URL

0 commit comments

Comments
 (0)