Skip to content

TypeScript-first toolkit for Tree-sitter grammars. Generate type-safe SDKs with full IDE support.

Notifications You must be signed in to change notification settings

jasonkuhrt/treant

Repository files navigation

Treant

TypeScript-first toolkit for Tree-sitter grammars. Generate type-safe SDKs with full IDE support.

Packages

Package Version Description
@treant/graphql npm GraphQL parser with TypeScript SDK
@treant/cli npm CLI for generating SDKs
@treant/generator npm SDK generator
@treant/grammar npm Grammar TypeScript types
@treant/core npm Core utilities

Development

This is a monorepo managed with pnpm and Turbo.

Release Process

We use changesets for managing releases.

Creating a Release

  1. Stage changes: When you have changes ready to release, run:

    pnpm ship:stage

    This opens an interactive prompt where you can:

    • Select which packages to release
    • Choose version bumps (patch/minor/major)
    • Add a summary of changes
    • Dependencies will automatically cascade (e.g., if @treant/graphql-sdk updates, @treant/graphql will also be bumped)
  2. Ship the release: When ready to publish, run:

    pnpm ship:release

    This will:

    • Build all packages (fails fast if broken)
    • Apply version bumps from changesets
    • Update CHANGELOG.md files
    • Publish to npm
    • Create git tags
    • Push to GitHub
    • Create GitHub releases with changelogs
  3. GitHub releases only (if needed):

    pnpm ship:release:github

Notes

  • No changesets are needed during development, just when releasing
  • Each package gets its own version, git tag, and GitHub release
  • The process respects workspace dependencies and cascades updates automatically

About

TypeScript-first toolkit for Tree-sitter grammars. Generate type-safe SDKs with full IDE support.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •