We are using tags/versions/releases as a way to manage the long term development of the legacy code projects.
Accordingly, adding tags/versions/releases should be done only by course staff.
Students may be interested, though, to know how this works in case they want to incorporate a similar strategy into their own independent projects outside the scope of this course.
For tags, we follow the conventions of semantic versioning, except that:
We increase the major version once at the start of student work on each quarter, and at the end of student work for that quarter.
- v1.0.0 is the start of student work for F20
- v2.0.0 is the end of student work for F20, i.e. before any “between quarter maintenance” by course staff.
- v3.0.0 will be the start of student work for W21
- v4.0.0 will be the end of student work for W21.
Thus, odd numbered major versions are the start of student work for a quarter, and even numbered major versions are the end of student work for a quarter.
This allows us to track student work, in contradistinction to work done by course staff.
Adding a tag:
git tag -a v1.0.0 -m "F20 starting point, before student work" git push origin v1.0.0