Skip to content

Format modifiers, Custom Format tokens - #64

Merged
magmacomputing merged 2 commits into
mainfrom
release/postplugin
Jul 19, 2026
Merged

Format modifiers, Custom Format tokens#64
magmacomputing merged 2 commits into
mainfrom
release/postplugin

Conversation

@magmacomputing

@magmacomputing magmacomputing commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Added localized short and long formatting modifiers for dates, weekdays, months, eras, and time zones.
    • Added support for developer-defined custom format tokens.
    • Added a plugin catalog with installation command copying and confirmation feedback.
  • Documentation

    • Expanded guidance for custom tokens, localized parsing, mutations, plugin naming, and formatting.
    • Updated examples and terminology for current plugin APIs.
  • Chores

    • Released version 3.10.0 with improved plugin catalog synchronization.

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@magmacomputing, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 38 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 96243c7a-80ae-4f42-917a-7c5c3aa3659b

📥 Commits

Reviewing files that changed from the base of the PR and between 3020c2c and d34ed05.

📒 Files selected for processing (3)
  • packages/tempo/doc/1-getting-started/installation.md
  • packages/tempo/doc/3-extending-tempo/tempo.plugin.md
  • packages/tempo/doc/8-project-and-support/releases/v3.x.md
📝 Walkthrough

Walkthrough

Tempo 3.10.0 adds localized format token modifiers and custom token evaluators, introduces plugin catalog synchronization and static catalog rendering, renames the finance namespace export, updates ticker plugin terminology, and refreshes package versions and documentation.

Changes

Formatting extensions

Layer / File(s) Summary
Formatting modifiers and custom token contracts
packages/tempo/doc/2-core-concepts/tempo.format.md
Documents localized :short/:long styling and registration of custom format token evaluators.
Formatter and registry implementation
packages/tempo/src/module/module.format.ts, packages/tempo/src/support/support.init.ts
Adds Intl-based month, weekday, era, timezone-name, and offset formatting, and merges registry.tokens into Tempo state.
Formatting behavior validation
packages/tempo/test/discrete/format.test.ts
Tests localized styling, timezone output, custom token evaluation, and unknown-token fallback behavior.

Plugin catalog and 3.10.0 release

Layer / File(s) Summary
Plugin metadata synchronization
packages/plugins/.bin/catalog-sync.mjs, packages/plugins/.setup/catalog.json, packages/plugins/.setup/community-plugin-template.md, package.json
Adds catalog synchronization for local and external plugins, initial metadata, publishing guidance, and the root npm script.
Catalog build and documentation-site integration
packages/tempo/bin/build-catalog.mjs, packages/tempo/package.json, packages/tempo/.vitepress/theme/...
Builds versioned VitePress catalog data and renders static plugin entries with copied-install feedback.
Plugin API and documentation alignment
packages/plugins/finance/..., packages/tempo/doc/...
Renames FinancePlugin to FinanceNamespace, updates TickerPlugin references, and revises related plugin, migration, cookbook, and core-concept documentation.
Version and release metadata
CHANGELOG.md, packages/*/package.json, packages/tempo/src/tempo.version.ts, packages/tempo/doc/8-project-and-support/releases/v3.x.md
Bumps versions to 3.10.0 and adds corresponding release and documentation-alignment entries.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Tempo
  participant Registry
  participant Formatter
  participant Evaluator
  Tempo->>Registry: initialize registry.tokens
  Registry->>Formatter: provide merged token definitions
  Formatter->>Evaluator: evaluate custom token with ZonedDateTime and context
  Evaluator-->>Formatter: return token output
  Formatter-->>Tempo: return formatted string
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main changes: new format modifiers and custom format tokens.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/postplugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/tempo/doc/1-getting-started/installation.md`:
- Around line 144-146: Update the TickerPlugin examples in
packages/tempo/doc/1-getting-started/installation.md (lines 144-146) and
packages/tempo/doc/8-project-and-support/releases/v3.x.md (lines 333-340) to
call Tempo.init({ license: 'YOUR_JWT_KEY' }) before Tempo.extend(TickerPlugin).

In `@packages/tempo/doc/3-extending-tempo/tempo.plugin.md`:
- Line 11: Update the “Naming Convention Standard” heading in the documentation
to use the expected ## level, preserving the surrounding heading hierarchy.
- Around line 11-17: Update the “Naming Convention Standard” section to
explicitly define the exported-symbol suffix for plugins built with
defineModule, ensuring it is consistent with the later defineModule examples and
the stated Module guidance. Keep the existing definePlugin, defineTerm, and
defineNamespace conventions unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ff65ad36-ba4c-4e53-b891-5227bcfefd82

📥 Commits

Reviewing files that changed from the base of the PR and between 3269abe and 3020c2c.

📒 Files selected for processing (32)
  • CHANGELOG.md
  • package.json
  • packages/library/package.json
  • packages/plugins/.bin/README.md
  • packages/plugins/.bin/catalog-sync.mjs
  • packages/plugins/.setup/catalog.json
  • packages/plugins/.setup/community-plugin-template.md
  • packages/plugins/finance/README.md
  • packages/plugins/finance/doc/index.md
  • packages/plugins/finance/src/index.ts
  • packages/plugins/finance/test/finance.test.ts
  • packages/plugins/snap/README.md
  • packages/tempo/.vitepress/theme/components/CatalogList.vue
  • packages/tempo/.vitepress/theme/data/catalog.json
  • packages/tempo/CHANGELOG.md
  • packages/tempo/bin/build-catalog.mjs
  • packages/tempo/doc/1-getting-started/installation.md
  • packages/tempo/doc/1-getting-started/tempo.cookbook.md
  • packages/tempo/doc/2-core-concepts/tempo.config.md
  • packages/tempo/doc/2-core-concepts/tempo.format.md
  • packages/tempo/doc/2-core-concepts/tempo.mutate.md
  • packages/tempo/doc/2-core-concepts/tempo.parse.md
  • packages/tempo/doc/3-extending-tempo/tempo.namespace.md
  • packages/tempo/doc/3-extending-tempo/tempo.plugin.md
  • packages/tempo/doc/8-project-and-support/commercial.md
  • packages/tempo/doc/8-project-and-support/migration-guide.md
  • packages/tempo/doc/8-project-and-support/releases/v3.x.md
  • packages/tempo/package.json
  • packages/tempo/src/module/module.format.ts
  • packages/tempo/src/support/support.init.ts
  • packages/tempo/src/tempo.version.ts
  • packages/tempo/test/discrete/format.test.ts

Comment thread packages/tempo/doc/1-getting-started/installation.md
Comment thread packages/tempo/doc/3-extending-tempo/tempo.plugin.md Outdated
Comment thread packages/tempo/doc/3-extending-tempo/tempo.plugin.md Outdated
@magmacomputing
magmacomputing merged commit 0d24667 into main Jul 19, 2026
5 checks passed
@magmacomputing
magmacomputing deleted the release/postplugin branch July 19, 2026 01:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant