Skip to content

v3.0.0

Compare
Choose a tag to compare
@20wildmanj 20wildmanj released this 25 Jul 06:39
· 28 commits to master since this release
7b529d3

Autolab 3.0

With this next set of features, many large scale changes have been implemented to allow Autolab to be deployed and easily managed on an AWS instance. However, existing functionality and backwards compatibility should be maintained for the vast majority of existing Autolab deployments.

Notable Changes

  • Table Migrations needed due to schema changes
  • Autolab configuration should now be done through the UI instead of through environment variables. For new installs, please use the UI configuration (see #2168 for SMTP configuration). However, changes to Autolab configuration are backwards compatible, and should not affect existing deployments. See (#2028, #2095) and below.
  • Google OAuth can now be used as an authentication mechanism (#2028)
  • Some features (#2013, #2095) require a Tango update (4249205 is known to be stable), and #2095 requires a feature flag
  • Simple File Manager allows for adding and removing files, but does not have the same recovery methods that a full-fledged file system has, so careful usage is recommended as recovery methods are investigated
  • Various QoL features have been added, such as improved assessment import, assessment overwriting, problem starring, course access codes, code diff viewer, and release/unrelease button in student submission view, among others. See the full list below.

New Features

Export / Import Course

#2012 #2011 NOTE: The import feature is currently restricted to admins, as course creation is limited to admins. We plan on adding a course overwrite similar to #2018.

Under "Manage Course," there now exists an option to export course data, with the option to include metrics configurations and assessments.

Screenshot 2024-07-23 at 9 29 30 PM

Course creation is now divided into two tabs, with a new option to import a course using a tarball:

image

Assessment Importing has been significantly overhauled. Multiple assessments can be selectively installed, with feedback on installation with error information (if an install failed).

import-course-flow.mov

New formatted feedback on error:

image

Docker Image Uploading

#2013 (NOTE: This feature is feature-flagged. To enable this, set config.x.docker_image_upload_enabled = true in your production.rb environment file. This change also requires an update to Tango)

Instructors / Admins can now directly upload docker images to Tango to easily add new autograding images. Use the "Upload Docker Image" option in "Manage Course" to upload a new autograding image.

Screenshot 2024-07-23 at 9 43 34 PM

Simple File Manager

#2046 #2147 Allows Instructors / Administrators to manage the files and assessments within a course. This simple interface is meant to provide instructors with direct UI access to managing files in-lieu of file management with AFS. Instructors are limited to viewing only the courses which they are instructors of, and can view the file manager in "Manage Course."

Screenshot 2024-07-23 at 10 39 20 PM

Configuration via UI

#2028 Autolab configuration for integrations with LTI, SMTP, Github, and OAuth can now be done through the Autolab UI. Go to "Configure Autolab" under "Manage Autolab" in order to manage configuration settings. Google OAuth can now also be used as an authentication mechanism. (NOTE: Existing deployments can still use environment variables, in order to switch, administrators must update their production.rb file)

Screenshot 2024-07-23 at 10 50 15 PM

Course Access Codes

#2065 Add Course Access Codes as a new way to allow for course registration, where students can self-enroll in a course given an access code, a short string of letters and digits unique to the course. Access codes can be generated by checking the "Allow self-enrollment" checkbox on the course settings page, and only work when the option is enabled. Students can then enroll in the course by clicking the "Join Course" button in the user dropdown menu and entering the access code.

Screenshot 2024-07-23 at 9 52 29 PM

Student View: Join a course using the User dropdown and entering the course access code

Screenshot 2024-07-23 at 9 50 37 PM Screenshot 2024-07-23 at 9 51 00 PM

Add option to explicitly disable network access for autograding containers

#2095 Previously, there was no explicit way to disable network access for autograding containers. Disabling network access prevents student submissions from making any calls to the outside world. Selecting the "Disable Network" option in Autograding settings will now allow instructors to disable access through Autolab. (NOTE: In Tango environments where network access has already been disabled, this option will not re-enable network access).

Code Diff Viewer

#2093 There is now a code diff viewer included as a tab when viewing a student's submission in the golden layout view, allowing instructors and CAs to see differences between submissions. Version switching is also now possible on autograder output. You may need to reset the layout to see the code diff tab.

image

Improvements

User Interface

#2081 Add a button to release/unrelease grades for a student while viewing a student's submission on golden layout

image

#2018 Allow overwrite of assessment files on re-import, while maintaining config data and submissions
#2101 Allow instructors to be included on scoreboards
#2103 Prompt instructors to release all grades after a bulk grade import
#2112 Add detection for mismatch in Autograder results and assessment problems
#2108 Visual cues improvements - Add start/due dates on the course index page for current assignments, and option in settings for user to specify whether they would like to hover to see start/due dates of assessments

#2105 Add a button to show students with missing submissions in the assessment gradesheet page

image

#2089 Allow instructors to select favorite problems to prioritize when annotating assessments and grading. There now is a clickable star icon in "Problems" to denote if a problem is starred.

image

There is also now a checkbox with problem editing to star a problem as well:

image

Starred problems will be prioritized in the problem ordering for annotations:

image

#2120 Improve Assessment Groups UX
#2124 Update new course error message UI
#2122 Add button to disable course on end date in course settings. This option can be used to discourage any AIVs from downloading submissions from past semesters.

#2137 #2149 Allow students to download all of their submitted files by going to their user settings. This allows students to download all of their submissions from non-disabled courses.

image

#2144 Use slugs for attachment URLs (URL for attachments are now generated from their names), and allow for students to click on the "writeup" badge for assessments with writeups to quickly view / download the writeup from the course page.

image

#2123 Update Gradebook UI/UX to be more intuitive and user-friendly. Instructors can now auto-expand a column by double-click on the border of a column header. There is also an option to hide, unhide, and force fit columns. These column options are saved in local storage and are sticky.

image

Maintenance

#2076 Bump github/codeql-action from 2 to 3
#2077 Bump actions/checkout from 3 to 4
#2079 Update nokogiri from 1.15.5 to 1.16.2
#2065 Adding missing breadcrumbs / titles to pages, user can only be at most one of instructor - ca - dropped
#2078 #2106 Remove deprecated SVN code
#2159 Bump linear-b/gitstream-github-action from 1 to 2
#2160 Bump yard from 0.9.34 to 0.9.36, nokogiri from 1.16.2 to 1.16.5, rack from 2.2.8 to 2.2.9, rdoc from 6.6.2 to 6.6.3.1
#2164 Bump rexml from 3.2.6 to 3.2.8

Other Improvements

#2058 Allow assessments with empty config files to be loaded by putting in a default config
#2059 Update installation instructions for Ubuntu 22.04 in Autolab documentation
#2110 Improve MOSS robustness with tarfiles
#2102 Generate a dashed unique new assessment name
#2118 Cleanup assessment / course config files
#2127 Add max_total_score and max_scores to assessment details API call
#2131 Add hooks to Autolab documentation
#2143 Better error messages for autograder settings

Development

#2072 #2073 #2074 Replace reviewpad with gitstream
#2075 Create dependabot.yml to automatically update github actions
#2070 Update all tests to use instance variables, add course/assessment teardown code to remove files generated in tests
#2083 #2097 Add tests for extensions
#2107 Add submissions tests, improve backend code for submission actions

Bug Fixes

#2066 Fix YAML fields not being imported from an exported assessment's config file
#2084 Re-allow instructors to be CAs
#2071 Use instance variables instead of flash to display duplicates during roster import
#2082 Remove custom pluralize method, use Rails provided implementation
#2100 Fix page title for app authorization
#2091 Export files inside nested directories
#2092 Fix scoreboard sorting failing on custom scoreboardOrderSubmissions, add more error checking when creating scoreboard entries / displaying
#2116 Add title for create new course page
#2119 Fix Group options link
#2140 Use File.size? when checking for config files
#2145 Order assessment attachments correctly
#2146 Fix speedgrader file outline on unconventional tar files
#2162 Fix maximized code navigation
#2165 Improve scheduler visual run handling of return value from update method
#2150 #2167 Properly highlight multi-line comments
#2139 Fix faulty nil checks
#2166 Fix css style for shared comment dropdown pool
#2170 Display start and due date-time for assessment according to system timezone