Skip to content

altacv:0.3.0#5037

Closed
smur89 wants to merge 1 commit into
typst:mainfrom
smur89:altacv-0.3.0
Closed

altacv:0.3.0#5037
smur89 wants to merge 1 commit into
typst:mainfrom
smur89:altacv-0.3.0

Conversation

@smur89

@smur89 smur89 commented Jun 11, 2026

Copy link
Copy Markdown

First submission of altacv — a Typst CV template inspired by LianTze Lim's AltaCV (LaTeX), forked from GeorgeHoneywood/alta-typst and rewritten around a JSON Resume-style cv data dict with labels (i18n) and preferences (theme + behaviour) extension points.

Package metadata

Submission checklist

  • Package compiles without errors; typst compile passes against lib.typ and the example.
  • Name follows the naming rules — lowercase, no separators, distinct from the existing alta and brilliant-cv packages.
  • README documents the public API, schema, configuration, and credits, with examples that compile against the version being submitted.
  • Manifest's license field (MIT) matches the contents of the LICENSE file.
  • Bundle excludes generated artefacts — only typst.toml, lib.typ, icons/ (7 vendored FontAwesome SVGs used by the contact bar), LICENSE, and README.md are included. Preview image referenced from the README is hosted on the source repo's releases, not bundled.

@smur89 smur89 temporarily deployed to Package Check June 11, 2026 17:44 — with GitHub Actions Inactive
@typst-package-check typst-package-check Bot added the new A new package submission. label Jun 11, 2026
smur89 added a commit to smur89/alta-typst that referenced this pull request Jun 11, 2026
The [Typst Universe automated
check](typst/packages#5037) on altacv 0.3.0
raised two errors and two warnings. This PR addresses all four; once
merged, release-please cuts a 0.3.1 patch with the corrected manifest +
README.

## Errors

- **`README.md:62`** — `examples/example.typ` and `tests/` are
referenced via relative links, but those directories are intentionally
excluded from the package bundle (only `typst.toml`, `lib.typ`,
`icons/`, `LICENSE`, `README.md` ship). The dangling links failed the
bundle integrity check. Replaced with a textual mention plus one link to
the source repository.

## Warnings

- **`typst.toml:7`** — `description` started with "Typst CV template …";
the [manifest
guidelines](https://github.com/typst/packages/blob/main/docs/manifest.md#writing-a-good-description)
say the field should generally not contain the word `Typst` (every
Universe package is Typst by definition).
- **`README.md:9`** — hero image's alt text was just `Preview`. Replaced
with a descriptive sentence covering layout and section content for
accessibility.

## Follow-up

After merge, release-please will open a release PR proposing `0.3.1`.
Merging that cuts the tag + release. Submission of `altacv:0.3.1` to
typst/packages will:

- happen **automatically** if PR #6 (the auto-submit workflow) is
already merged, or
- be done **manually** via the same flow we used for 0.3.0.

We should also **close
[typst/packages#5037](typst/packages#5037
once 0.3.1 is submitted — the 0.3.0 directory in that PR has the unfixed
README/manifest and cannot be patched in place without inconsistency
with the released tarball.

Co-authored-by: Shane Murphy <shane@swissborg.com>
smur89 added a commit to smur89/alta-typst that referenced this pull request Jun 11, 2026
## Summary

Adds a `submit-to-typst-universe` job to `.github/workflows/build.yml`
that runs after each release-please tag is cut. It opens a PR on
[typst/packages](https://github.com/typst/packages) submitting
`altacv:<version>` to Typst Universe — replacing the manual fork-and-PR
ritual we just did by hand for 0.3.0.

## How it works

- Gated on `release-please.outputs.release_created == 'true'`,
downstream of `attach-release-artifacts` so the tarball is guaranteed to
exist on the release before the submission runs.
- Idempotent: if an open PR for the current version already exists
upstream (matched by title `altacv:<version>`), the job exits cleanly. A
re-run from the Actions UI won't double-submit.
- Branches off `upstream/main` (not the fork's main), so the cross-repo
diff is just the new `packages/preview/altacv/<version>/` directory — no
stale fork commits leaking in.
- The PR body matches the shape of the [PR I opened manually for
0.3.0](typst/packages#5037): metadata +
submission checklist with links to the release.

## One-time setup before this can run

1. Fork [typst/packages](https://github.com/typst/packages) →
`smur89/packages` (already done for the 0.3.0 manual submission).
2. Create a [fine-grained
PAT](https://github.com/settings/personal-access-tokens) scoped to
`smur89/packages` with **Contents: read+write** and **Pull requests:
read+write**.
3. Store the PAT as a repository secret named `TYPST_UNIVERSE_TOKEN`
here on `smur89/alta-typst`.

These prerequisites are also documented as a comment block above the new
job for future reference.

## Edge cases not covered

- **Re-submission after maintainer rejection**: if Typst maintainers ask
for changes, the workflow will still try to open a fresh PR on the next
release. The user closes the previous PR first, or amends manually.
Acceptable for now — re-submissions are rare and intentional.
- **Patch releases of an already-merged version**: shouldn't happen with
our release-please setup (each release gets a unique version), but if it
did, upstream typst/packages would reject the duplicate directory.

## Test plan

- [ ] CI passes (no syntax errors in the workflow itself).
- [ ] After this merges and `TYPST_UNIVERSE_TOKEN` is added as a secret,
the **next** release of altacv automatically opens a PR on
typst/packages.
- [ ] If a release is cut while the upstream typst/packages PR #5037 is
still open, the job's idempotency check kicks in and skips cleanly (PR
titles match: `altacv:0.3.0`).

---------

Co-authored-by: Shane Murphy <shane@swissborg.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new A new package submission.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant