modulemanifests

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2026 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Overview

Package modulemanifests — манифесты модулей, ДОСТУПНЫЕ ПРОБЕ В ЭТОЙ ПОСАДКЕ.

───────────────────────────────────────────────────────────────────────────── ПРЕДМЕТ (kacho#2377)

Сверки «объявлено манифестом ↔ лежит в живой базе» имеют стороны в РАЗНЫХ деревьях: манифесты модулей — у платформы (`services/*/manifest.yaml`), база и миграции — у службы. Прежде обе стороны брались обходом `<корень>/services`, и после разреза этот каталог рядом с модулем не резолвится: сверка становилась невыразимой, а расхождение объявления с фактом переставало находиться — ровно то, ради чего раздел `roles`/`seed` манифеста и заведён.

───────────────────────────────────────────────────────────────────────────── ЧТО ЗДЕСЬ РЕШЕНО, А ЧТО НЕТ

Решено ОДНО: перечень манифестов есть ФУНКЦИЯ ПОСАДКИ, и он никогда не пуст.

Имя файла манифеста здесь НЕ ПИШЕТСЯ своей рукой: у него один владелец в фундаменте и ДВЕ формы — в дереве и в доставке. Объявление, знающее одну, обещало бы читателю полноту, которой у него нет. Берётся оно у читателя СВОЕЙ службы (`internal/manifest`), а не прямым импортом: направление «служба → пакет класса платформы» запрещено целевой раскладкой, и новое такое ребро есть находка даже там, где сегодня всё собирается.

дерево платформы НАЗВАНО снаружи (ручка PLATFORM_TREE) — читаются манифесты
                         ВСЕХ модулей платформы;
дерево платформы НЕ названо — читается манифест САМОГО МОДУЛЯ, входящий в его
                         поставку. Сверка сужается, но НЕ ИСЧЕЗАЕТ, и её
                         объём объявляется числом.

ПОДЪЁМОМ дерево платформы больше НЕ ИЩЕТСЯ, и это исправление, а не упрощение: признаком служил каталог модулей рядом с нашим, а после выноса службы отдельным репозиторием модуль не лежит в нём ни в одной посадке — признак стал ложным ВСЕГДА, и «дерева платформы нет» перестало различать посадки. Называет его теперь тот, кто его выложил.

НЕ решено и решаться здесь не должно: как манифесты СОСЕДЕЙ доезжают до самостоятельной службы. Они доезжают ДОСТАВКОЙ в рантайме (именованный ConfigMap; у доставки есть производитель, и это предмет платформенного гейта), а не деревом сборки. Заводить здесь их копию значило бы завести второе место об одном предмете, которое после разреза не сверяется НИЧЕМ.

───────────────────────────────────────────────────────────────────────────── ПОЧЕМУ ПРОПУСКА НЕТ

Пропуск здесь означал бы «сторожа больше нет», и молчание было бы неотличимо от исправной работы — тот самый тихий класс, ради которого пакет и заведён. Поэтому обе посадки дают ОТВЕТ, а перепись печатает, какой именно и сколько манифестов прочитано: «ноль находок» обязано быть отличимо от «прочитан один из шести».

Index

Constants

View Source
const PlatformTreeEnv = treeposture.PlatformTreeEnv

PlatformTreeEnv — ручка, которой НАЗЫВАЮТ дерево платформы. Переобъявлена ссылкой, а не копией: два имени об одном предмете разошлись бы молча.

Variables

This section is empty.

Functions

This section is empty.

Types

type Posture

type Posture string

Posture — посадка, в которой снят перечень.

const (
	// PlatformTree — дерево платформы названо снаружи: читаются манифесты всех её
	// модулей.
	PlatformTree Posture = "дерево платформы"
	// StandaloneModule — дерево платформы не названо: читается манифест самого
	// модуля.
	StandaloneModule Posture = "самостоятельный клон"
)

type Set

type Set struct {
	// Posture — какая из двух посадок дала этот перечень.
	Posture Posture
	// Root — корень, от которого координаты ниже отсчитаны.
	Root string
	// Files — координаты манифестов ОТ Root, отсортированные.
	Files []string
}

Set — перечень манифестов и посадка, в которой он снят.

func Available

func Available(start string) (Set, error)

Available — манифесты, доступные в посадке каталога start.

Ошибка означает «проверка НЕ ИСПОЛНЯЛАСЬ»: ни одной из двух посадок назвать не удалось либо в названной не нашлось ни одного манифеста. Пустой перечень ошибкой НЕ возвращается молча — вызывающий обязан отличать его от согласия.

func (Set) Census

func (s Set) Census() string

Census — строка объёма осмотренного. Печатается ВСЕГДА, а не только при находке: без неё «расхождений 0» неотличимо от «прочитано 0».

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL