{{cookiecutter.thesis_type}}-{{cookiecutter.thesis_surname}} | ||
hooks | ||
.gitignore | ||
CHANGELOG.md | ||
cookiecutter.json | ||
README.md |
Template for AMU thesis
The template itself is in the {{cookiecutter.thesis_type}}-{{cookiecutter.thesis_surname}}
.
In order to generate a project from the template:
- install cookiecutter
- find a cookiecutter-amu-thesis release applicable (usually the latest release/tag listed at https://git.wmi.amu.edu.pl/filipg/cookiecutter-amu-thesis), say VERSION
- run:
cookiecutter https://git.wmi.amu.edu.pl/filipg/cookiecutter-amu-thesis.git --checkout VERSION
- configure a repository called
msc-YOURSURNAME
at https://git.wmi.amu.edu.pl (see http://filipg-jenkins.wmi.amu.edu.pl/Repos for more information), grant read and write access rights to your supervisor
Interoperation with Overleaf
Overleaf handles git but it's very cr*ppy. It's better to upload a package to Overleaf first:
- You need LaTeX installed (e.g. in Ubuntu, you'd need to do:
sudo apt install texlive-latex-full
). - Create a project locally.
- Run
make
- Run
make source-pack
- Upload the zip file to Overleaf.
- Copy project to some other place.
- Clone the repo from Overleaf:
git clone https://git.overleaf.com/FUNNY-OVERLEAF-CODE PAPERID-paper
- Set remotes:
git remote add overleaf https://git.overleaf.com/FUNNY-OVERLEAF-CODE
git remote set-url origin git@git.wmi.amu.edu.pl:YOURID/YOUR-GITLAB-REPO
- Set credential helper so that stupid Overleaf won't ask about
password:
git config credential.helper "cache --timeout=10000000"
- Unfortunately, Overleaf will discard hidden files (
.*
) when a zip is uploaded, also file permissions will be somewhat broken (did I tell you how much I hate Overleaf?) - … so you need to copy
.cookiecutter.yml
file and re-apply the template (cookiecutter https://git.wmi.amu.edu.pl/filipg/cookiecutter-amu-thesis.git --checkout VERSION --output-dir .. --config-file .cookiecutter.yml --no-input --overwrite-if-exists
) - Re-commit the files (including recovered
.*
files). - Push the repo to Overleaf (fortunately, the
.*
will be treated correctly when this is done by git):git push overleaf master
- Push the repo to GitLab.
git push origin master
- Set the Overleaf git remote in
helpers/vars
- Now you can synchronize between GitLab repo and Overleaf manually or using
helpers/synchro.sh
script
Updating package with updated template
To keep your codebase in sync with template you need to occasionally reapply the template. Here's how:
- find a cookiecutter-amu-thesis release/tag applicable, say VERSION
- (do not refer to master in your projects!)
- go to project root
- run:
cookiecutter https://git.wmi.amu.edu.pl/filipg/cookiecutter-amu-thesis.git --checkout VERSION --output-dir .. --config-file .cookiecutter.yml --no-input --overwrite-if-exists
- check changes with git
Releasing a new version of the template
- add an item to
CHANGELOG.md
- in case of breaking changes (M is incremented) describe clearly
what actions are to be taken in
CHANGELOG.md
- tag master with the version