# Tenzir Ship v0.12.0

This release adds support for nested changelog projects through modules, improves export formats with structured URL fields in JSON, and enhances the CLI with better export options and configuration flexibility for components.

## 🚀 Features

### Add long option versions for release notes command

Dec 15, 2025 · [@mavam](https://github.com/mavam), [@claude](https://github.com/claude) · cli

The `release notes` command now accepts long option versions `--markdown` and `--json` in addition to the short `-m` and `-j` flags, improving command discoverability and consistency with other CLI tools.

### Support component descriptions in config

Dec 15, 2025 · [@mavam](https://github.com/mavam), [@claude](https://github.com/claude)

The `components` field in `config.yaml` now supports a dict format where keys are component names and values are descriptions:

```yaml
components:
  cli: Command-line interface
  python: Python API and internals
```

The list format remains supported for backward compatibility:

```yaml
components:
  - cli
  - python
```

### Add structured URL fields to JSON export format

Dec 15, 2025 · [@mavam](https://github.com/mavam) · cli

The JSON export format now includes structured objects for PRs and authors with explicit URL fields. PRs are exported as `{"number": 123, "url": "..."}` objects (URL included when repository is configured), and authors as `{"handle": "user", "url": "..."}` or `{"name": "Full Name"}` objects. This makes the JSON output self-contained without requiring consumers to construct URLs.

### Add `--explicit-links` flag for portable Markdown

Dec 14, 2025 · [@mavam](https://github.com/mavam), [@claude](https://github.com/claude) · cli

The `show` and `release notes` commands now accept `--explicit-links` to render `@mentions` and `#PR` references as full Markdown links. Use this flag when exporting release notes to documentation sites or other renderers that lack GitHub’s auto-linking.

### Add modules for nested changelog projects

Dec 13, 2025 · [@mavam](https://github.com/mavam), [@claude](https://github.com/claude)

Modules are nested changelog projects discovered via a configurable glob pattern. Configure `modules` in `config.yaml` with a glob pattern like `../packages/*/changelog` to enable automatic discovery. The `show` command aggregates entries from all modules by default (use `--no-modules` to exclude), and `validate` checks all modules. Use the new `modules` command to list discovered modules with their paths.

[ Download on GitHub ](https://github.com/tenzir/ship/releases/tag/v0.12.0)

[Get the release artifacts and source code.](https://github.com/tenzir/ship/releases/tag/v0.12.0)