62 lines
2.7 KiB
Markdown
62 lines
2.7 KiB
Markdown
|
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 <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`
|
||
|
|
||
|
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
|