Skip to content
Choose a tag to compare

Breaking Changes

  • Update Ruby to 2.6.8
  • Table migrations needed due to new features
  • Upgrade of old gems
  • New ruby gems that are added due to the new features.

New Features

GitHub Submission

imageScreen Shot 2021-12-20 at 10 36 41 AM

We now introduce GitHub submission for assessments. Instructors can optionally enable GitHub submission for assessments as they see fit. Students can connect their GitHub account with Autolab and submit from a particular repo's particular branch of theirs directly. See instructions here for how to set up. Once you have set it up for your Autolab instance, you can enable GitHub submission by checking the GitHub submissions checkbox in the assessment settings.Screen Shot 2021-12-20 at 10 25 22 AM
Students can then connect with their GitHub account and submit by selecting a repo's particular branch.
Screen Shot 2021-12-20 at 10 31 09 AM
Screen Shot 2021-12-20 at 10 32 29 AM


  • #1436 #1414 #1402 Roster upload workflow improvement: The previous roster upload workflow can be confusing and ineffective and we as devs are already forgetting what these were like! Here's a more smooth and human-readable and -navigable roster upload process: select your file, press upload, error banner shows up if there are any errors/table of potential upload is shown, press confirm if there are no errors. Allow us to highlight 1) the specific error message in the error banner and 2) sortable entries of the table of potential upload.
    Screen Shot 2021-12-20 at 10 50 40 AM
    Screen Shot 2021-12-20 at 10 54 22 AM
  • #1353 Added search bar for student metrics watchlist
  • #1371 Added Autograder output to speedgrader
  • #1384 #1392 Added support for non-ASCII autograding feedback
  • #1387 Added submission note length check
  • #1400 Increased limit of gradesheet rows to 1000
  • #1408 Added score column to "Manage Submission" sheet
  • #1415 Prerendered previous and next submission page in submission view page
  • #1420 Prevented dropping CA/instructors
  • #1423 Enabled proper customized MIME type check for submission files

Bug Fixes

  • #1359 #1377 #1428 Fixed inappropriate date/datetime picker display
  • #1366 Added safe navigator to chomp method
  • #1370 Properly display annotation decimal numbers
  • #1374 Fixed overlapping footer in 500 error page
  • #1378 Fixed checkboxes that were not visible due to material design update
  • #1386 Refreshed course setting page upon error
  • #1425 Checked that at least one problem is defined when submission is handed
Choose a tag to compare

Breaking Changes

  • Table migrations needed due to new features
  • New ruby gems that is added due to the new features.

New Features

Autolab Docker Compose

Autolab Logo Docker Logo

We have finally introduced the new way to install Autolab, using Docker Compose. This is now the preferred way of installing Autolab as it makes installing and maintaining a production ready (i.e. ready for classes!) Autolab. Find the installation instructions here

Student Metrics Feature


Traditional approaches of identifying students who are struggling with class is reactive; course staff wait for students to come to them to provide help, which can often be too late. We are introducing the new student metrics feature that tracks metrics that signify potential risk, which would help us identify students in need of attention early in the course. Read more about it here

Autolab Documentation


After multiple rounds of review, we have the new and improved Autolab Documentation (which is now also part of the main Autolab repo). It should be easier to navigate and use. Of course we finally made it the iconic Autolab red. Located at the same address as before,


  • #1273 Added script to help with first time users initializing
  • #1263 Improve accessibility for keyboard users by adding skip to main button
  • #1318 Repositions Disabled courses to the bottom of the page
  • #1333 #1334 Autolab API improvements
  • #1351 Autolab Documentation refresh

Bug Fixes

  • #1220 Annotation position bug fixes
  • #1291 Fix infinite speedgrader redirects when header_position = 0
  • #1292 Hide annotations from viewFeedback if it has not been released
  • #1311 Rework Gradebook button logic to allow for both instructor and CA roles
  • #1324 Properly display fractional grades in annotations
  • #1322 Add exception handler for invalid tar files
  • #1335 Show hidden files in speedgrader
  • #1347 Mimemagic docker installation fix
Choose a tag to compare

Breaking Changes

  • #1205 Updates Ruby to 2.6.6
  • #1120 #1123 Updates Gem Dependencies
  • New features introduced table migrations that needs to be done.

New Features

Formatted Feedback

#1185 adds the formatted feedback feature by Jala Alamin. The feature was originally introduced in Washington State University Vancouver's version of Autolab.


Course Dashboard

#1143 adds a course dashboard to the course page as a centralize place for course information and course actions. Allows students to see the total number of late days they have remaining easily.


Bug Fixes

Here are the major bug fixes for this version

  • #1138 Check for malformed handins
  • #1154 Fixes month selection not showing on the edit assessment handin tab
  • #1220 Annotation position bug fixes
  • #1180 Radio Button Fix


This version in particular, includes various accessibility improvements

  • #1215 Improve accessibility of Options button
  • #1212 Keyboard access improvement
  • #1211 Keyboard Access On Handin Page and PLD/GDU Tooltip
  • #1217 Fixed insufficient contrast on footer
  • #1122 Create Advanced tab for edit assignments
  • #1196 Adds ability to export and import embedded forms

Updates from v2.5.0 has been rolled into this release as well, where Autolab has been upgraded from Rails 4 to Rails 5 after almost a year of effort.

Choose a tag to compare

Speedgrader - The new code viewer

  • The File Tree shows file hierarchy of student’s submission
    • Click on a file to open
    • Click on a folder to expand
  • The Symbol Tree allows you to jump quickly to functions in the student’s code
    • Click on a function to jump
  • You can easily switch between submissions and files
    • Up/down arrow keys change file
    • Right/left arrow keys change submission
  • How to use new annotation system:
    • Make annotations with grade adjustments
    • Important: annotations can only be made for non-autograded problems (to preserve the original autograded score of the autograded problem)
    • Annotations grade changes summarized by the Annotations table on the right
  • New: Score for problem automatically updates after annotation score changes based on the following formula (this no longer has to be done manually on the Gradebook):

score = max_score + ∑(annotation score changes)

  • For example, a way to grade style in a deductive manner would be to set the max score for the Style problem, and make annotations with negative score for style violations and zero score for good style

UI Enhancements

  • Tables are more standardized
  • Fixed text overflowing issues on Gradebook modals
  • Improved standardization and UI for annotations on PDF submissions


  • Course assistants are now able to submit assignments early
Choose a tag to compare

User Experience Improvements and Bug Fixes

  • #1007 Removes client restraint on submissions seen by api and improved error messages
  • #1015 Limits classes an instructor can see on moss to those they have permission to use
  • #1016 Adds drag-drop feature to submission page
  • #1013 Various extension form improvements and bug fixes
  • #1011 More meaningful error messages from Tango
  • #1009 Added submission time as a column to the grade export csv
Choose a tag to compare
  • Scrubbed erroneous error reporting on install assessment page
  • Removed app id check on api feedback route
Choose a tag to compare

Major Updates, including a brand new Autolab API that works with the Autolab CLI (for more info on this, look at the docs -, various bug fixes, and enhanced error reporting.

  • #850 and #986 API v1
  • #958 Substring fix so you can only see your own jobs on Tango
  • #954 Automatic timezone based on the browser’s timezone
  • #960 Hide annotations if grading deadline hasn’t passed and user is not an instructor
  • #964 Gradebook typos
  • #974 Visual way to run/test the scheduler
  • #981 Statistics fix for excluding excused students
  • #985 TangoClient retry on certain network errors
  • #986 Regrade error handling
  • #987 Error Handling
  • Workarounds for null constraints in migrations using sqlite instead of mysql
Choose a tag to compare
  • #709 Adds more log messages
  • #711 Update auxiliary loggers to not break main log
  • #838 Fixed double render errors
  • #878 Log and notify when handing exceptions occur
  • #893 Bug fix that allows new assessments to be created without violating the grading_deadline >= end_at invariant
  • #908 Fixed favicon links
  • #910 Added 'javascript required' alert
  • #928 Fixed order of setup script w/ school.yml.template and database
  • #929 Fixed 'No implicit conversion of pathname into String' error post-autopopulation
  • #937 Improved form visuals, automatic field placeholders, fixed margins on autocomplete forms, and added feedback on embedded quizzes
  • #938 Fixed issue submission link
  • #939 Account for DST for late days calculation
  • #943 Added error messages when editing a scoreboard colspec
  • #944 Fix pdf annotation border box positioning
  • #945 Added feature to minimize code annotations, annotations minimized by default, and fixed no-click error
  • #947 Decoupled gradebook and annotations
  • #950 Added Collapse/Expand buttons to annotations page
Choose a tag to compare

Bug fixes and improvements:

  • #857 Move the side bar to reveal from right side
  • #869 Fixes bug in date picker displaying only current time
  • #871 Validates date input submission on edit assessment page. Preserves invariant "Start At <= Due At <= End At <= Grading Deadline"
Choose a tag to compare

Further improvements and bug fixes:

  • #866 Make forms more readable and clear
  • #861 Small bug fix relating to regrade all