Versioning (Monperrus)

Grading criteria:

In Canvas, you will upload a link to a code repository. If the repository cannot be made publicly available, you will give the TA access to it.

To pass this module, you must show that you are able to:

  • Setup your own repository
  • Maintain a streak of 10+ high-quality commits (for groups, this is a per student requirement)
  • Write a high quality README

Checks:

  • the TA will check that the repository is structured with appropriate folders and contains a good README.
  • the TA will open the recent commit history, and will select a minimum of 10 commits, at random, to check that:

    • every commit is an atomic bug fix or feature, with a clear commit message.
    • the commit contents reflect the commit message (and vice versa)
  • the TA will follow the instructions to execute the code on a simple example and assess the clarity of the setup

In order to Pass with distinction:

  • the TA will check that most commits are clearly identified as feature / fix / documentation / etc, thanks to a clear commit message discipline
  • the TA will check that there is documentation in the repo specifying:
    • the commit conventions used in the project
    • the branch conventions used in the project
  • the proper configuration of continuous integration guarantees distinction

If you're already a master in versioning and you potentially feel  bored by the tasks, you are asked to re-implement the system of "Verified three-way program merge" (OOPSLA'18), with the appropriate simplifications and assumptions so as to be done within one month.

 

Advanced topics:

Content