Combine

End2End Workflows

Image generated with ChatGPT
slides by Lukas Steinwender

Disclaimer

You don't have to copy someone elses workflow.
It is most important that you find some workflow that works for you and stick with it to the best of your abilities!

slides by Lukas Steinwender

Lukas

Initial Setup

  • create new git repo
  • clone created repo to local machine
git clone --recurse-submodules <repo url>
  • navigate to code snippets submodule (within created repo) and sync
cd <path/to/codesnippets>
git pull
  • navigate to repo and init mise project
cd <path/to/project>
mise use <version to be used>
mise use uv@latest
uv init --bare
  • fill ./README.md with basic information
  • choose a git workflow
    • create respective branches
    • stick with it for the duration of the project
  • start coding

While Coding

  • temporary files and figures have the temp_ prefix
    • will not be synced to git
  • all created figures are stored in ./report/gfx/
    • one place for all of them
  • progress is reported in ./summary.md
    • essentially a first draft for the final release/paper
    • includes
      • mermaid flowcharts,
      • figures
      • tables
      • derivations
      • references
        • added to ./report/bib-refs.bib
      • etc.
  • as soon as I use a code-block more than 2 times, it gets refractored into a function
  • if several functions are used in the same context more than 2 times, they get refractored into a class
  • any constants, functions etc. that get used across several files are added to _projectbuildingblocks.py
  • scripts of the main routine follow a dedicated naming convention

Documenting

  • any created function or class gets at least a one-sentence docstring
  • once the function/class is moved to a module
    • docstring gets completed

Writing the Paper

  • clone my template (or the journals template) into ./report/
  • start writing
    • all references, equations, figures, etc. should be present through documentation of ./summary.md

I only add my paper here, if the repo is not public yet.
Once the package/report/paper is published, that's when I add the source in ./report/.

slides by Lukas Steinwender