Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
0ae83e0
Removed `__pycache__` from the output directory (#512)
theobori Oct 22, 2025
c979ad2
feat(docker): build slim runtime from multi-stage image (#511)
jakob1379 Oct 22, 2025
9ef979d
ci: trigger publish workflow on semver tags (#509)
jakob1379 Oct 22, 2025
0e84189
build(deps): bump phonenumbers from 9.0.13 to 9.0.16 (#505)
dependabot[bot] Oct 22, 2025
580152e
build(deps): bump pydantic-extra-types from 2.10.2 to 2.10.6 (#504)
dependabot[bot] Oct 22, 2025
e7be281
build(deps): bump email-validator from 2.2.0 to 2.3.0 (#501)
dependabot[bot] Oct 22, 2025
f7d058a
build(deps): bump packaging from 24.2 to 25.0 (#500)
dependabot[bot] Oct 22, 2025
9510138
ci(pre-commit): add yamllint (#496)
thiagowfx Oct 22, 2025
bf45cb2
Add IMDB social network (#479)
heavyimage Oct 22, 2025
1f09dd4
Add more system fonts (#466)
IanHollow Oct 22, 2025
7586b47
fix all test errors and warnings (#456)
IanHollow Oct 22, 2025
21f96a5
Search and replace 'parial' with 'partial'. (#380)
thomascamminady Oct 22, 2025
24f2218
Arbitrary keys bug? (#457)
corwinmacmillan Oct 22, 2025
bebbf8d
Create optional automaitc sorting capabilites for entries (#461)
IanHollow Oct 23, 2025
f188699
use YAML key order to determine header order (#455)
IanHollow Oct 23, 2025
8ad18fe
add grade field to education entry (#463)
IanHollow Oct 23, 2025
5156f77
Switch to `uv` (#515)
sinaatalay Oct 28, 2025
234c0fa
Fix docs
sinaatalay Oct 28, 2025
47aba8c
build(deps): bump astral-sh/setup-uv from 6 to 7 (#522)
dependabot[bot] Oct 28, 2025
972e982
build(deps): bump actions/download-artifact from 5 to 6 (#524)
dependabot[bot] Oct 28, 2025
9996ca5
build(deps): bump actions/upload-artifact from 4 to 5 (#523)
dependabot[bot] Oct 28, 2025
10191eb
Update schema.json, examples, and entry figures
github-actions[bot] Oct 28, 2025
ddd75ca
Fix create executable script
sinaatalay Oct 28, 2025
5165d4c
Zip executables
sinaatalay Oct 28, 2025
0be78fb
Generate release notes automatically
sinaatalay Oct 28, 2025
4c5545e
Trigger release workflow on release, not tag push, and update changelog
sinaatalay Oct 28, 2025
4884ac0
Fix precommit
sinaatalay Oct 28, 2025
db9aafc
ci(pytest): use pytest-xdist to run tests in parallel (#527)
jakob1379 Oct 29, 2025
dc11b1c
Reduce coverage threshold temporarily
sinaatalay Oct 30, 2025
a45537d
Build/test in parallel - now with proper coverage reporting (#535)
jakob1379 Nov 18, 2025
5cc5fbd
Massive Refactor: Architecture Redesign and Technical Debt Cleanup (#…
sinaatalay Dec 9, 2025
d1d49d7
Fix GitHub workflows
sinaatalay Dec 9, 2025
65abc2c
Disable pyright in pre-commit for now
sinaatalay Dec 9, 2025
a32561b
uv sync locked in workflows
sinaatalay Dec 9, 2025
cec7dff
Resolve script dependency issues
sinaatalay Dec 9, 2025
f62b330
Use frozen instead of locked in uv
sinaatalay Dec 9, 2025
6077568
Remove just sync from workflows
sinaatalay Dec 9, 2025
9e5130e
Update JSON Schema
sinaatalay Dec 9, 2025
6bd1cad
Improve error handling
sinaatalay Dec 9, 2025
fcdbacb
Update custom theme image
sinaatalay Dec 9, 2025
51979c6
Fix Windows tests
sinaatalay Dec 9, 2025
a419a7a
Update error dictionary for Python 3.14
sinaatalay Dec 9, 2025
72b6ed3
Add invalid whatsapp username test
sinaatalay Dec 9, 2025
0dfe129
Increase test coverage
sinaatalay Dec 9, 2025
0facddf
Fix README.md links
sinaatalay Dec 9, 2025
33d15d0
Polish docs
sinaatalay Dec 10, 2025
8fd55e2
Comment out locale part in sample content
sinaatalay Dec 10, 2025
339a418
Update tool coverage config
sinaatalay Dec 10, 2025
c36e6d1
Update changelog
sinaatalay Dec 10, 2025
51205da
Update release.yaml workflow
sinaatalay Dec 10, 2025
8563f72
Fix render command issue (#543)
sinaatalay Dec 10, 2025
1fcf6cd
CLI improvements
sinaatalay Dec 10, 2025
d6b6d2d
Bump to v2.5
sinaatalay Dec 10, 2025
f8c353b
Update Dockerfile and justfile
sinaatalay Dec 10, 2025
dfa53be
Fix Windows tests
sinaatalay Dec 10, 2025
484b101
Fix spelling
sinaatalay Dec 10, 2025
81851c1
Fix cli tests
sinaatalay Dec 10, 2025
4e00ba7
Format
sinaatalay Dec 10, 2025
ee3c6f3
Increase test coverage
sinaatalay Dec 10, 2025
053d688
Improve docs
sinaatalay Dec 11, 2025
ac82818
Fix multiline summary issues
sinaatalay Dec 12, 2025
cfb4820
Remove transformation to absolute path in render command
sinaatalay Dec 12, 2025
547b6dc
Improve placeholders and JSON Schema
sinaatalay Dec 12, 2025
1e04ab0
Fix settings field issues
sinaatalay Dec 12, 2025
1ffdf86
Update changelog
sinaatalay Dec 13, 2025
18b3d9a
Remove typst from md and html (#563) (#564)
jrdnbradford Dec 21, 2025
17114e0
Add Bluesky (#560)
jrdnbradford Dec 21, 2025
b524e37
Switch from pyright to ty (https://github.com/astral-sh/ty)
sinaatalay Dec 22, 2025
deee492
Fix trailing whitespace issues
sinaatalay Dec 22, 2025
17b3f66
Use prek instead of pre-commit
sinaatalay Dec 22, 2025
3d12051
Fix testdata files
sinaatalay Dec 22, 2025
ca16163
Test invalid Bluesky username
sinaatalay Dec 22, 2025
b1f8505
Fix smokeshow for PRs
sinaatalay Dec 22, 2025
7ecb73a
Update `Set Up VS Code for RenderCV` page in docs
sinaatalay Dec 22, 2025
12f7aaf
Improve Pydantic error handling
sinaatalay Dec 22, 2025
bfda704
Update examples and schema
sinaatalay Dec 22, 2025
43312b9
Fix tests
sinaatalay Dec 22, 2025
83114b0
feat(locale): add indonesian locale (#567)
akmalsyrf Dec 23, 2025
3360db3
feat(locale): add Danish locale (#556)
jakob1379 Dec 23, 2025
c61bba3
docs: remove pyright and pre-commit from developer guide and mention …
sinaatalay Dec 23, 2025
7aa105a
Add web app to docs navbar
sinaatalay Dec 23, 2025
1d9deda
Fix Unicode corruption in sample YAML name generation (#570)
Sikriet Dec 23, 2025
32d67b0
Improve markdown templates
sinaatalay Dec 23, 2025
8cac0e9
Update changelog for v2.6
sinaatalay Dec 23, 2025
71298ca
Replace asserts with explicit error handling (#589)
kellemar Dec 25, 2025
2276102
fix the filename in pdf header rendercv/rendercv#557 (#575)
abidkhan484 Dec 25, 2025
c9cefc1
feat(locale): add Dutch (NL) locale (#585)
MattiaPun Dec 25, 2025
1168d02
Monkey-patch the YAML composer to treat aliases as literal strings
sinaatalay Dec 26, 2025
2154313
Raise error for not provided url in links
sinaatalay Dec 26, 2025
0208abe
Update optional and required dependencies
sinaatalay Dec 26, 2025
68ea7c3
Fix YAML composer
sinaatalay Dec 26, 2025
24b89be
Don't allow extra keys in top schema model
sinaatalay Dec 26, 2025
5afb8bf
Fix typo: 'wory' -> 'worry' in README and docs (#616)
trahoangdev Dec 31, 2025
f1ae13c
Make path serialization more robust
sinaatalay Feb 5, 2026
489043d
Format pyproject.toml and bump dev dependencies
sinaatalay Feb 5, 2026
414cbba
Ignore some ty errors
sinaatalay Feb 5, 2026
ca177d4
Fix Windows test
sinaatalay Feb 6, 2026
d6fcf1d
fix: :bug: design file not applying with settings file (#642)
tanmay-pathak Feb 15, 2026
0d7070a
Update README.md
sinaatalay Feb 16, 2026
04bd919
Improve schema model builder
sinaatalay Feb 16, 2026
2f9e8ad
Improve Pydantic error handling for multiple YAML sources
sinaatalay Feb 16, 2026
a7b6e9a
feat: Add Reddit social network (#658)
jrdnbradford Feb 16, 2026
0adb674
Remove duplicate font from `available_font_families` (#643)
lucafrance Feb 16, 2026
e9db78b
Make PyPI version check non-blocking (thanks for the idea #615)
sinaatalay Feb 16, 2026
710d4a1
feat(locale): Added Norwegian (Bokmål and Nynorsk) locale (#652)
andersgaustad Feb 16, 2026
4215659
pre-commit autoupdate (#607)
cclauss Feb 16, 2026
9b26e3b
Feature/add day placeholder to single date formatting (fixes #548) (#…
shraddhaa09 Feb 16, 2026
65d7028
Bump versions
sinaatalay Feb 16, 2026
cf11952
fix(locale): correct Mandarin Chinese spelling and schema validation …
ccasJay Feb 16, 2026
c18fcbf
build(deps): bump actions/download-artifact from 6 to 7 (#622)
dependabot[bot] Feb 16, 2026
808ab9e
build(deps): bump actions/upload-artifact from 5 to 6 (#623)
dependabot[bot] Feb 16, 2026
bb4349a
Implement locale.phrases (#618)
sinaatalay Feb 16, 2026
3685da2
Automatically delete obsolete PNG files (#590)
danielrafailov1 Feb 16, 2026
18485d7
feat: watch mode now monitors included config files (#579)
majiayu000 Feb 16, 2026
cfdaf9c
Fix render --quiet option issue #608 (#610)
pramanandasarkar02 Feb 16, 2026
5446f38
Update `clean_url` docstring #614
sinaatalay Feb 16, 2026
abfe1e1
feat: add --output-folder option to specify output directory (#578)
majiayu000 Feb 16, 2026
06a6786
Create llms.txt
sinaatalay Feb 16, 2026
9611320
Add degree_width field to design.entries (#671)
sinaatalay Feb 17, 2026
4a9083c
Add Arabic locale support (#591)
husam515 Feb 17, 2026
d0b2e12
Add `settings.pdf_title` field in order to customize the title of pro…
diorcety Feb 17, 2026
2b08030
Add pyodide tests
sinaatalay Feb 17, 2026
f974b6d
Better YAML error handling
sinaatalay Feb 17, 2026
30a771f
Docs new design
sinaatalay Feb 17, 2026
fd5409c
Support "today" in `settings.current_date`
sinaatalay Feb 17, 2026
87c7640
Fix `settings.current_date` issues
sinaatalay Feb 18, 2026
f24fb49
Don't allow extra keys in `cv`
sinaatalay Feb 18, 2026
01eab15
Add Hebrew and Persian locales
sinaatalay Feb 18, 2026
49a95fd
Fix tests
sinaatalay Feb 18, 2026
b1db1bb
Remove llms.txt and add more sample generators
sinaatalay Feb 19, 2026
314dbb8
Remove common system font families from the schema
sinaatalay Mar 2, 2026
9cc4f4b
Add devcontainer
sinaatalay Mar 2, 2026
78d359f
Fix Arabic, Hebrew, and Persian locales
sinaatalay Mar 2, 2026
b4bea9e
Allow URLs for `cv.photo` field
sinaatalay Mar 2, 2026
6097889
Enforce all fields to be defined in other locales folder
sinaatalay Mar 2, 2026
a5d4355
Improve Typst compiler caching
sinaatalay Mar 2, 2026
1bd0277
Allow empty sections
sinaatalay Mar 2, 2026
67f1d96
Fix Windows tests
sinaatalay Mar 2, 2026
020c73b
build(deps): bump actions/attest-build-provenance from 3 to 4 (#682)
dependabot[bot] Mar 2, 2026
ff81b46
build(deps): bump actions/upload-artifact from 6 to 7 (#681)
dependabot[bot] Mar 2, 2026
984e7b9
build(deps): bump actions/download-artifact from 7 to 8 (#680)
dependabot[bot] Mar 2, 2026
2e329bd
Don't fail on empty links
sinaatalay Mar 2, 2026
eb3cc34
Remove `ex` unit from TypstDimension
sinaatalay Mar 2, 2026
4ee5c0f
Improve docs header
sinaatalay Mar 2, 2026
9e773d6
Only catch full words in `settings.bold_keywords`
sinaatalay Mar 2, 2026
0ebcf36
Update sample content and examples
sinaatalay Mar 3, 2026
da2e657
Increase test coverage
sinaatalay Mar 3, 2026
45404c2
Fix nested bullet handling in `sample_generator.py`
sinaatalay Mar 3, 2026
4c61717
Clean up characters around empty string inputs
sinaatalay Mar 4, 2026
e45575e
Add `omitted_fields` argument to `create_sample_settings_file`
sinaatalay Mar 4, 2026
bb143b3
v2.7 release
sinaatalay Mar 6, 2026
a818d88
Update `schema.json` and example pdfs
sinaatalay Mar 6, 2026
53c7343
Update web app link in docs
sinaatalay Mar 6, 2026
59c02dd
Add ATS compatibility testing suite with PDF rendering, analysis, and…
sinaatalay Mar 19, 2026
7138cee
Fix orphaned connector words when placeholders are removed from templ…
sinaatalay Mar 19, 2026
0c45adf
Fix formatting and linting issues
sinaatalay Mar 19, 2026
9b7830a
Create new theme: `harvard`
sinaatalay Mar 19, 2026
663ced0
Refactor docs folder structure
sinaatalay Mar 20, 2026
1acdd29
Move `rendercv-typst` Typst package source into this repository
sinaatalay Mar 20, 2026
4e07fa2
Add centered section title types and bump rendercv-typst to 0.3.0
sinaatalay Mar 20, 2026
67c7ccf
Publish Typst package and add skill for publishing Typst package.
sinaatalay Mar 20, 2026
44dee63
Add entry figures for Harvard theme
sinaatalay Mar 20, 2026
5927cf0
Update Harvard theme
sinaatalay Mar 20, 2026
009eec5
Bundle rendercv-typst inside the Python package to decouple from Typs…
sinaatalay Mar 20, 2026
bc87090
Add tests for uncovered edge cases in pdf_png and sample_generator
sinaatalay Mar 20, 2026
021c9fb
Add RenderCV skill with eval framework and auto-generated docs/llms.txt
sinaatalay Mar 20, 2026
9b83f07
Move distributable skill to rendercv/rendercv-skill submodule
sinaatalay Mar 20, 2026
16f8753
Rename publish-typst-package skill and add solve-rendercv-issue skill
sinaatalay Mar 20, 2026
3f432b3
Setup Claude Code automation
sinaatalay Mar 20, 2026
61e5396
Update rendercv-skill
sinaatalay Mar 20, 2026
9bc8c28
Add Ink, Opal, and Ember themes with examples, docs, and test data
sinaatalay Mar 20, 2026
fb9b0e9
Fix EducationEntry location placement in markdown reference file (#691)
noahcroghan Mar 20, 2026
7d426c7
Setup multi-platform docker build (#697)
quentinms Mar 20, 2026
585d663
build(deps-dev): update griffe requirement from <2,>=1.0 to >=1.0,<3 …
dependabot[bot] Mar 20, 2026
e80ecfc
Fix #685: Process markdown lines independently to prevent cross-line …
sinaatalay Mar 20, 2026
21e3cd7
Fix #673: Make copied template files writable for immutable distros
sinaatalay Mar 20, 2026
847e4f9
Fix #689: Allow arbitrary font names in JSON schema while keeping enu…
sinaatalay Mar 20, 2026
d5c1e72
Fix #690: Load design/locale overlay files from YAML settings.render_…
sinaatalay Mar 20, 2026
295ae61
Fix #653: Allow SUMMARY placeholder to be used inline in templates
sinaatalay Mar 20, 2026
d9864d9
Revert "Fix #689: Allow arbitrary font names in JSON schema while kee…
sinaatalay Mar 20, 2026
70d9efc
Fix #595: Auto-create intermediate dicts for CLI overrides on missing…
sinaatalay Mar 20, 2026
da94718
Update dev tooling and dependencies to latest versions
sinaatalay Mar 20, 2026
8961744
Extract shared development and testing context into reusable skills
sinaatalay Mar 20, 2026
4206be2
Fix Docker command in docs to avoid permission issues and leftover co…
sinaatalay Mar 20, 2026
3b6f20f
Fix custom fonts folder not found when using relative input path (#692)
MatthewSZhang Mar 20, 2026
a259aff
Add Hungarian locale support
sinaatalay Mar 20, 2026
2569d84
Add Vietnamese locale support
trahoangdev Mar 20, 2026
e9da588
Revert "Add Hungarian locale support"
sinaatalay Mar 20, 2026
a1c4709
Add Hungarian locale support
Skeleton022 Mar 20, 2026
4a89560
Update AI skill docs to frame as skills standard, add eval details
sinaatalay Mar 20, 2026
065125c
Update rendercv-skill
sinaatalay Mar 21, 2026
2eba248
Update changelog for version 2.8 release
sinaatalay Mar 21, 2026
e445296
Update skill guides
sinaatalay Mar 21, 2026
c917f3a
Add typst-fontawesome as bundled Typst package for offline icon support
sinaatalay Mar 21, 2026
dd5ac91
Fix test_raises_error_when_version_missing_from_typst_toml match pattern
sinaatalay Mar 21, 2026
617dcf7
Fix offline wheel test failing on Windows due to hardcoded Unix venv …
sinaatalay Mar 21, 2026
56c30dc
Show stdout/stderr in offline wheel test failures for better diagnostics
sinaatalay Mar 21, 2026
9387166
Fix offline wheel test Unicode crash on Windows
sinaatalay Mar 21, 2026
e8eb000
Better branding in the documentation
sinaatalay Mar 21, 2026
d475aab
Fix logo and title hover effect to only apply when not scrolled
sinaatalay Mar 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 17 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "cd \"$CLAUDE_PROJECT_DIR\" && just check",
"timeout": 120,
"statusMessage": "Running just check..."
}
]
}
]
}
}
195 changes: 195 additions & 0 deletions .claude/skills/publish-rendercv-typst-package/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
---
name: publish-rendercv-typst-package
description: Create a PR to publish a new version of the rendercv-typst package to the Typst Universe (typst/packages repository). Validates package integrity, forks/clones the repo, copies files, and opens a PR.
disable-model-invocation: true
---

# Publish rendercv-typst to Typst Universe

Create a pull request to `typst/packages` to publish the current version of `src/rendercv/renderer/rendercv_typst/`.

The clone location for the typst/packages fork is `$HOME/.cache/rendercv/typst-packages`.

## Step 1: Read package metadata

Read `src/rendercv/renderer/rendercv_typst/typst.toml` to get the version and all metadata fields.

## Step 2: Validate package integrity

Run ALL checks below. Collect ALL failures and report them together. Do NOT proceed to Step 3 if any check fails.

### 2a: Required files

Verify these exist in `src/rendercv/renderer/rendercv_typst/`:
- `lib.typ`
- `typst.toml`
- `README.md`
- `LICENSE`
- `thumbnail.png`
- `template/main.typ`

### 2b: Manifest completeness

Parse `typst.toml` and verify it has:
- Required: `name`, `version`, `entrypoint`, `authors`, `license`, `description`
- Template section: `[template]` with `path`, `entrypoint`, `thumbnail`

### 2c: Version consistency

Check that the version string in `typst.toml` appears correctly in:
- `README.md` import statements (`@preview/rendercv:X.Y.Z`)
- `template/main.typ` import statement (`@preview/rendercv:X.Y.Z`)
- All example files in `src/rendercv/renderer/rendercv_typst/examples/*.typ` (if they have import statements)

If ANY file references an old version, stop and report which files need updating.

### 2d: CHANGELOG entry

Read `src/rendercv/renderer/rendercv_typst/CHANGELOG.md` and verify there is an entry for the version being published.

### 2e: All themes have example files

This is critical. Extract all theme names shown in the README by finding image references that match the pattern `examples/<theme-name>.png` in the image URLs. Then verify that EVERY theme has a corresponding `<theme-name>.typ` file in `src/rendercv/renderer/rendercv_typst/examples/`.

For example, if the README shows images for classic, engineeringresumes, sb2nov, moderncv, engineeringclassic, and harvard, then ALL of these must exist as `.typ` files in `src/rendercv/renderer/rendercv_typst/examples/`.

If any example file is missing, STOP and tell the user exactly which files are missing.

### 2f: No stale or broken links

Check that the `README.md` does not reference nonexistent files within the package (e.g., broken relative links).

### 2g: Import style in template

Verify `template/main.typ` uses the absolute package import (`@preview/rendercv:{version}`) and NOT a relative import like `../lib.typ`. The Typst packages repository requires absolute imports.

## Step 3: Handle previous work

1. Check for existing open PRs for rendercv in `typst/packages`:
```
gh pr list --repo typst/packages --author @me --search "rendercv" --state all
```

2. If an existing PR is **open**, ask the user what to do:
- Update the existing PR?
- Close it and create a new one?
- Abort?

3. If the clone directory `$HOME/.cache/rendercv/typst-packages` already exists:
- If there are old branches for previous versions that have been merged/closed, delete them.
- Reset to upstream/main before proceeding.

## Step 4: Set up fork and clone

### If clone does NOT exist:

```bash
mkdir -p $HOME/.cache/rendercv
# Fork if not already forked (idempotent)
gh repo fork typst/packages --clone=false
# Clone with sparse checkout
gh repo clone $(gh api user --jq .login)/packages $HOME/.cache/rendercv/typst-packages -- --filter=blob:none --sparse
cd $HOME/.cache/rendercv/typst-packages
git sparse-checkout set packages/preview/rendercv
git remote add upstream https://github.com/typst/packages.git 2>/dev/null || true
git fetch upstream main
```

### If clone ALREADY exists:

```bash
cd $HOME/.cache/rendercv/typst-packages
git fetch upstream main
git checkout main
git reset --hard upstream/main
```

## Step 5: Create the package version directory

1. Read the version from `typst.toml` (e.g., `0.3.0`).
2. Create a new branch: `git checkout -b rendercv-{version}`
3. Create the target directory: `packages/preview/rendercv/{version}/`
4. Copy files from the rendercv-typst source directory into the target:

**Files to copy:**
- `lib.typ`
- `typst.toml`
- `README.md`
- `LICENSE`
- `thumbnail.png`
- `template/` (entire directory)
- `examples/` (entire directory, but exclude any `.pdf` files)

**Do NOT copy:**
- `CHANGELOG.md`
- `.git/` or `.gitignore`
- Any `.pdf` files

5. Verify no PDF files ended up in the target directory.

## Step 6: Determine previous version

Look at existing directories in `packages/preview/rendercv/` to find the most recent previous version. This is needed for the PR description. If no previous version exists (first submission), note that this is a new package.

## Step 7: Build PR description

Read `src/rendercv/renderer/rendercv_typst/CHANGELOG.md` and extract the changes for the current version.

**PR title:** `rendercv:{version}`

**PR body for updates:**
```
I am submitting
- [ ] a new package
- [x] an update for a package

Description: {Brief description of the package}. {Summary of what changed in this version}.

### Changes from {previous_version}

{Bullet list of changes extracted from CHANGELOG.md}
```

**PR body for new packages** (if no previous version exists, include the full checklist):
```
I am submitting
- [x] a new package
- [ ] an update for a package

Description: {Description from typst.toml}

I have read and followed the submission guidelines and, in particular, I
- [x] selected a name that isn't the most obvious or canonical name for what the package does
- [x] added a `typst.toml` file with all required keys
- [x] added a `README.md` with documentation for my package
- [x] have chosen a license and added a `LICENSE` file or linked one in my `README.md`
- [x] tested my package locally on my system and it worked
- [x] `exclude`d PDFs or README images, if any, but not the LICENSE
- [x] ensured that my package is licensed such that users can use and distribute the contents of its template directory without restriction, after modifying them through normal use.
```

## Step 8: Commit, push, and create PR

```bash
cd $HOME/.cache/rendercv/typst-packages
git add packages/preview/rendercv/{version}/
git commit -m "rendercv:{version}"
git push -u origin rendercv-{version}
```

Create the PR:
```bash
gh pr create \
--repo typst/packages \
--base main \
--title "rendercv:{version}" \
--body "..." # Use the body from Step 7
```

## Step 9: Report results

Tell the user:
1. The PR URL (clickable)
2. The clone location (`$HOME/.cache/rendercv/typst-packages`)
3. The branch name (`rendercv-{version}`)
4. Any warnings noticed during validation (even if they didn't block the PR)
82 changes: 82 additions & 0 deletions .claude/skills/rendercv-development-context/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
name: rendercv-development-context
description: RenderCV codebase architecture, source code standards, and project references. Use when writing or reviewing RenderCV code.
---

# RenderCV Development Context

## Codebase references

- @docs/developer_guide/understanding_rendercv.md
- @docs/developer_guide/testing.md
- @docs/developer_guide/json_schema.md
- @src/rendercv/schema/
- @src/rendercv/renderer/
- @src/rendercv/cli/
- @tests/
- @pyproject.toml
- @justfile

## How-to guides

- @docs/developer_guide/how_to/add_theme.md
- @docs/developer_guide/how_to/add_locale.md
- @docs/developer_guide/how_to/add_social_network.md

## Source code standards

### Type annotations

Every function, variable, and class attribute must be strictly typed. No exceptions.

Use modern Python 3.12+ syntax:

- Type aliases with `type` statement
- PEP 695 type parameters (`[T]`, `[**P]`)
- Pipe unions (`str | int`, not `Union[str, int]`)
- Proper optional types (`str | None`, not `Optional[str]`)

### Linting and type checking

Always run `just check` and `just format` before committing. `just check` must show **zero errors**:

```bash
just format
just check
```

If there's absolutely no alternative, use `# ty: ignore[error-code]` or `#NOQA: error-code` to ignore typing or linting errors.

### Docstrings

Use [Google-style docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings). Include a **"Why" section** and **"Example" section** when it adds value:

```python
def resolve_relative_path(
path: pathlib.Path, info: pydantic.ValidationInfo, must_exist: bool = True
) -> pathlib.Path:
"""Convert relative path to absolute path based on input file location.

Why:
Users reference files like `photo: profile.jpg` relative to their CV
YAML. This validator resolves such paths to absolute form and validates
existence, enabling file access during rendering.

Args:
path: Path to resolve (may be relative or absolute).
info: Validation context containing input file path.
must_exist: Whether to raise error if path doesn't exist.

Returns:
Absolute path.
"""
```

Docstring order:

1. Brief description (one line)
2. Why section (when it adds value)
3. Example section (when it adds value)
4. Args section (mandatory)
5. Returns section (mandatory)
6. Raises section (mandatory if function raises exceptions)
1 change: 1 addition & 0 deletions .claude/skills/rendercv-skill
Submodule rendercv-skill added at fc14e7
Loading