Skip to content

chore: align tooling with FRSOURCE org conventions - #2

Merged
FRSgit merged 1 commit into
mainfrom
chore/frsource-tooling
Oct 6, 2026
Merged

FRSgit merged 1 commit into
mainfrom
chore/frsource-tooling

Conversation

@FRSgit

@FRSgit FRSgit commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Independent of #1: only tooling, lint, build and release setup, brought in line with the other FRSOURCE repos (e.g. autoresize-textarea). The package name, repository URLs, Box3D git dependency, emitted types and Box3D bump stay in #1.

Package manager / Node

  • pnpm with a committed lockfile and packageManager; .nvmrc (24.21.0) drives CI via node-version-file
  • package-lock.json removed

Linting / formatting

  • @frsource/eslint-config (typescript preset) replaces the hand-rolled @eslint/js config; eslint.config.mjs + globals for browser/node globals in src and test
  • @frsource/prettier-config + .prettierignore; pnpm lint runs eslint, prettier and clang-format, pnpm fix auto-fixes all three
  • tsconfig.json for editors and typescript-eslint (tsc in build.sh gets --ignoreConfig, which TypeScript 6 requires when files are passed on the CLI)
  • src/test/README formatted with prettier, csrc/flat.cpp with clang-format (byte-identical to clang-format output, no code change); build + 26 tests green locally

Dependencies

  • devDependencies pinned to exact versions so Renovate owns the bumps; renovate.json extends FRSOURCE/renovate-config (automerges patch, @frsource/*-config and linters)
  • eslint 10.12.0, typescript 6.0.3, prettier 3.9.9, semantic-release 25.0.9

Release

  • .releaserc.mjs re-exports @frsource/semantic-release-config (angular preset, changelog, GitHub release, npm, git)
  • release / release:ci / release:test scripts

CI

  • same job shape as the org: cache → lint → build and release; emsdk and pnpm fetch-deps only in the build job
  • release step runs on pushes to main only, skips dependabot, pins NPM_CONFIG_REGISTRY, publishes through trusted publishing (OIDC), no NPM_TOKEN
  • main has no conventional commits or tags, so merging this alone does not publish anything; the first real release happens once feat: publish as @frsource/box3d-wasm, track Box3D via git dependency, emit types #1 lands the @frsource/box3d-wasm name and FRSOURCE repository URL that semantic-release reads from package.json

Misc

  • .gitignore extended (emsdk-cache, caches, tarballs, dotenv); README "Building from source" documents nvm use, pnpm lint/fix and the commit convention

🤖 Generated with Claude Code

@FRSgit
FRSgit marked this pull request as ready for review October 6, 2026 21:34
@FRSgit
FRSgit changed the base branch from feat/frsource-release-automation to main October 6, 2026 21:34
@FRSgit FRSgit closed this Oct 6, 2026
@FRSgit FRSgit reopened this Oct 6, 2026
Match the setup used across FRSOURCE repos (e.g. autoresize-textarea):

- pnpm (lockfile, packageManager) and .nvmrc instead of npm ci + Node 24
- lint with @frsource/eslint-config (typescript preset) and
  @frsource/prettier-config; `pnpm lint` runs eslint, prettier and
  clang-format, `pnpm fix` auto-fixes all three
- devDependencies pinned to exact versions so Renovate owns the bumps;
  renovate.json extends the org preset
- eslint 10, typescript 6 (tsc gets --ignoreConfig now that a
  tsconfig.json exists for editors and eslint)
- semantic-release via @frsource/semantic-release-config, released by CI
  on pushes to main through npm trusted publishing (OIDC)
- CI split into cache / lint / build-and-release jobs
- sources, tests and README formatted with prettier; flat.cpp with
  clang-format so lint:native passes

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@FRSgit
FRSgit force-pushed the chore/frsource-tooling branch from f00c96d to c59fff1 Compare October 6, 2026 21:42
@FRSgit
FRSgit merged commit 64c4a05 into main Oct 6, 2026
3 checks passed
@FRSgit
FRSgit deleted the chore/frsource-tooling branch October 6, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant