Skip to content

Set up contribution infrastructure (CONTRIBUTING, CI, templates, commitlint) #288

Description

@AlexMost

Context

The preversion hook (lint && test && lib:build) runs only locally. Nothing is enforced on CI. CONTRIBUTING.md is missing. Depends on a separate ecosystem-level decision on release & commit conventions.

ttag-specific notes (vs ttag-cli):

  • Tests use Mocha + ts-node (not Jest)
  • Build produces three artifacts (CJS, ESM, .d.ts) via lib:build (babel + webpack + tsc)
  • Has a separate dtslint step for public types
  • Documentation lives in website/ (Docusaurus) — separate workflow for deploy, but only after the Docusaurus v3 migration

Scope

  • CONTRIBUTING.md:
    • Dev setup (Node version from engines)
    • Tests (npm test, npm run test:file), lint, prettier, dtslint
    • How to run the website locally (npm run doc:install, npm run doc:serve)
    • Commit conventions
    • PR checklist (tests, types, dtslint, prettier-check)
  • PR template
  • Issue templates (bug, feature, types-related)
  • CI workflow: install + lint + test + lib:build + dtslint on a Node matrix
  • Release workflow per ecosystem decision
  • Deploy workflow for the website (gh-pages) — replace manual doc:publish with GitHub Actions. Done as part of the Docusaurus v3 migration issue — here we just record that CONTRIBUTING.md describes the new deploy flow, not legacy doc:publish
  • commitlint + husky

Out of scope

  • CODEOWNERS / branch protection — separate task
  • API-extractor / publish API tracking — separate discussion

Definition of Done

  • CONTRIBUTING.md and templates in .github/
  • CI workflow green
  • Release workflow set up or consciously deferred
  • commitlint blocks invalid commits locally
  • Website deploy via GH Actions, no manual doc:publish (or documented why it stays manual)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions