A. Submitting Your Work

This year, we will (by default) submit all assignments directly from our class git repositories.

To submit an assignment (e.g., proj0), you must make a special tag in your local repository and push the tag. Specifically, tag the commit you would like to submit in your local repo, push your work on your master branch via git push, then push the tags via git push --tags. Submission tags should contain the assignment name suffixed by a _’-'_ as the tag, where __ is any label you want made of non-whitespace characters. The entire procedure is:

$ git status       # Check that you have committed all desired files.
                   # Use 'git add' and 'git commit -a' if not.
$ git tag proj0-1  # Example of creating a tag.
$ git push
$ git push --tags

After this, you should be able to see your new submission on Gradescope for that assignment (assuming of course the assignment exists and has been released).

Note that instead of tagging our submission as proj0-1, we could’ve also tagged it as:

$ git tag proj0-good
# or
$ git tag proj0-buggy
# or
$ git tag proj0-new
# etc

In the above examples, we did not specify a commit or pre-existing tag with our git tag commands. In that case, git just tags the HEAD commit of our current branch (our most recent commit) with the given tag. If we wanted to tag and submit a specific commit, we could do so via git tag <tag> <commit id>. For example:

$ git tag proj3-ok 91aa6fb5

We can also tag old tags as well by doing git tag <new tag> <old tag>. For example:

$ git tag proj3-final proj3-first

This is convenient, because if you have already made several submissions (e.g., proj0-1, proj2-2) and wish instead to resubmit a previous submission (e.g., proj0-1) in place of the latest one, simply choose still another new tag and make it label the same commit as the previous tag you wish to substitute:

$ git tag proj0-3 proj0-1
$ git push --tags

Also note the git tag command takes the new tag followed by the old tag/commit (the tag/commit you are retagging and submitting).

B. Requesting Extensions

All extensions requests will be handled through the Extensions tab in Beacon.

To request an extension for an assignment, simply fill out an extension request form on the Beacon Extensions tab. We will process all pending extension requests as quickly as we can.