---
title: "Releases"
description: "Version published Taman packages with changesets and GitHub Actions OIDC publishing."
canonical_url: "https://vinicunca.dev/taman/contributing/releases"
---
# Releases

> Version published Taman packages with changesets and GitHub Actions OIDC publishing.

Private workspace packages (`private: true`) are not versioned (`privatePackages.version: false` in `.changeset/config.json`). Published packages: `create-taman`, `@vinicunca/taman-core`, `@vinicunca/taman-ui`, `@vinicunca/request`, `@vinicunca/vite-config`, `@vinicunca/tsconfig`, `@vinicunca/node-utils`, `@vinicunca/commitlint-config`.

## Changesets

```bash
pnpm changeset
```

Config (`.changeset/config.json`): `baseBranch: main`, `access: public`, `commit: false`, `updateInternalDependencies: patch`. Changelog: `@changesets/cli/changelog`.

## CI (`.github/workflows/release.yml`)

On every push and pull request:

1. **verify** — `node .github/scripts/verify-packages.mjs` (pack each public package the way npm consumers see it)
2. **template-smoke** — `.github/scripts/template-smoke.mjs`

On push to `main` (after those jobs):

- Pending changesets → opens/updates the **Version Packages** PR
- Unpublished versions (that PR was merged) → pack, publish to npm with **trusted publishing (OIDC, no token)**, one git tag + GitHub Release per package

npm trusted publishing is bound to this workflow **filename** (`release.yml`) and the `npm` environment. Renaming either breaks publishing.

Node in CI is **24**. Local engines allow `^22.18.0 || ^24.0.0`.


## Sitemap

See the full [sitemap](https://vinicunca.dev/sitemap.md) for all pages.
