Course management service that enables auto-graded programming assignments.
passenger_ruby
in nginx/app.conf
to /usr/bin/ruby3.2
(https://github.com/autolab/docker/pull/63)dates.grading_deadline
and general.name
no longer need to be specified in assessment .yml
files. dates.visible_at
does not have to be specified since v2.11.1.storage
subdirectory.#1983 Attachments now support specifying a category and "release at" date. They will be grouped by category and ordered by the "release at" date.
Student view
Students can download an attachment by clicking anywhere in the box.
Instructor view
Instructors can download an attachment by clicking on the attachment's name.
#2016 Assessment start / end dates are now shown on course homepages.
#1982 - Handle malformed scoreboard results from autograder, fix error handling for scoreboards #1988 - Hide irrelevant cud fields for students #1990 #2004 #2006 - Display Grace Day usage on submission history table, improve management of assessment penalty settings #1998 - Click into submissions from gradebook score #1999 - Adds warning when assessment.rb file upload isn't a .rb file #2005 - Display submission version in gradebook #2015 - Show all courses for MOSS #2019 - Show all students on gradesheet
#1957 #1958 #1959 #1960 #1963 #1964 #1966 #1967 #1968 #1969 #1970 #1974 #1977 #1978 #1980 - Linting #2037 - Rails 6.1.7.6 Migration #2039 - Bump uri from 0.10.0 to 0.10.3 #2040 #2044 - Update Ruby to 3.2.2
#1956 #2045 - Update the API to allow retrieving group members #1984 - Passwordless temporary login #1993 - Removed name from assessment yml #2014 - Remove grading deadline #2023 - Use ActiveStorage for attachments, add attachment size limit #2050 - Remove gradebooks directory #2055 - Correct Autolab spelling
#1991 - Update link to docs in PR template #1994 - Add erblint to overcommit and github actions #2056 - Autolab v2.12.0
#1985 - Prevent spoofing the author of an annotation #1997 - Switch mossnet clean to use rails root instead of tilde expansion #2001 - Check that handout/writeup exists before checking path #2003 - Account for hooks in viewFeedback instead of feedback output #2008 - No line breaks when generating base64 strings #2009 - Remove element overlapping scrollbar hitbox #2024 - Move submission version logic to be handled by AUD #2038 - Address issues from v2.8.0 testing, misc fixes/changes #2049 - Load enable_starttls_auto as a boolean
config.exceptions_app = self.routes
to the production.rb
environments file.#1911 - Add explicit import button for import asmt from tar #1913 - Improve viewFeedback output parsing, error robustness #1915 - Remove unused errors column from submission history table #1916 - Scheduler improvements
#1921 - Use custom error pages #1925 - Sort scoreboard beyond third column, improve CUD validations #1931 - Add button to bulk import assessments from file system #1951 - Hide download handout button if assessement has no handout
#1918 - Lint view/jobs #1919 - Lint views/home, update wording in views/home/contact, views/home/developer_login #1922 - Tango error flash: remove dead code and fix newline #1936 - Make problem names be unique within assessments #1937 - Update "Bulk Email Instructors" to work with MySQL's ONLY_FULL_GROUP_BY #1939 - Fix importAsmtFromTar error handling #1962 - Use unordered Course.assessments to get categories #1965 - Lint view/groups
#1908 - Exclude current assignments from metrics #1920 - Eager load course_user_datum for the index submission view #1932 - Propagate start_at during assessment import, remove unused db columns #1945 - Prevent failing import from file system from deleting assessment files
#1904 #1909 #1910 - Reviewpad onboarding #1923 - Bump doorkeeper from 5.5.4 to 5.6.6 #1929 - Lock passenger-ruby27 to v2.5.0 #1934 - Use omniauthv2-shibboleth for omniauth v2 compat #1976 - Autolab v2.11.1
#1912 - Correctly cache speedgrader symbol tree #1930 - Add student emails to downloadAll archives #1947 - Send Tango unambiguous filenames for user handins #1950 - Handle orphaned annotations on view feedback 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)
#1836 Students making a github submission must now specify a commit, rather than defaulting to the latest commit.
#1878 Instructors can now use metrics to track students in a course by the number of extensions given.
#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
#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.
#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
#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
#1634 - Add rake task to clean cache #1691 #1692 #1757 #1828 #1835 #1876 Bump gems
#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
#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
#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
#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
config/lti_settings.yml
has been added for LTI integration. This is also required to be done manually for the docker-compose installation as well. Please initialize the file by runningcp config/lti_settings.yml.template config/lti_settings.yml
#1635, #1649, #1657, #1678 Autolab now supports roster syncing with courses on Canvas and other LTI (Learning Tools Interoperability) services. For full instructions on setup, see the documentation.
Once a course is linked, instructors can go to [Course] > Manage Course > Manage Course Users to refresh the roster:
Instructors can also edit "Linked Course Settings" to configure whether or not to auto-drop students who are not enrolled in a linked course.
#1622, #1645, #1671, #1679, Tango #223, Tango #225
The feedback interface now features a two-column panel for displaying feedback. The left-hand side features the autograding output as well as a status (Queued, In-Progress, or Completed) badge, and the right-hand side features a results panel, with the student's scores for a submission.
Submissions being graded are now clickable with a clock icon rather than a plaintext dash. Once clicked, partial output from Tango can now be viewed on the feedback page as a submission is being graded. Partial feedback will be updated when the user clicks on the refresh icon.
Assignments that have been added to the autograding queue, but haven't started grading yet will be displayed as such:
#1617, #1629 Instructors and CA's are able to leave "general" feedback on each problem, not tied to any specific line number or file. These can be accessed by pressing the plus button next to a problem header.
Once added, the general feedback comments will be displayed with a badge indicating the number of points. When hovered over, they can be edited or deleted.
#1658 - Correctly display orphaned annotations on the viewFeedback page #1643 - Don't mark error-initialized scores as graded by autograder #1639 - API endpoints to create problems and query/update scores for an assessment #1618 - Positive grading for assessments #1617 - Filename, line number, better collapsibility for annotations #1610 - Allow linebreaks in remarks; new UI for remarks in viewFeedback #1590 - Fix order of annotations on feedback view and file view to be consistent #1660 - Annotations Improvements: New features
Breaking changes
Others
#1655 - Export metrics to CSV #1651 - Ability For Instructors to Enable Student Metrics for Course Assistants #1630 - Exclude dropped students from watchlist during refresh and updates
#1640 - bulk import & assign roles to users from emails #1637 - Add course number column to roster #1585 - Standardize roster upload tables #1580 - Mononym support
#1633 - Refactor manage course statistics table #1631 - Remove extraneous span padding on metrics page #1626 - Rework watchlist top button visibility, allow student names to be copied #1624 - Make submission summary fill up space #1615 - Hide view writeup button when no writeup exists #1609 - Compact submission history, increased visibility of "see all submissions" #1607 - Make attachment uploads more understandable, indicate if attachment is unreleased #1606 - Overflow scroll within feedback div instead of flow through entire page #1602 - Improved formatting of handin history page #1601 - Updated heading sizes #1598 - "Beautify" user profile
#1672 - Catch invalid assessment config on import assignment tar #1662 - Allow admins to edit school and major of users #1638 - Check for handin file type when uploading file to assignment #1623 - Show revised due date for manage extensions #1619 - Extension support for non-english names #1592 - Update extension functionality #1587 - Add reset layout button to student view of speedgrader
#1647 - Fix codebox highlighting after switching files
#1621 - Fix annotation switching problems not updating score
#1660 - Prevent selection of autograded problems when editing annotation, persist shared comments checkbox for global annotations, preserve newlines in descriptions, add handling for nil
problem max_score
#1620 - Force flatpicker interface for date/datetime picker on mobile
#1616 - Use correct files list for sorting annotations when viewing an archive
#1614 - Show only one download option in assessment submission summary
#1613 - Retry loading file viewer with new header position when render error occurs
#1596 - Make grades section scrollable, delete unnecessary headings in speedgrader
#1595 - Fix enroll student for existing students
#1589 - Remove possibility of having a submission time in the future when bulk importing grades
#1588 - Parameterize category names for metrics allowlist
#1584 - Fix creation of missing submissions
#1579 - Fix remarks for annotations on autograder support
File disclosure via remote handin feature RCE via MOSS functionality
#1507 #1517 We are introducing a method to exclude selected categories of assessments from consideration in watchlist calculations. For example, by excluding optional assessments, false positive rates of students marked as at-risk can be reduced.
#1486 Using the Golden Layout library, we have introduced a new interface for the speedgrader. Components of the layout are now draggable, expandable, closable, and resizable. Layout changes will persist in all speedgrader pages, but users may also reset the layout back to the default configuration using a "Reset Layout" button.
#1497 Course Assistants and instructors are now able to optionally add their code annotation comments to the "comment pool." This shared comment pool will appear as "autofill" options in the comment textarea to all graders for an assignment. When a comment is selected from the dropdown, the comment will populate the textarea for the grader to post.
#1508 #1503 #1574
We introduce an easier way of switching between the different versions of a student's submission. Either 1) Use the dropdown to select a specific version, or 2) use the [
and ]
buttons to switch between the next and previous versions that contain the same file.
#1561 Improve error messages for file system imports
#1515 Consistent annotations for group submissions
#1535 Standardize CDN includes
#1550 Reconcile home layout with application layout
#1533 Add autocomplete to Sudo feature
#1540 Replace deprecated calls to devise_error_messages!
#1531 Ignore trailing newlines at the end of autograder output
#1522 #1539 #1541 Improved handling of invalid course and assessment configs
#1530 Add UTC offset to assessment due date
#1030 Add helper text for API scopes field
#1511 Add aria-expanded to menus on the Manage Course page
#1509 Expand Admin Course menu by default on the Manage Course page
#1473 Duplicated confirm button at top roster upload confirmation screen
#1476 Stop showing unreleased scores in student gradebook
#1474 Set default dates of new assessment to one day later than the present
#1468 Remove passive updates to watchlist
#1488 Add correct timestamps to contents of zip file
#1573 Fix PDF viewer on autograded assessments
#1571 Correctly display autograder output on view submission page
#1569 Update name for group settings function
#1562 Disable user data fields during CUD edit
#1565 Properly indent folders in speedgrader file outline
#1563 Fix exception when CA download all called with no submissions
#1559 Fix exception on statistics page when submission made on problemless assessment
#1560 Fix exception when deleting course
#1557 Fix incorrect Roster format
#1553 Fix incorrect usage of flash
#1526 Fix typos in codebase
#1547 Fix user dropdown not triggering on handin page
#1544 Fix logic for GitHub integration when not configured / misconfigured
#1514 #1548 Hide unreleased attachments from students
#1523 Fix display of infinite extensions on handin page
#1520 #1545 #1532 #1549 Fix XSS vulnerabilities
#1518 Complete renaming of bulkRelease
to bulk_release
#1513 Fix Create Submission feature
#1512 #1519 #1524 #1521 #1525 #1564 Fix CSRF vulnerabilities
#1499 Handle empty course rosters
#1446 Disable the submit button of a disabled assessment
#1556 Update README #1542 Add code scanning to repository #1453 #1477 #1494 #1502 #1504 #1506 #1546 #1551 #1554 Improve documentation #1481 Create security.md
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. Students can then connect with their GitHub account and submit by selecting a repo's particular branch.
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
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
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, https://docs.autolabproject.com/.
https://github.com/autolab/Autolab/pull/1185 adds the formatted feedback feature by Jala Alamin. The feature was originally introduced in Washington State University Vancouver's version of Autolab.
https://github.com/autolab/Autolab/pull/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.
Here are the major bug fixes for this version
This version in particular, includes various accessibility improvements
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.
score = max_score + ∑(annotation score changes)
User Experience Improvements and Bug Fixes