Distributed Systems

ECE419, Winter 2025
University of Toronto
Instructor: Ashvin Goel

Distributed Systems
HomeLecturesLabsPiazzaQuercus
Lab MachinesLab SetupLab SubmissionLab 1Lab 2Lab 3Lab 4

Lab Setup

Please start by visiting the lab machines page, which describes the machines we will be using for the labs and the programming environment and software available on those machines.

Path

We will provide various tools in the /cad2/ece419s/bin directory. Please add this path to your PATH variable so that it is easier for you to access the tools.

  1. For csh, add the following in your ~/.cshrc file where the path variable is currently defined in the file:

    set path=(/cad2/ece419s/bin $path)

  2. For bash, add the following in your ~/.bashrc file where the PATH variable is currently defined in the file:

    export PATH=/cad2/ece419s/bin:$PATH

Please do not add the lines shown above at the end of the file, which can cause problems.

Then make sure to log out and log back in. Run echo $PATH and you should see the new path.

Git

For this course, you'll be using Git for version control. If you're new to using Git, the free online Pro Git Book is an excellent resource. Chapter 3 is especially useful, since you will be merging code and a lot of students are uncomfortable with branching.

We'll be using GitHub to host your code. Please create a GitHub account if you haven't already. You can get a free Pro account through GitHub Education. We'll create and give you access to your code repository to use for the course. For that, go to the CompEng.gg organization:

CompEng.gg organization

and login in to the site with your University of Toronto (UTORid) credentials. Then connect your GitHub account. You will receive an email from GitHub asking you to join the @compeng-gg organization.

You should be using a password manager to follow good security practices. The recommended password manager is 1Password. It is a paid option with nice features such as SSH integration. Luckily as University of Toronto students, you can get a free subscription here. We won't cover it in this setup, but it's a good idea to use it.

SSH

You will need SSH keys for accessing your GitHub account. If you need to generate the keys, follow the GitHub instructions. Make sure to use a good passphrase.

Please setup an SSH agent so that you don't have to type a passphrase everytime. You'll need it even if you don't have a passphrase for a smooth experience. Follow the GitHub instructions.

GitHub access

Now you'll have to add your public SSH key to GitHub to access the code for the course. After logging in:

  1. Click your profile photo in the top right.
  2. Click on "Settings".
  3. Look for "Access" in the sidebar and click "SSH and GPG keys".
  4. Click the green "New SSH key" near the top right.
  5. Type whatever you want to name this key, something like your email is fine.
  6. Paste your public key into the "Key" field.
  7. Click "Add SSH key".

GitHub invitation

For the following commands replace <UTORid> with your UTORid, not your username on GitHub. As a reminder, it should be 8 characters long.

After you connect your GitHub account to the Compeng.gg organization, you should receive an email with a GitHub invitation to join the Compeng.gg organization as mentioned above. Please accept the invitation. You can also find the invitation here. Then, your repository invitation URL should be:

https://github.com/compeng-gg/2025-winter-ece419-<UTORid>/invitations

Git instructions

You can download the course code from GitHub using the following instructions:

cd ~
git clone git@github.com:compeng-gg/2025-winter-ece419-<UTORid> ece419
cd ece419
git remote add upstream git@github.com:compeng-gg/2025-winter-ece419-student

We will provide you starter code in the read-only 2025-winter-ece419-student repository, which we will call the student repository. You will develop code in the 2025-winter-ece419-<UTORid> repository, which we will call the development repository. We will access your development repository to grade your code. Make sure to push early and often into your repository.

Make sure you are in the ece419 directory, then setup the Git options for your repository using the following commands:

git config user.name "Your Full Name"  
git config user.email your@email.com  
git config init.defaultBranch main  
git config pull.rebase false  
git config alias.lol "log --pretty=oneline --abbrev-commit --graph --decorate"  

Your email should end with something similar to @mail.utoronto.ca.

If you have trouble with any of the steps above or with accessing your development repository, please let us know on Piazza.