Repository navigation
chore: prepare the repo for agents and reliable builds - #1
Merged
Merged
Conversation
Add AGENTS.md, a Cloud Agent install script, fixtures and tests for every supported format, and CI for fmt, clippy, Node/Bun tests, and napi prebuilds. Co-authored-by: kellas <alex.step.kellas@gmail.com>
alexstep
marked this pull request as ready for review
October 7, 2026 21:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что сделано
Репозиторий подготовлен к работе облачных агентов и к более жёсткой проверке сборки. Версия пакета не менялась (
0.1.5), в npm и crates.io ничего не публиковалось, вmainпуша не было.AGENTS.md: архитектура (Rust-крейт, N-API, JS-обёртка), сборка черезcargoиnapi build, Rust/Node/Bun тесты, фикстуры, запрет ломать публичный API и коммитить*.node..cursor/environment.jsonи.cursor/install.sh: Rust stable, Node.js ≥ 22 (LTS, если его ещё нет), Bun в/usr/local/bin,bun install --frozen-lockfileи первичнаяnapi-сборка. Скрипт прогнан дважды на этой машине.node:testгоняется и под Node, и под Bun. Rust-тесты читают те же фикстуры.cargo fmt --check,clippy -D warnings,cargo test, сборка и тесты под Bun и Node. Матрица prebuild:linux-x64-gnu,linux-arm64-gnu,linux-x64-musl,darwin-x64,darwin-arm64,win32-x64(по образцу napi-rs). Собранный linux-x64-gnu артефакт дополнительно прогоняется тестами Node и Bun..github/workflows/release.ymlи теперь запускается только по тегуv*. Секрет в репозитории не хранится. Нужен GitHub Actions secretNPM_TOKEN: npm automation или granular token с правом публиковать@alexstep/doc-extractи платформенные пакеты@alexstep/doc-extract-*. Job прокидывает его вNPM_TOKENиNODE_AUTH_TOKEN.scripts/bench.mjsи короткий раздел Benchmark в README.cargo fmtприведён кrustfmt.toml(tab_spaces = 2), плюс мелкие правки clippy без смены поведения.Открытых issues через
ghне нашлось.Что реально прошло
На этой машине (Rust 1.99.0, Node 22.14.0, Bun 1.4.2):
cargo fmt --all -- --checkcargo clippy --all-targets -- -D warningscargo test— 26 тестовbun install --frozen-lockfileиbun run build(napi build --platform --release) —doc-extract.linux-x64-gnu.nodebun test— вся JS-сюитаnode --test __tests__/formats.test.mjs— 57 тестовbun test __tests__/formats.test.mjs— те же 57node scripts/bench.mjs 5.cursor/install.shдважды подряд (второй прогон без переустановки пакетов, release-сборка кэшируется)Что не проверялось
release.ymlи шаблону napi-rs, но раннеры здесь не запускались.--use-napi-cross/ zig musl.environment.json, пока агент не стартует с ревизии, где файл уже есть (после мержа вmainили с этой ветки). Отдельный environment build в облаке не запускался: install проверен локально.Бэклог
.cursor/install.shсвежим агентом с этой ветки и сохранить окружение, когда сборка зелёная."") против throw в одном месте и покрыть URL/лимиты теми же фикстурами под Node, не только под Bun.ods/xlsxдля буфера всё равно идёт через автоопределение calamine.sample.xlsиз зависимостиxlwtили закоммитить способ воспроизведения без pip.v*с уже заведённымNPM_TOKEN, без ручной публикации.