Distributed Systems

ECE419, Winter 2026
University of Toronto
Instructor: Ashvin Goel

    Distributed Systems

Lab submission

Compile and run your code on the UG machines before final submission.

Simply push your code by using:

git push

to submit it to your remote repository. You can commit your code and push it as many times as you like. We will use the version that you last pushed to your remote repository before the submission deadline to grade your code. We will not use the git commit times (or file access times) as proof of submission.

We will be downloading your code from your remote repository exactly at midnight of the submission deadline, so even a minute late is late.

During grading, we will create a branch called labNR-grading (e.g., lab1-grading, lab2-grading, lab3A-grading, etc.) in your remote repository. Your grading results will be available in this branch. Our branch will overwrite any existing branch with the same name in your remote repository (e.g., due to a regrade).

After we post the grades you can view them at the code repository website:

https://code.ece.gg/ece419-2026-winter/<UTORid>/src/branch/labNR-grading

Alternatively, you can check out the labNR-grading branch at your local repository. Then make sure to checkout the main branch to continue development for later labs.

Checking lab submission

We have provided you a tool for checking whether the files that we have asked you to modify will build correctly using the rest of the starter code. Please use this tool as follows:

ece419-build <UTORid> labNR

The labNR can be lab1, lab2, lab3A, etc. The expected output from this tool will look similar to the output shown below:

lab1: checking out code before Jan 26 2026 00:00:00 in ./build directory
lab1: checking out lab1/nim-client.go
<UTORid>: getting revision fdac240 from Fri Jan 18 09:46:33 2026 -0500
lab1: build successful
lab1: now run ece419-check in the ./build/<UTORid>/src/nim directory

You can use the commit hash (fdac240) and date (Fri Jan 18 09:46:33 2026 -0500) shown in the output above to confirm that the correct revision is used for grading.

If you have a special submission request, then use the following command to specify the git commit hash.

ece419-build -c commit-hash <UTORid> labNR

The build tool only ensures that your code compiles correctly. It does not check whether your code runs correctly. However, the tool creates all of its output in the ./build/<UTORid> dir. As mentioned in the output above, you can test your code within that directory using the testing instructions for each lab. This will ensure that your code works as expected with our grader setup. For example, for Lab 1, you should run:

cd ./build/<UTORid>/src/nim
ece419-check lab1

You can see the output of the test in the test.log file. After that, you can remove the ./build directory.

Note that the build tool downloads your files from your remote repository. Make sure to push your changes to your remote repository (as described above) before running the ece419-build script. We will be using similar scripts for building and checking your code during grading.

Special submission requests

If you plan to submit late, or have a petition, or are requesting a regrade, please let us know by creating a private Piazza post that is visible to all the instructors.

Please specify you name, UTORid, and the git commit hash to be marked. The git commit hash typically consists of 10 hex characters that you can find on our code repository page:

https://code.ece.gg/ece419-2026-winter/<UTORid>/src/branch/main

Please make sure to check your submission, as described above.

Late submissions

Please name your Piazza post "Late: LabNR" and select the folder "late/labNR".

We will decide the late penalty based on the timestamp of the latest edit to your private Piazza post, not the timestamp of the git commit hash. Please avoid editing your Piazza post after creating it, so be sure to submit the correct information in your post.

You should also create a separate follow up message below your private Piazza post with concrete steps detailing how you will submit your future assignments in time. This should be done separately from the main post so that you have time to reflect and so it doesn't delay your submission.

If you are curious, we do not use the timestamp of the git commit because it is modifiable and so we cannot rely on it. We require a Piazza post that has a (hopefully) unmodifiable timestamp so we can use it to determine the late penalty.

Petitions

If you have filed a term-work petition and plan to submit late, then please name your post "Petition: LabNR" and select the folder "petition/labNR".

Please also include your new due date in the post as per the petition that you have submitted to the department.

After your petition is approved by the department, please create a follow up message to your post with the commit hash information.

We will not penalize your submission and you do not need to create a follow up message regarding submitting future labs in time.

Regrade policy

If you want a regrade, please post a Piazza message no more than 3 days after your lab grade is made available. Please name this post "Regrade: LabNR" and select the folder "regrade/labNR".

Please also specify the reason for a remark (be specific and brief).

You may also optionally provide us a git commit hash if we didn't mark the latest commit on your main branch before the lab deadline.

Note that we will not be downloading your code again. Your commit must be visible on the copy of your repository that we downloaded at submission time. Also, if you request that we mark an alternate commit that was not the latest commit on the main branch as per the deadline, we will not accept the regrade request.

Please note that the regrade mark is final. If your regraded lab mark is lower, you will be assigned this lower mark.