Instructions for Submitting and Passing Off ECEN 320 Laboratory Assignments

Several steps are required to successfully submit and passoff each laboratory assignment. This tutorial describes each of these steps in detail.

1. Update Starter Code

Your classroom repository should have a secondary remote to the class ‘startercode’ repository as described in the GitHub repostiory setup instructions. This ‘startercode’ repository contains the code necessary for you to complete each laboratory assignment. It is essential that you update the starter code in your local repository before starting each laboratory assignment to make sure you have the latest code available (this code will be updated throughout the semester to fix bugs and add new features). You are responsible for updating your local repository with the latest starter code before submitting your laboratory assignment.

The git commands necessary for updating your starter code are as follows:

git fetch startercode
git merge startercode/main -m "Merging starter code"

2. Commit and Push to GitHub

Each laboratory assignment requires you to create new files. You must commit all these files to your GitHub repository in the corresponding laboratory directory. Further, you must push these files to your remote classroom repository so they can be graded by the TAs. The ‘passoff’ section of each laboratory description will list all the required files You will not receive any credit for the passoff section of the lab if you are missing any of the required files.

3. Implement and Test Makefile Rules

Each laboratory assignment requires that you implement a set of Makefile rules. Make sure you have a Makefile in your laboratory directory and that you have implemented each of the required rules. Test each of these rules to make sure they work as expected. You will not receive any credit for the passoff section of the lab if you are missing any of the required Makefile rules or if any of these rules fail.

As part of your Makefile you must have a ‘clean’ rule that cleans all intermediate files generated while running the required Makefile rules. In addition, you must implement a ‘.gitignore’ file that ignores all intermediate files generated while running these rules. You will lose points on your laboratory passoff if you do not ignore and properly clean and all intermediate files. A passoff script is provided that will check for these requirements for you.

4. Lab Passoff Script

Each laboratory assignment contains a ‘passoff’ python script that will check to make sure you have completed all the required tasks for the lab. You should run this script to verify that you have completed all the required tasks for the lab and that there are no errors. The script may provide warnings and errors. Unresolved warnings will result in penalties to your passoff grade. You will not receive any credit for the passoff section of the lab if you have any errors when running the passoff script.

You can run this script directly from the lab directory as follows (substitute the appropriate name of the lab script):

python3 lab01_passoff.py

The script will perform a number of tests and will provide feedback on the status of these tests. Continue to rerun the script until all warnings and errors have been resolved.

Once you have resolved all warnings and errors, submit your assignment by running the script using the --submit flag. This flag will perform the official submission of your lab to the GitHub repository. Specifically, running this script with this flag will do the following:

  • Tag your repository with the proper lab-specific tag
  • Check to make sure that the ‘.commitdate’ file in your tagged repository is created. (this will be used to determine if you submitted on time)

You may run the script with the --submit flag as many times as you like (there is no penalty for multiple submissions). However, every time you run with the --submit flag, the submission date of your lab will be updated. If your submission date is past the deadline for the lab, you will receive a late penalty as described in the laboratory policies.

If the submission fails . . .

If your passoff script with the --submit flag continues to print messages saying that the commit file has not been created then you may not have GitHub Actions setup properly on your GitHub repository. Follow these instructions to fix this problem (this is a one-type problem that occurs when you first setup your repository).

1. Visit the website of your repository

The URL of your repository is: https://github.com/byu-ecen320-winter2025/320-labs-<githubid> where <githubid> is your unique GitHub ID.

2. Click on the “Actions” button in the tool-bar of the web page

You may see the following image:

Click “Enable Actions on this repository”

3. Make a small change in your repository

Make a small change in your repository (i.e., change the aboutme.txt or such). Recommit the file and push it to the repository.

4. Rerun the passoff script

Run the passoff script.