v2.11.0: LTI Settings UI, extensions metrics, and simultaneous extension creation
Notable Changes
- Ruby upgraded to 2.7.7
- Table migrations needed due to schema changes (removal of unused columns)
- Changes to Grade Export CSV format
- Reordered total score column to be after email column
- Removed colons from column names
- Appended columns for students' first name, last name, section, and lecture
- Changes to structure of handin directory (backwards compatible)
- Per-user subdirectories are now created under the handin directory, and some filenames have been shortened
- Existing submissions are not affected
- See #1831 for more details
Security Advisories
- Session forgery using secret_key_base
- Tar slip in Install Assessment functionality
- Tar slip in cheat checker functionality
New Features
LTI Settings page
#1769 #1817 The config/lti_settings.yml
config file is no longer used for LTI integration. Instead, settings can be managed through a web interface (Manage Autolab > LTI Configuration)
Github Submissions for a specific commit
#1836 Students making a github submission must now specify a commit, rather than defaulting to the latest commit.
Extension metrics
#1878 Instructors can now use metrics to track students in a course by the number of extensions given.
User interface to upload config files
#1883 #1905 Assessment and course configs can now be directly updated through a web interface. Uploaded configs are automatically reloaded.
Assessment config: Edit Assessment > Basic
Course config: Manage Course > Course settings
Simultaneous extension creation
#1896 The autocomplete dropdown on the manage extensions page is now capable of selecting multiple students at once. This allows the same extension to be created for multiple students at once. If a student has an existing extension, their extension is updated instead.
Improvements
User Interface
#1673 - Revamp Gradebook/Gradesheet to be more UI friendly
#1674 - Revamp getjobs UI
#1682 - Improve attachments interface and error handling
#1683 #1694 - Move "install assessment" button to be with the other course buttons
#1685 - Change overflow-x on .submissions from scroll to auto
#1689 - Input pre-validation on sign-up page
#1701 - Removed deadline warning for non-submittable assignments
#1738 - Make metrics page font size consistent
#1739 - Fix footer on course view page
#1749 - Add Sorting Icons to Instructor Gradebook
#1753 - Change course badge text to correctly reflect course assistant role
#1758 - Changed "Manage Autolab" button from a page redirect to a dropdown
#1778 - Fixed word breaks in course cards
#1779 - Make blue darker to help with contrast
#1780 - Wrap long lines in annotations
#1784 - Gradebook sorting icon & styling
#1785 - Link to submission page for ungraded assignments
#1809 - Add loading spinner to annotations panel when annotations are updating
#1838 #1891 - Fix thead alignment on manage submissions, manage users, missing submissions pages
#1863 - Make moss page for current course only
#1888 - Fix hovering over top navbar to be colored white instead of blue for Metrics page
#1895 - Display submission date on speedgrader
Documentation
#1687 - Adds streaming output explanation into Lab author's guide
#1690 #1774 - Updates to README
#1823 - Update docker compose docs
#1841 - Update MacOS install docs to use Homebrew
#1842 - Update Docs to use bash to run init-letsencrypt.sh instead of sh
#1847 - Add warning to documentation about RAM requirements
Maintenance
#1634 - Add rake task to clean cache
#1691 #1692 #1757 #1828 #1835 #1876 Bump gems
- rack: 2.2.4 to 2.2.6.4
- globalid: 1.0.0 to 1.0.1
- sqlite3: 1.5.0 to 1.5.1
- nokogiri: 1.13.10 to 1.14.3
#1693 - Centralize Sass variables into single file
#1759 - Upgrade ruby to 2.7.7
#1830 - Remove unused "Additional Submission Form" feature code
#1879 - Fix placeholder for DEVISE_SECRET_KEY
#1881 docker#56 - Simplify initialize_secrets.sh, fix dockerfile
#1885 - Delete unused destroy html erb file
Others
#1740 - Redirect instructor to manage submissions page after updating submission
#1750 - Backend throttling for getPartialFeedback
#1760 - Autofill scores for shared comments
#1773 - Configuration for URL generation
#1789 - Improve delete user functionality
#1801 - Button to clear cache (in dropdown)
#1812 - Jump to currently enrolled course
#1822 - Update Export / Import Assessment to support more fields, make importAsmtFromTar and importAssessment more robust
#1829 - Grade Export: Move total column to be after email
#1831 - Create per-user handin subdirectories
#1834 - Course start/end date nil checks
#1840 - Version dropdown: jump to same file if it exists
#1860 - Avoid rounding final score during bulk grade export
#1866 - Adds modifySubmissionScores hook
#1897 - Add student info to Bulk Export Grades
#1900 - Handin improvements
- Handin file no longer cleared when switching to github submission tab
- Github submissions will no longer be accidentally triggered by a normal submission
Development
#1698 #1804 #1816 #1837 #1858 - Improve tests
#1751 #1754 #1755 #1790 #1889 - Set up Gitstream
#1805 - Update workflows to work with merge queue
#1818 - Enable Rubocop Linting within /spec directory
#1871 autolab-website#28 - Use communityinviter for slack invites
#1894 - Setup erb-lint, lint views/admins files
#1899 - Autolab v2.11.0
Bug Fixes
#1682 - Correctly display filename for annotations on first file of an archive
#1747 - Filter error handler scores before rendering view statistics page
#1807 - Annotation scrolling to line UI bug fix
#1820 - Fix bug where course gets created even if there are errors
#1821 - Fix bug in GitHub api rate limit check
#1833 - Fix annotated PDF download when global annotation is present
#1898 - Fix 500 error from going to users/id for non-existent user-id
#1901 - Correctly display PDF annotations on viewFeedback page
#1906 - Fix directory permissions for assessment imports