No description
  • Go 99.3%
  • Go Template 0.4%
  • HTML 0.3%
Find a file
nikita cc8675db92 feat(postgres): revert applied migrations
Validate the entire rollback range under the migration lock so a missing down script cannot leave a database partially reverted.
2026-11-12 23:41:56 +02:00
cli feat(cli): add static config check and inspect commands 2026-10-30 12:19:11 +02:00
clock feat(clock): add owned timers and manually advanced test clock 2026-10-28 11:05:58 +02:00
cmd/frameset feat(release): share build version and guard library compatibility 2026-11-12 00:33:03 +02:00
config feat(postgres): expose application migration commands 2026-11-12 23:28:07 +02:00
db feat(postgres): revert applied migrations 2026-11-12 23:41:56 +02:00
docs feat(postgres): revert applied migrations 2026-11-12 23:41:56 +02:00
examples feat(moduletool): add recoverable library module installation 2026-11-09 14:52:46 +02:00
fixtures fix(fixtures): clean partial snapshots after abnormal callbacks 2026-11-07 00:03:19 +02:00
internal chore(codegen): regenerate migration command assembly 2026-11-12 22:50:49 +02:00
lifecycle feat(fixtures): add app commands and staged resource startup 2026-11-03 01:59:51 +02:00
money feat(money): add exact decimal conversion 2026-11-12 15:51:19 +02:00
telemetry feat(telemetry): add portable observability ports and noops 2026-10-27 20:21:40 +02:00
testkit feat(testkit): launch async applications with explicit readiness and safe cleanup 2026-11-03 00:24:22 +02:00
.gitignore feat(docs): support external documentation output roots 2026-11-11 13:57:27 +02:00
AGENTS.md feat(docsite): add multilingual framework documentation 2026-11-06 23:53:39 +02:00
application.go feat(lifecycle): execute declarative preparation stages 2026-10-27 16:53:39 +02:00
application_test.go feat(codegen): assemble selected command graphs and dispatch typed handlers 2026-10-27 15:18:10 +02:00
declarations.go feat(lifecycle): declare explicit shutdown dependencies 2026-10-27 17:18:50 +02:00
declarations_test.go feat(loader): analyze typed static di declarations 2026-10-27 13:22:43 +02:00
DEVELOPMENT.md feat(postgres): run migrations under a session lock 2026-11-12 23:15:06 +02:00
go.mod feat(model): add immutable dependency graph planning 2026-10-23 02:51:48 +03:00
README.md docs(release): prepare v0.1.0 release notes 2026-11-12 01:16:56 +02:00

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.

Документация

Локальный сайт из корня 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 подключается отдельно.