name: eserstack-monorepo description: Monorepo structure, package conventions, version synchronization, and publishing workflow. Use when adding packages, modifying project structure, or managing versions.
eserstack Monorepo
Multi-language monorepo: Deno/TypeScript packages (JSR/npm) + Go services.
Quick Start
- Each package:
pkg/@eserstack/<name>/withdeno.json,mod.ts,mod.test.ts - Unified version — use
deno task cli codebase versions <patch|minor|major> - JSR primary (
deno publish), npm secondary (only@eserstack/cli) - Run
deno task validateto check entire monorepo
Key Principles
- Entry point:
mod.ts(ormain.tsfor CLIs) - Tests:
*.test.tsco-located with source, benchmarks:*.bench.ts - File naming: kebab-case enforced by pre-commit hook
- License header required on all
.tsfiles - Explicit
exportsandpublish.includein eachdeno.json - Never manually edit version fields — always use the version-bump script
@eserstack/standardsis the foundation — change carefully
Go Services
Go code lives in apps/ajan/ with independent git-tag versioning.
- Run
make go-okfor Go-only validation - Go does NOT use the unified version-bump script
- Follow hexagonal architecture — see
go-practicesskill
References
See rules.md for package conventions, adding packages, and templates.