---
title: "Template smoke test"
description: "Pack published packages, generate a project from this git checkout, and prove it installs, builds, type-checks, tests, and lints."
canonical_url: "https://vinicunca.dev/taman/contributing/template-smoke-test"
---
# Template smoke test

> Pack published packages, generate a project from this git checkout, and prove it installs, builds, type-checks, tests, and lints.

Script: `.github/scripts/template-smoke.mjs`. CI job name: **Generate and verify a template project**.

## What it does

1. `pnpm pack` every non-private workspace package into a temp `packs/` dir (each package's `prepack` builds it).
2. Runs create-taman against **this checkout** (`--from`), so unpublished source changes are included.
3. Rewrites the generated project's catalog to the packed tarballs.
4. `pnpm install`, then build / typecheck / test / lint.

That is the guarantee `create-taman@<version>` is supposed to match: the snapshot at that tag plus the packages published with it.

## Known skips

The script lists `KNOWN_TYPE_ERRORS` and `LINT_SKIP` for in-progress layout/tabbar work:

```text
packages/shell/layouts/src/core/tabbar/layout-core-tabbar.vue
  error TS2339: Property 'styleType' does not exist on type 'TabbarPreferences'.
```

If those strings **stop** appearing, the script fails — remove the entry when the bug is gone so the list cannot go stale.

## Local run

From the Taman repo root (slow: packs + generate + full verify):

```bash
node .github/scripts/template-smoke.mjs
```

Requires git, pnpm, tar, and enough disk in `$TMPDIR`.


## Sitemap

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