Milestone Submission & Demonstration

Your milestones are marked based on your submissions to give via 9242 git_submit. Take the time to understand these instructions to ensure that what you submit is what you want assessed.

Commit and push everything you wish assessed

Before generating a diff and submitting, you should ensure you have committed all files that you wish to be part of your submission. Ensure that a git status does not show untracked files that you have added or modified that should be part of your submission.

Additionally you should ensure any CMake configuration variables you have added or changed have default settings in the CMakeLists.txt. To test this, create a fresh build directory and check that the project compiles and runs as expected without invoking cmake. An example of how to do this follows:

mkdir submission-test-build
cd submission-test-build

You must then make sure you have pushed your code to the repository on gitlab. When you submit, the latest code from the master branch is copied into the submission.

Remember that there is a git repository for milestone 0 and as well as a git repository for the group submissions of milestones 1 to 7.

Make sure you push to the following repository for milestone 0 as it is the one that is used when you make a submission for that milestone.{your-zid}-m0

Make sure you push to the following repository for group submissions of milestones 1 to 7 as it is the one that is used when you make a submission for any of those milestones.{group-number}

Submitting for a milestone

Get the commit hash of master

In order to ensure that the correct code is being submitted when you make a submission, you must first find out the commit hash of the commit you wish to submit. The git_submit tool will take the latest commit on the master branch when making a submission and check its commit hash against the one you provide.

To get the commit hash for the latest commit in your clone of the repository, simply execute the following command from within the repository.

git rev-parse HEAD

This will display a 40 character hash that identifies that commit.

Making a submission

In order to submit, you will need to be logged into a CSE computer either directly, via VLAB, or via SSH. From that machine, enter the following command to create a submission for a milestone using the commit hash from your local copy.

9242 git_submit {milestone} {commit-hash}

This will:

  1. create a clone of your repository on the CSE machine,
  2. check that the provided hash matches the repository that was cloned,
  3. build the code in the repository,
  4. push a tagged commit back to the repository with the build log and build result, and
  5. submit, via give, a log of the commit submitted (and a copy of the repository data for milestones 0 and 7).

If you have SSH keys set up in Gitlab to allow access from your CSE account, you can add the -s option to use SSH to access Gitlab so that you don't have to authenticate with your username and password.

If you wish to submit a branch other than master, you can use the -b option to select the branch you wish to submit.

Submitting the final documentation

The final documentation must be submitted separately via give.
give cs9242 m7doc m7.pdf

Demonstrating a milestone

When demonstrating a milestone you will need to check out the exact version of the code that you submitted. Before doing this you should make sure you have a local copy of all of the tags created by the git_submit tool.

Run the following command from within your git repository.

git fetch --tags

The tutor will then tell you which commit to check out and demonstrate using the following command.

git checkout {commit-hash}