#+TITLE: Different notes concerning the workflow around the dossier

* Context
  The document in this directory is the document I used for my ATER
  applications in 2015, and MCF applications in 2016 and 2017.  I keep
  updating it to keep track of what I am doing with my career.

  One of the goals of this document is helping myself prepare my
  professorship applications later on, but the career tracking part is
  increasingly important.

* Updating the dossier
  1. [ ] Download my latest bibliography [[https://dblp.uni-trier.de/pid/49/9126-1.html][from DBLP]] and put it into
     [[file:bib/sivanov-dblp.bib][bib/sivanov-dblp.bib]].
  2. [ ] Add the publications which are not indexed on DBLP to
     [[file:bib/sivanov-extra.bib][bib/sivanov-extra.bib]].
  3. [ ] Update my visits, seminars or collaborations.
  4. [ ] Update my teaching.
  5. [ ] Update the internships.
  6. [ ] Update my projects.
  7. [ ] Update my administrative responsibilities.

* Building in command line
  Building the dossier follows the usual LaTeX build process.

  1. Ensure =biber= is available, e.g. by running the script
     [[file:guix-env][guix-env]].
  2. Clean all the working files by running the script [[file:clean][clean]].
  3. Run =lualatex candidature.tex= once.
  4. Run =biber canditature= to update the references.
  5. Run =lualatex candidature.tex= a second time and a the third time
     to get all the references right.

  Steps 2 to 5 are also available in the script [[file:clean-rebuild][clean-rebuild]].

* Structure
:PROPERTIES:
:VISIBILITY: folded
:END:
  The dossier is split over very many =.tex= files, a
  =candidature.sty= file, and a number of =.bib= files storing various
  bibliographies.  The =.tex= files contain a chapter of the dossier
  each.  The =.bib= files group the references roughly by various
  criteria:
  - domain: =algebra.bib=, =mcrs.bib= (model checking of reaction
    systems), etc.
  - application destination: =evry.bib=, =lifo.bib=, etc.
  - people: =hdr_noverlan.bib= (citations in Sergey's HDR not
    including him), =hdr_verlan.bib= (citations of Sergey's own work
    in his HDR).

  Additionally, =sivanov-dblp.bib= corresponds to the latest export of
  by bibliography from [[https://dblp.uni-trier.de/pers/hd/i/Ivanov_0001:Sergiu][DBLP]], while =sivanov-extra.bib= lists some
  publications which are not tracked on DBLP.

* My CV in French
:PROPERTIES:
:VISIBILITY: folded
:END:
  The dossier includes my two-page short academic CV.  I use the
  script [[file:make-cv-fr][make-cv-fr]] to extract it to [[file:sivanov-cv-fr.pdf][sivanov-cv-fr.pdf]].

* Old building with Shake                                               :old:
:PROPERTIES:
:VISIBILITY: folded
:END:
  I don't use Shake any more, because it has been a major hassle over
  the years.

  I use Haskell's [[https://hackage.haskell.org/package/shake][Shake]] build system to fully compile my dossier.  The
  code defining how to build the dossier is in file:_shake/Build.hs.
  Essentially, this file tries to runs Biber and the LaTeX a
  sufficient number of times to get the references right.  It does not
  always correctly guess the number of times, so I sometimes need to
  touch a file to make Shake recognise that a rebuild is due.

** Building the build system
   When file:_shake/Build.hs is updated, the build system needs to be
   rebuild.  A good way to do it is using Cabal in the following way:

   #+BEGIN_SRC shell
cabal update # update the package lists
cabal build # rebuild the package
   #+END_SRC

   Note that I set up a sandbox for the build system, so the previous
   commands operate in this sandbox.

   I don't rebuild the build system often, so most of the times I do
   it I have to bump upper bounds on the versions of dependencies in
   file:_shake/build.cabal.

   The binary resulting from the build is usually placed in a deeply
   nested subdirectory of file:_shake.  For convenience, the symlink
   =build= in the root directory of the dossier points to this binary.

* Local Variables                                                  :noexport:
:PROPERTIES:
:VISIBILITY: folded
:END:
  # Local Variables:
  # eval: (auto-fill-mode)
  # ispell-local-dictionary: "en"
  # org-link-file-path-type: relative
  # End: