---
title: "Keep a package current"
description: "Regenerate a package, inspect its source history, and handle API changes."
url: https://typeship.dev/docs/guides/keep-a-package-current
markdown: https://typeship.dev/docs/guides/keep-a-package-current.md
section: "Get started"
---
> ## Documentation index
> Fetch the complete documentation index at https://typeship.dev/llms.txt (every page, one line each) or the full text at https://typeship.dev/llms-full.txt.
> Append .md to any docs URL, or send Accept: text/markdown, for the markdown twin of that page.

# Keep a package current

Regenerate a package, inspect its source history, and handle API changes.

## Quick reference

```bash
typeship projects retrieve <project_id>                 # Definition ID, Targets, Deliveries, auto_generate
typeship definitions retrieve <definition_id>           # source, format, policy, latest revision
typeship projects generate <project_id>                 # force one Generation per Target
typeship projects list-generations <project_id>         # status, trigger, Target, Definition Revision
typeship definition-revisions retrieve <revision_id>    # immutable graph and source-document metadata
typeship projects update <project_id> --auto-generate true
```

**Automatic generation is change-driven.** It starts disabled so the first Generation is deliberate. Repository sources react to changes anywhere in the Definition graph, while URL sources use a 30-minute poll. An unchanged graph is skipped; `projects generate` forces a run.

**A pull request per changed Target is the unit of change.** Its body lists the API and published-package changes consumers receive. A missing destination or GitHub installation does not erase the artifact: the Generation remains in the Console with a specific Delivery error.

**History is the audit trail.** Every Generation carries `target_id`, resolved `generator`, and `definition_revision_id`. Definition Revisions expose the resolved graph and raw documents.

Large Generations return `files_omitted: true` and a `files_index`. Fetch one file with `generations retrieve-file <id> --path <p>`.

**When a Definition change breaks a client**, fix it at the source or use a reviewed [Definition patch](https://typeship.dev/docs/projects/definition-patches). Source pull requests report the break before merge; destination pull requests accumulate it against the last release and enforce an honest version.

Follow [Release a breaking API change](https://typeship.dev/docs/guides/release-a-breaking-change) when the break is intentional.

> **For AI agents:** To know if a Target is current, retrieve the Project and list its Generations, then inspect the latest 
> 
> `definition_revision_id`
> 
>  and Delivery result. Never edit generated files.

## Sitemap

[Every page of these docs](https://typeship.dev/llms.txt)
