Migration Guide¶
Migration from v2¶
v3 introduces a new directory structure, kebab-case naming, and removes several deprecated features. If you are upgrading from v2, follow these steps.
1. Update Imports¶
The package entry point is unchanged, but you should update any version-pinned imports:
// Before (v2)
#import "@preview/brilliant-cv:2.0.3": *
// After (v3)
#import "@preview/brilliant-cv:3.2.0": *
2. Parameter Renaming (now panics)¶
In v3, all camelCase parameter aliases panic at compile time instead of silently mapping to the new names. Update all call sites:
| Old (v2, camelCase) | New (v3, kebab-case) | Function |
|---|---|---|
profilePhoto |
profile-photo |
cv() |
myAddress |
sender-address |
letter() |
recipientName |
recipient-name |
letter() |
recipientAddress |
recipient-address |
letter() |
awesomeColors |
awesome-colors |
cv-section, cv-entry, cv-honor, etc. |
refStyle |
ref-style |
cv-publication |
refFull |
ref-full |
cv-publication |
keyList |
key-list |
cv-publication |
3. Removed Function Aliases (now panic)¶
The old camelCase function names now panic immediately. Rename all usages:
| Old (v2) | New (v3) |
|---|---|
cvEntry |
cv-entry |
cvEntryStart |
cv-entry-start |
cvEntryContinued |
cv-entry-continued |
cvSection |
cv-section |
cvSkill |
cv-skill |
cvSkillWithLevel |
cv-skill-with-level |
cvSkillTag |
cv-skill-tag |
cvHonor |
cv-honor |
cvPublication |
cv-publication |
hBar |
h-bar |
4. Removed [inject] Keys (now panic)¶
The old injection keys have been removed. If your metadata.toml still contains them, the CV will panic:
# Before (v2) — these now cause panics
[inject]
inject_ai_prompt = true
inject_keywords = true
injected_keywords_list = ["Python", "SQL"]
# After (v3) — just use the list directly; remove the boolean flags
[inject]
injected_keywords_list = ["Python", "SQL"]
# custom_ai_prompt_text = "Optional custom prompt"
inject_keywordshas been removed — ifinjected_keywords_listis present, keywords are injected automaticallyinject_ai_prompthas been removed — usecustom_ai_prompt_textinstead
5. Template Updates¶
If you are using the template, update your cv.typ and letter.typ to use the new parameter names. See the API Reference for the current signatures.
Migration from v1¶
Note
The version v1 is now deprecated, due to the compliance to Typst Packages standard. However, if you want to continue to develop on the older version, please refer to the v1-legacy branch.
With an existing CV project using the v1 version of the template, a migration is needed, including replacing some files and some content in certain files.
-
Delete old submodule — Remove the
brilliant-CVfolder and.gitmodules. Future package management is handled directly by Typst. -
Migrate metadata — Migrate all the config from
metadata.typby creating a newmetadata.toml. Follow the example TOML file in the repo — it is rather straightforward to migrate. -
Update entry points — For
cv.typandletter.typ, copy the new files from the repo, and adapt the modules you have in your project. -
Update module files in
modules_*/:- Delete the old import
#import "../brilliant-CV/template.typ": *, and replace it with the import statements from the new template files. - Due to the Typst path handling mechanism, one cannot directly pass the path string to some functions anymore. This concerns, for example, the
logoargument incv-entry, but alsocv-publicationas well. Some parameter names were changed, but most importantly, you should pass a function instead of a string (i.e.image("logo.png")instead of"logo.png"). Refer to the new template files for reference.
- Delete the old import
-
Install fonts — You might need to install
FontAwesome 6,RobotoandSource Sans Proon your local system now, as new Typst package guidelines discourage including these large files. -
Compile — Run
typst compile cv.typwithout passing thefont-pathflag. All should be good now — congrats!
Tip
Feel free to raise an issue for more assistance should you encounter a problem that you cannot solve on your own.