diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 0000000..89950d6 --- /dev/null +++ b/.codespellrc @@ -0,0 +1,7 @@ +[codespell] +# Ref: https://github.com/codespell-project/codespell#using-a-config-file +skip = .git*,*.pdf,.codespellrc +check-hidden = true +# names, case sensitive +ignore-regex = \bWille\b|\\@\S+ +# ignore-words-list = diff --git a/.github/workflows/build-pdf.yml b/.github/workflows/build-pdf.yml index 489834a..8d320f4 100644 --- a/.github/workflows/build-pdf.yml +++ b/.github/workflows/build-pdf.yml @@ -12,24 +12,37 @@ jobs: name: Build template runs-on: ubuntu-latest container: - image: thomasweise/docker-texlive-full:latest + image: texlive/texlive:latest-full steps: - name: Checkout code uses: actions/checkout@v4 - name: Build pdf - run: latexmk -pdflua ./template.tex + run: | + prev_style=contemporary + for style in casual classic banking oldstyle fancy contemporary + do + echo -e "\033[1;35mCompiling style $style...\033[0m" + # first cleanup, but keep .log files for later artifact upload + latexmk -c -e 'sub cleanup_generated { my $ext = $_[0]; return 0 if $ext eq "log"; return 1; }' + sed -i "s/moderncvstyle\[\]{${prev_style}}/moderncvstyle\[\]{${style}}/g" template.tex + latexmk -pdflua ./template.tex + mv template.pdf template_${style}.pdf + mv template.log template_${style}.log + # remember previous style + prev_style=$style + done - name: Upload pdf uses: actions/upload-artifact@v4 with: name: template.pdf - path: ./template.pdf + path: ./template_*.pdf - name: Upload log if: ${{ always() }} uses: actions/upload-artifact@v4 with: name: template.log - path: ./template.log + path: ./template_*.log diff --git a/.github/workflows/build-userguide-pdf.yml b/.github/workflows/build-userguide-pdf.yml new file mode 100644 index 0000000..d49c04f --- /dev/null +++ b/.github/workflows/build-userguide-pdf.yml @@ -0,0 +1,57 @@ +name: Build user guide + +on: + push: + branches: + - master + paths: + - 'manual/moderncv_userguide.tex' + pull_request: + paths: + - 'manual/moderncv_userguide.tex' + +jobs: + build-userguide: + name: Build user guide + runs-on: ubuntu-latest + env: + UG_AUTHOR: Auto Userguide Creator + UG_COMMIT_MESSAGE: build of user guide + container: + image: texlive/texlive:latest-full + + steps: + - name: Checkout source code + uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - name: Build user guide pdf + run: latexmk -pdflua -cd ./manual/moderncv_userguide.tex + + - name: Upload user guide pdf + uses: actions/upload-artifact@v4 + with: + name: moderncv_userguide.pdf + path: ./manual/moderncv_userguide.pdf + + - name: Upload user guide log + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + name: moderncv_userguide.log + path: ./manual/moderncv_userguide.log + + - name: Push new user guide to master + if: ${{ github.ref_name == 'master' }} + run: | + # maybe switch to an image with git already included, for now install it here + apt update && apt install git -y + git config --global user.name '${{ env.UG_AUTHOR }}' + git config --global user.email '${{ github.actor }}@users.noreply.github.com' + # prevent error message due to mismatch in users: process in gh actions vs. owner of repo + git config --global --add safe.directory /__w/moderncv/moderncv + ls -l + git add manual/moderncv_userguide.pdf + git commit -m "${{ env.UG_COMMIT_MESSAGE }}" + git push diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml new file mode 100644 index 0000000..b026c85 --- /dev/null +++ b/.github/workflows/codespell.yml @@ -0,0 +1,25 @@ +# Codespell configuration is within .codespellrc +--- +name: Codespell + +on: + push: + branches: [master] + pull_request: + branches: [master] + +permissions: + contents: read + +jobs: + codespell: + name: Check for spelling errors + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Annotate locations with typos + uses: codespell-project/codespell-problem-matcher@v1 + - name: Codespell + uses: codespell-project/actions-codespell@v2 diff --git a/CHANGELOG b/CHANGELOG index b834048..eec2a43 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,10 +1,36 @@ version next +- Upgrade to Fontawesome 6 (#183) +- Document how to set custom strings for social command (#239) +- Correct documentation to reflect new order \moderncvcolor before \moderncvstyle (#256) +- Adding optional \postscript{PS text} command to cover letter in all current styles (#271) +- Decreasing the size of born symbol to "tiny" and raising it by .5ex, + to look typograpically more in line with born symbols outside moderncv (#273) +- Fix missing Senders Name in Header (#278) +- Document an additional example in the userguide on how to adjust the skill matrix (#213) +- Adds contributing guidelines for moderncv (#275) + + +version 2.5.1 (31 Jan 2026) +- Fix french babel breaking contemporary style (#219) +- Fix birthdate not showing up in contemporary style (#244) +- Fix Inspire HEP social link (#241) - Change moderncvcolors.tex to a .sty file for MikTeX compatibility (#199) - Fix error when omitting the photo in contemporary style (#201) - Fix spacing between first and last name (#204) - Include social icons in cover letter for styles classic, fancy and banking (#170) - Update Oldstyle to use symbols instead of marvosym (#209) +- Added SimpleX and Threema social (#217) - Fix spacing between first and last name again (#220) +- Make header details flush against sides for casual, classic, and contemporary + styles (#229) +- Fix tikz icon color in contemporary style (#224) +- Add contemporary CV header style to cover letter, which also makes icons + visible (#186) +- Fix minor horizontal spacing issue in 'contemporary' style header + + +version 2.4.2 (01 Feb 2025) +- Added support for additional social icons like medium. (#264) version 2.4.1 (18 Jul 2024) - Fix commons/colors.tex not found in package (#194) @@ -130,7 +156,7 @@ version 1.4.0 (28 Mar 2013) now use each of these multiple times, e.g. to display multiple mobile phone numbers. - Deprecated \firstname and \familyname in favour of \name{}{}. -- Added a new mechanism to select amongs different possible icon sets: +- Added a new mechanism to select among different possible icon sets: \moderncvicons{}, where can be "marvosym" (used by default in the banking, casual and classic styles) or "letters" (used by default in the oldstyle style). \moderncvicons should always be called after diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..83a7b7c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,49 @@ +# Contributing to moderncv +First off, thanks for taking the time to contribute to *moderncv*! ❤️ + +All types of contributions are encouraged and valued. +In order to make the contribution experience easier for both maintainers and contributors, please read the below listed guidelines. + +The *moderncv* community is looking forward to your contributions. + + +## Questions about moderncv +If there are questions about *moderncv* our `manual/moderncv_userguide.pdf` is a good starting point. Also our `template.tex` follows the approach to comment on options available in *moderncv*. +In case you are still left with question marks, feel free to raise an issue or join our matrix room [moderncv:matrix.org](https://matrix.to/#/#moderncv:matrix.org) for a discussion. + + +## Reporting issues and suggesting enhancements +Bug reports and enhancement suggestions are welcome under our GitHub [issues section](https://github.com/moderncv/moderncv/issues). First have a look at the existing reports, maybe your issue is already addressed? In case you have additional information just add a comment to the existing reports. Otherwise create a new issue. + +A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible and use the prepared templates. +- Make sure that you are using the latest version +- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the documentation (see `manual/moderncv_userguide.pdf`) +- Collect information about the bug like how it can be triggered, which compiler and OS you are using and if you can provide a log file or a minimal example +- Can you reliably reproduce the issue? Give some instructions how to trigger the issue - as we all know, reproducing the error is half the fix already + +After filing the issue, we will then take care of it as soon as possible. + + +## Making contributions +> ### Legal Notice +> When contributing to this project, you must agree that you have the necessary rights to the content and that the content you contribute may be provided under the project's LPPL-1.3c license (see `LICENSE.txt`). + +The best way to add a contribution is to create your own fork of this project first. After creating a separate branch and pushing your changes, please open up a pull request for a review. + +### Common practice +Please make sure that: +- your commits have a explanatory **commit message** what was changed in the source code +- your **branch name** contains a short hint to what is going to be changed +- you use a clear and descriptive **title** of the pull request +- you **explain shortly** what you intend to change with your pull request + +### Moderncv specifics +Please make sure that the following requirements are met for your pull request: +- Document your changes in the `manual/moderncv_userguide.tex` if they changed the behavior of *moderncv* or introduced new features +- Write a small line in the `CHANGELOG` to keep track of changes and reference the issue, which will be solved with your pull request + +In case you have the feeling that a more detailed discussion is needed for your pull request or you want to discuss your changes beforehand, just feel free to join our matrix room [moderncv:matrix.org](https://matrix.to/#/#moderncv:matrix.org). + + + +Inspired by [contributing.md](https://contributing.md/). diff --git a/README.md b/README.md index 19ff062..089d8d8 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ If you are using the [`academicons`](https://ctan.org/tex-archive/fonts/academic As the main goal is to keep this package alive, it is maintained in a loosely structured team. You can contact us in our matrix room [moderncv:matrix.org](https://matrix.to/#/#moderncv:matrix.org), feel free to join if you have questions or want to contribute. Development takes place at [github.com/moderncv/moderncv](https://github.com/moderncv/moderncv). +We are always happy if you want to contribute. Before you start, please make sure to read our guidelines in `CONTRIBUTING.md`. ## Licence diff --git a/create-release-tarball.sh b/create-release-tarball.sh index 9066c00..1550249 100755 --- a/create-release-tarball.sh +++ b/create-release-tarball.sh @@ -1,5 +1,10 @@ #!/bin/sh # script to create a tarball for the files that should be in the CTAN upload +# +# do not forget to replace comments/headers beforehand +# 1. date and version in moderncv_userguide.tex +# 2. find . -type f -exec sed -i 's/$OLD_DATE $OLD_VERSION/$NEW_DATE $NEW_VERSION/g' {} \; +# 3. find . -type f -exec sed -i 's|-$OLD_YEAR moderncv maintainers (github.com/moderncv)|-$NEW_YEAR moderncv maintainers (github.com/moderncv)|g' {} \; # fetch version via git VERSION=$(git describe --tags --dirty) @@ -12,7 +17,7 @@ rm -f $TARBALL $TARBALL.gz git archive --prefix=moderncv/ HEAD > $TARBALL # remove git specific files -tar -f $TARBALL --delete moderncv/.github/ moderncv/.gitignore moderncv/create-release-tarball.sh +tar -f $TARBALL --delete moderncv/.github/ moderncv/.gitignore moderncv/create-release-tarball.sh moderncv/.codespellrc # compress gzip $TARBALL diff --git a/manual/moderncv_userguide.pdf b/manual/moderncv_userguide.pdf index 0468a22..6c91c56 100644 Binary files a/manual/moderncv_userguide.pdf and b/manual/moderncv_userguide.pdf differ diff --git a/manual/moderncv_userguide.tex b/manual/moderncv_userguide.tex index feb6f31..68e4428 100644 --- a/manual/moderncv_userguide.tex +++ b/manual/moderncv_userguide.tex @@ -1,5 +1,5 @@ -%% moderncv_userguide.tex as shipped with 2024-07-18 v2.4.1 modern curriculum vitae and letter document class (moderncv) -%% 2021 David Seus, cryptointerest@posteo.de +%% moderncv_userguide.tex as shipped with 2026-01-31 v2.5.1 modern curriculum vitae and letter document class (moderncv) +%% 2021 David Seus (cryptointerest@posteo.de), 2021-2026 moderncv maintainers (github.com/moderncv). % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License version 1.3c, @@ -9,7 +9,7 @@ \title{% \texttt{moderncv} User Guide\\ - {\small Package v2.4.1}% + {\small Package v2.5.1}% } % Cristina Sambo, \author{% @@ -18,7 +18,7 @@ moderncv community\\ {\small Documentation by David Seus}% } -\date{\today} +\date{2026-01-31} % Language and encoding options \usepackage[english]{babel} @@ -98,13 +98,13 @@ cvitem, cventry, cvdoubleentry, cvdoubleitem, cvtripleitem, cvlistitem, cvlistdoubleitem, cvcolumns, moderncvstyle, moderncvcolor, cvskill, cvskilllegend, cvskillplainlegend, cvskillhead, cvskillentry, nopagenumbers, name, born, address, email, link, social, phone, homepage, extrainfo, photo, quote, section, subsection, setlength, NewDocumentCommand, definecolor, colorlet, cvitemwithcomment, - recipient, subject, opening, closing, signature, enclosure + recipient, subject, opening, closing, signature, postscript, enclosure, makelettertitle, makeletterclosing }, emphstyle={\color{cvblue}}, emph={[2] familydefault, sfdefault, rmdefault, inputenc, moderncv, document, bibliographyitemlabel, addresssymbol, mobilephonesymbol, fixedphonesymbol, faxphonesymbol, emailsymbol, homepagesymbol, linkedinsocialsymbol, - xingsocialsymbol, twittersocialsymbol, githubsocialsymbol, gitlabsocialsymbol, + xingsocialsymbol, twittersocialsymbol, githubsocialsymbol, gitlabsocialsymbol, mastodonsocialsymbol, codebergsocialsymbol, discordsocialsymbol, twitchsocialsymbol, youtubesocialsymbol, tiktoksocialsymbol, instagramsocialsymbol, soundcloudsocialsymbol, steamsocialsymbol, xboxsocialsymbol, playstationsocialsymbol, battlenetsocialsymbol, simplexsocialsymbol, threemasocialsymbol, stackoverflowsocialsymbol, bitbucketsocialsymbol, skypesocialsymbol, orcidsocialsymbol, researchgatesocialsymbol, arxivsocialsymbol, inspiresocialsymbol, researcheridsocialsymbol, telegramsocialsymbol, whatsappsocialsymbol, signalsocialsymbol, matrixsocialsymbol, googlescholarsocialsymbol, cvstretchability, bornsymbol }, @@ -240,17 +240,17 @@ where at most one value for each option can be passed to the document class: \end{tabular} \subsubsection*{Choosing a \texttt{moderncv} style and color} -Choose a \Moderncv style and color by adjusting the commands +Choose a \Moderncv style and color by adjusting the commands (command order is important!): \begin{lstlisting} - \moderncvstyle{