Collaboration#

Continuous Integration#

Why CI helps us do that!

Example of how CI works in practice looking at PVP pull requests!

Example of travis configuration from autopilot!

This is part of a broader set of commit-triggered things, like this page is built using a github action!

Making git your friend#

  • COMMIT OFTEN - if you don’t want to “mess up” the main branch, just make another branch! It should never be the case that code only exists on your computer.

  • VERSION EVERYTHING - except maybe data. why not? no one has any time to read through your code and make fun of you. configuration files, etc. whatever. just keep a coherent model of what should be a code library and what is local configuration and you’re golden

How to use git with other people! Example of branching and merging!

Corrolary - don’t comment code out. use git!!!!!

Separating Configuration from Code#

The major reason for hardcoding things is to make up for implicit structure. We make lists of directories and files because we don’t have a well defined notion of “project directories” and “datasets” that would let us find them automatically.

Example of configuration using pydantic.

Explicit Metadata#

Metadata can end up drifting into filenames. Instead what we can do is make that explicit…