docs(readme): document the real install channel; drop false PyPI claim
The Install section promised `pip install llm-ingestion-guard`, but the
distribution is not on PyPI — a downstream consumer following the README
would fail. Replace it with the channel that actually works, verified in a
throwaway venv against the public mirror:
pip install "llm-ingestion-guard @ git+https://.../@v0.2.0"
Anonymous HTTPS read on the open/ mirror is confirmed, so consumer CI needs
no deploy key. Also states the two things a consumer must know up front:
a git URL is a PEP 508 direct reference (exact tag, not a >=0.2,<0.3 range;
range pinning arrives with a Forgejo PyPI registry at the first patch release
or second consumer), and vendoring is unsupported because it severs the
security patch channel.
Answers the install-channel question raised by llm-ingestion-okf via coord.
This commit is contained in:
parent
27cd7f3f25
commit
99c57629f8
1 changed files with 22 additions and 3 deletions
25
README.md
25
README.md
|
|
@ -39,12 +39,31 @@ may still change. There are real limitations, stated plainly below; read them.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
|
Not on PyPI. The guard is distributed from its Forgejo origin — pin a release tag:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install llm-ingestion-guard # stdlib-only core, zero dependencies
|
pip install "llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v0.2.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
Optional ML/judge detectors live behind extras (`[ml]`, `[judge]`) and are not
|
The `open/` mirror is anonymously readable, so CI needs no deploy key, token, or
|
||||||
required — the core is deterministic and dependency-free.
|
other credential. The core is stdlib-only with zero dependencies, so nothing else
|
||||||
|
resolves. Optional ML/judge detectors live behind extras (`[ml]`, `[judge]`) and
|
||||||
|
are not required — the core is deterministic and dependency-free.
|
||||||
|
|
||||||
|
**Tags are the stable contract.** Every release is version-synced before tagging,
|
||||||
|
and published tags are never moved.
|
||||||
|
|
||||||
|
Two consequences worth knowing before you depend on this:
|
||||||
|
|
||||||
|
- A git URL is a PEP 508 *direct reference*: it pins one exact tag, not a range
|
||||||
|
like `>=0.2,<0.3`. Real range pinning — and therefore automatic pickup of patch
|
||||||
|
releases — arrives with a Forgejo PyPI registry, which becomes the durable
|
||||||
|
channel at the first patch release or the second downstream consumer, whichever
|
||||||
|
comes first. The distribution name (`llm-ingestion-guard`) and the version
|
||||||
|
scheme are unchanged by that move, so pins written today keep their meaning.
|
||||||
|
- **Vendoring the source into a consumer is not supported.** It severs the patch
|
||||||
|
channel that a shared security dependency exists to provide: a copied guard
|
||||||
|
keeps running the vulnerabilities the original has already fixed.
|
||||||
|
|
||||||
## Quickstart — the two bookends
|
## Quickstart — the two bookends
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue