Use a combination of LaTeX, VS Code, and GitHub Actions to maintain and publish a curriculum vitae (CV) with versioning.
The following must be installed to work on the CV locally:
- A TeX distribution, preferably TeX Live. Your
PATH
must also point to your installed TeX distribution. - VS Code
TODO.
The .vscode
folder includes the recommended extensions.json
and settings.json
. Changes made here should be done sparingly, e.g., when required for dependency updates.
To install all recommended extensions for VS Code, use the @recommended
filter in the Extensions search bar, which can be accomplished with Command
+Shift
+P
(on MacOS) and search Show Recommended Extensions.
To enable LaTeX Workshop to correctly handle formatting on save, install the following Perl packages on your local machine via terminal:
sudo cpan Log::Log4perl
sudo cpan Log::Dispatch
sudo cpan YAML::Tiny
sudo cpan File::HomeDir
sudo cpan Unicode::GCString
This will require sudo
access, likely via password. Then, follow the prompts, choosing the defaults as you go.
Running brew install latexindent
may help resolve issues as well. If issues persist with compilation, re-install Perl packages above.
The CV is updated in the cv/
directory, which includes:
bib/
, the folder containing*.bib
files for formal references, like journal articles, conferences, and bookscv.cls
, the file defining the CV's style and structure of sections/componentscv.tex
, the file defining the CV content, using styles, variables, and environments exposed bycv.cls
Changes take place in the drafting
branch. The main
branch serves as the latest stable and released version of the CV, including its contents and the methods for generating it. When a CV draft is ready for release, make a pull request to merge the draft into main
. If all checks pass, complete the merge to build and release a new version of the CV. Versions are formatted with v{yyyy}.{mm}.{dd}.{i}
, e.g., v2024.5.4.1. Multiple versions within a day are tracked by an increasing sequence of natural numbers i
.
This automation is made possible with the help of great open source contributiosn like:
- LaTeX Workshop, a VS Code extension
- LaTex Utilities, a VS Code extension
- Release Action, a GitHub Action
- Next Release Tag, a GitHub Action