Assignment Submission Reference

Contents:

Turning in your assignment

To turn in your assignment:

  1. Commit all your changes.
  2. Push your changes to GitLab.
  3. Create a hwN-final tag to mark the final commit for assignment N. You can do this from IntelliJ. Do you add a message.
  4. Push your tag. Be sure to check the "Push Tags" box in IntelliJ when pushing.

Once you have committed and pushed the hwN-final tag, your assignment has been submitted. The staff will grade the files in your repository that are labeled with that tag.

Using a late day (turning in your assignment late)

To use a late day, just don't tag your repository on the day it is due. Be sure to tag your repository when you complete the homework, though!

Double-checking your assignment

Optionally, you can double-check your submission, using the following two steps.

  1. Ensure that your code passes the validation tests. There are multiple equivalent ways to do this, so it is enough for any one of them to work (in case of flakiness in the CSE computer systems).
    • Run on attu: ./gradlew validate
      and examine the output on the terminal.
    • Have a passed GitLab runner result. Browse to https://gitlab.cs.washington.edu/cse331-19sp-students/cse331-19sp-MyCSENetId/pipelines

      Here is an example of your code passing the validation tests (note the GREEN checkmark):

      Screenshot:
		Showing commit that passes pipeline tests
      On the contrary, here is an example of your code failing the validation tests (note the RED X mark):
      Screenshot:
		Showing commit that fails pipeline tests
  2. Ensure that GitLab has the hwN-final tag by browsing to https://gitlab.cs.washington.edu/cse331-19sp-students/cse331-19sp-MyCSENetID/tags.

validate

Validating your code checks it for common errors, such as forgetting to commit a required file, or your code not compiling or not passing tests. Such errors could prevent you from receiving credit for your code. However, validation is not guaranteed to catch all errors in your code.

Validation happens every time you push commits to GitLab. You will receive email if your code fails validation, but no email if it passes. You may also perform validation at other times, if you wish. You may perform validation on your own computer on or a CSE-managed computer such as attu.

To validate your code, run ./gradlew validate

If the validate output indicates errors, you should fix them before the deadline, or you will lose points on your assignment.

The validation script tests your code against your own test suite.

GitLab runner pipeline problems

GitLab is a useful and usually reliable service, but occasionally it fails. That is, occasionally your jobs may fail because of a GitLab problem rather than a problem with your code.

When you have a GitLab problem, please follow this process:

  1. Restart the job by browsing to the failed build and clicking the "Retry" button in the upper right.
  2. If the GitLab runner continues to fail in the same way, run `./gradlew validate` on attu.
  3. If the attu command succeeds but the GitLab runner job fails, then send email to support@cs.washington.edu. Be sure to include the URL of your job that failed, such as https://gitlab.cs.washington.edu/cse331-19sp-students/cse331-19sp-MyCSENetID/-/jobs/452877, and also show the command you ran on attu and its output (as when reporting any problem with a command-line tool, cut-and-paste the output, don't take a screenshot).