# lawref.revision

*module*

Ревизия семантики по версии языка ([§22](https://github.com/arxohq/law/blob/master/spec/SPEC.ru/06-part-vi-package-and-module-system.ru.md#22-заголовок-файла)/[§209](https://github.com/arxohq/law/blob/master/spec/SPEC.ru/28-part-xxvii-canonical-legal-ir.ru.md#209-theory-hash-и-artifact-hash), errata E-0156/E-0166).

Единственный источник — `spec/feature-registry.json`, порождённый в
`std_generated.SEMANTICS_REVISIONS` генератором каталога std. Семейство
версии — первые две компоненты (`0.1`, `0.1.0`, `0.1.1` → `0.1`); ревизия
семейства — `semanticsId` реестра; версия вне реестра (зарезервированная
`0.3`) остаётся `law.core/<семейство>`. Движок повторяет это дословно в
`law_canon::revision`; байты `manifest.semantics` — общий контракт.

## lawref.revision.WITHDRAWN_EVALUATION_FAMILIES

*attribute* · *module attribute*

```python
WITHDRAWN_EVALUATION_FAMILIES = ('0.1')
```

[View source](https://github.com-arxohq/arxo-io/law/blob/2edc2b92ce22b52e03f4081d2769a58229684379/engines/lawref/lawref/revision.py#L24-L24)

## lawref.revision.family

*function*

```python
def family(version: str) -> str
```

[View source](https://github.com-arxohq/arxo-io/law/blob/2edc2b92ce22b52e03f4081d2769a58229684379/engines/lawref/lawref/revision.py#L30-L31)

## lawref.revision.is_withdrawn_for_evaluation

*function*

```python
def is_withdrawn_for_evaluation(version: str) -> bool
```

Отозвана ли семантическая ветвь для активного ``evaluate``.

Семейство намеренно определяется так же, как revision mapping: это
закрывает ``0.1``, старый request-tail ``0.1.0`` и текущий revision-tail
``0.1.1``, не трогая их архивную адресацию.

[View source](https://github.com-arxohq/arxo-io/law/blob/2edc2b92ce22b52e03f4081d2769a58229684379/engines/lawref/lawref/revision.py#L34-L43)

## lawref.revision.known_versions

*function*

```python
def known_versions() -> tuple[str, ...]
```

[View source](https://github.com-arxohq/arxo-io/law/blob/2edc2b92ce22b52e03f4081d2769a58229684379/engines/lawref/lawref/revision.py#L82-L84)

## lawref.revision.revision_id

*function*

```python
def revision_id(version: str) -> str
```

`law.core/<ревизия>` для семейства версии.

[View source](https://github.com-arxohq/arxo-io/law/blob/2edc2b92ce22b52e03f4081d2769a58229684379/engines/lawref/lawref/revision.py#L68-L74)

## lawref.revision.revision_tail

*function*

```python
def revision_tail(version: str) -> str
```

Строка `semanticVersion` конверта для семейства версии (`0.1` → `0.1.1`).

[View source](https://github.com-arxohq/arxo-io/law/blob/2edc2b92ce22b52e03f4081d2769a58229684379/engines/lawref/lawref/revision.py#L77-L79)

## lawref.revision.withdrawn_evaluation_message

*function*

```python
def withdrawn_evaluation_message(version: str) -> str
```

Сообщение отказа в форме `LDC-E1401` с migration note реестра.

[View source](https://github.com-arxohq/arxo-io/law/blob/2edc2b92ce22b52e03f4081d2769a58229684379/engines/lawref/lawref/revision.py#L46-L51)
