- Go 99.3%
- Go Template 0.4%
- HTML 0.3%
Validate the entire rollback range under the migration lock so a missing down script cannot leave a database partially reverted. |
||
|---|---|---|
| cli | ||
| clock | ||
| cmd/frameset | ||
| config | ||
| db | ||
| docs | ||
| examples | ||
| fixtures | ||
| internal | ||
| lifecycle | ||
| money | ||
| telemetry | ||
| testkit | ||
| .gitignore | ||
| AGENTS.md | ||
| application.go | ||
| application_test.go | ||
| declarations.go | ||
| declarations_test.go | ||
| DEVELOPMENT.md | ||
| go.mod | ||
| README.md | ||
Frameset
Frameset — Go-библиотека для модульных приложений со статическим DI и отдельным developer CLI. Декларации обычного Go-кода анализируются через AST/go/types; генератор создаёт прямые вызовы конструкторов и handlers. В production нужны библиотека и собранное приложение. CLI и Go toolchain нужны на этапе разработки.
Сейчас доступны генерация DI/CLI assembly, конфигурация .fsconf, lifecycle, scaffold приложения, тестовые инструменты, инструкции и установка библиотечных модулей, dev restarter и локальная документация. Состав первой поставки и команды установки описаны в заметках v0.1.0. Текущие возможности и ограничения и roadmap описывают статус остальных частей, включая API engine, auth, DB/transport adapters и resource presets.
Требуется Go 1.27+. Core, CLI, codegen и testkit используют только стандартную библиотеку. Публичный module path: git.codeops.live/nikita/frameset. Полный native audit выполнен на Darwin/arm64 с Go 1.27.1; это не подтверждает runtime на всех ОС. Rooted config backend поддерживает Linux/macOS. Аудит 2026-11-04 сохраняет исторические результаты; его пять P2 закрыты отдельными исправлениями.
Первое приложение из checkout
Начните из корня локальной копии Frameset. Каталог ../frameset-hello должен отсутствовать. Команды собирают CLI из исходников и используют эту же библиотеку через local replace; опубликованный релиз не предполагается.
go build -o ./run/frameset ./cmd/frameset
frameset_root="$PWD"
frameset_cli="$frameset_root/run/frameset"
"$frameset_cli" init ../frameset-hello --module-path example.com/team/frameset-hello --frameset-dir "$frameset_root"
cd ../frameset-hello
"$frameset_cli" gen --app ./internal/apps/app --out ./internal/apps/app/assembly
"$frameset_cli" gen --check --app ./internal/apps/app --out ./internal/apps/app/assembly
"$frameset_cli" --config-dir ./config config check --app ./internal/apps/app --command hello
go test -race ./...
go build -o ./run/app ./cmd/app
./run/app --config-dir ./config hello --name Ada
Последняя команда печатает Hello, Ada!. Подробный первый запуск объясняет каждый шаг, конфиг и generated ownership.
Документация
- Обзор, структура приложения, модули и DI.
- Команды, конфигурация, lifecycle, тестирование.
- Reference application с двумя настоящими HTTP-серверами и отдельный fixture workflow.
- Разработка Frameset, каталог документов и design archive, критерии приёмки.
Локальный сайт из корня checkout:
./run/frameset docs serve --dir .
./run/frameset docs build --dir . --out ./site-dist
Preview по умолчанию слушает 127.0.0.1:6060. Флаг --listen 127.0.0.1:0 выбирает свободный порт и печатает фактический URL. Static output открывается через site-dist/index.html, включая поиск и навигацию без сервера. --out принимает также отдельный внешний каталог. Правила владения каталогом описаны в руководстве по разработке.
Интерфейс сайта и текущие руководства доступны на English, русском и українській. Переключатель языка сохраняет выбранный раздел; исторический архив остаётся на языке оригинала с явной пометкой. Справка, извлечённая из Go/CLI исходников, сохраняет исходные комментарии и имена кода.
Проверка репозитория
GOTOOLCHAIN=local go run ./internal/checkrepo
Единый локальный gate проверяет formatting/dependencies, все generated-наборы, vet/build/race и документацию. Нужны native Linux/macOS и CGO/race; правила окружения, timeout и отсутствия автоматических исправлений — в developer guide. CI подключается отдельно.