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-applica-pypackage release applicable (usually the latest release/tag listed at ), say VERSION * run: `cookiecutter https://git.wmi.amu.edu.pl/filipg/cookiecutter-amu-thesis.git --checkout VERSION` Interoperation with Overleaf ---------------------------- Overleaf handles git but it's very cr*ppy. It's better to upload a package to Overleaf first: 1. Create a project locally. 2. Run `make` 3. Run `make source-pack` 4. Upload the zip file to Overleaf. 5. Copy project to some other place. 5. Clone the repo from Overleaf: `git clone https://git.overleaf.com/FUNNY-OVERLEAF-CODE PAPERID-paper` 6. 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 ``` 7. Set credential helper so that stupid Overleaf won't ask about password: `git config credential.helper "cache --timeout=10000000"` 8. 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?) 9. … 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`) 10. Re-commit the files (including recovered `.*` files). 11. Push the repo to Overleaf (fortunately, the `.*` will be treated correctly when this is done by git): `git push overleaf master` 12. Push the repo to GitLab. `git push origin master` 13. Set the Overleaf git remote in `helpers/vars` 14. 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