Help us shape the future of Go! Take the 2026 Go Developer Survey

modulemanifest

package
v1.16.0 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Package modulemanifest — ЕДИНСТВЕННОЕ объявление того, под каким именем адресуется манифест модуля платформы.

Форм ДВЕ, и они не выводятся друг из друга

в дереве      services/<модуль>/manifest.yaml   ← FileName
в доставке    <модуль>.manifest.yaml            ← DeliveryKey

Раскладку дерева доставка воспроизвести НЕ МОЖЕТ: ключ ConfigMap не принимает `/`, а в одном объекте ключ `manifest.yaml` бывает только один. Обе стороны замерены kubectl, и замер стоит в шапке читателя доставки (`services/iam/internal/manifest/delivery.go`, §«Почему ИМЯ файла здесь судится иначе»). Значит вторая форма — не отступление и не оплошность, а единственная исполнимая; вывести одну из другой нельзя ничем, кроме этого объявления.

Почему объявление живёт в pkg/, а не у читателя

Читателей у имени ТРИ, и они в разных деревьях видимости: судья формы и обход модели внутри `services/iam/internal/`, производитель ConfigMap — в `tools/`. Правило `internal` запрещает третьему импортировать первых, поэтому «свести к одному объявлению у iam» неисполнимо by construction, и до этого пакета имя стояло тремя копиями — двумя константами и одним голым литералом.

Повторённое соглашение расходится МОЛЧА, и цена у него не «неаккуратно»: обход, разошедшийся с производителем, перестаёт находить часть манифестов и не даёт при этом ни одной находки. «Ноль находок» становится неотличимо от «ноль прочитанного».

Чего здесь НЕТ и почему

Ни структур манифеста, ни его разбора, ни перечня модулей платформы: манифест адресован iam (`apiVersion: iam/v1`), а членство модуля принадлежит iam и из `pkg/` не собирается. Переезд ФОРМЫ сюда потребовал бы второй копии перечня модулей — то есть ровно того класса, ради которого этот пакет и заведён. Здесь только ИМЯ: величина, у которой владельца не было вовсе.

Чем держится

Гейт дерева `internal/repohygiene` TestModuleManifestFileNameIsDeclaredExactlyOnce: он судит узел-литерал разобранного исходника, сравнивает значение дословно, печатает объём осмотренного и падает, когда объявления у этого пакета не стало, — то есть и на исчезнувшем предмете тоже.

Index

Constants

View Source
const DeliveryKeySuffix = ".manifest.yaml"

DeliveryKeySuffix — окончание ключа, под которым тот же документ приезжает В ДОСТАВКЕ. Полный ключ — имя модуля плюс это; собирает его DeliveryKey.

Отдельная величина, а не производная от FileName: совпадение хвоста есть сегодняшний факт, а не свойство. Свяжи их выражением — и первая же правка одной формы молча переписала бы вторую.

View Source
const FileName = "manifest.yaml"

FileName — имя, под которым модуль кладёт свой манифест В ДЕРЕВЕ.

Судится ДОСЛОВНО и только по базовому имени: рядом лежат чужие документы, и опознавать их нашей формой значило бы выдавать находку там, где её никто не писал.

Variables

This section is empty.

Functions

func DeliveryKey

func DeliveryKey(module string) string

DeliveryKey — ключ доставки для названного модуля.

Функция, а не образец для склейки у каждого читателя: склейка есть та же повторённая величина, только распределённая по вызывающим, где её уже не сосчитать.

Types

This section is empty.

Directories

Path Synopsis
Package modulemanifests — ПРОИЗВОДИТЕЛЬ ConfigMap с манифестами модулей (задача #1901).
Package modulemanifests — ПРОИЗВОДИТЕЛЬ ConfigMap с манифестами модулей (задача #1901).

Jump to

Keyboard shortcuts

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