Skip to content

Releases: MarkUsProject/Markus

v2.9.0

15 Dec 19:11
35935ab

Choose a tag to compare

Release for v2.9.0

Changelog

[v2.9.0]

✨ New features and improvements

  • Added touch event support for PDF and image annotations in grading view (#7736)
  • Added datetime-based visibility scheduling for assessments with visible_on and visible_until columns (#7697)
  • Added frontend UI for assignment visibility scheduling with three visibility options and section-specific overrides (#7717)
  • Added new loading spinner icon for tables (#7602)
  • Added functionality to apply bonuses and penalties as a percentage of the student's earned marks to ExtraMark model (#7702)
  • Switched to consistent Font Awesome chevrons for expander icons (#7713)
  • Install Ruby-LSP to allow development inside different IDEs such as VSCode (#7718)
  • Ensure only instructors and admins can link course, as LMS launch MarkUs button made available for all users (#7714)
  • Include student number in roster sync from Canvas (#7731)
  • Add API endpoint add_test_run that allows independent user submissions of test executions to MarkUs (#7730)
  • Display timeout status for autotest runs in the Test Results table. (#7734)
  • Assign extra marks in test definition. (Currently limited to pytest files) (#7728)
  • Enable zip downloads of test results (#7733)
  • Create rake task to remove orphaned end users (#7741)
  • Enable scanned assignments the ability to add inactive students (#7737)

🐛 Bug fixes

  • Fix name column search in graders table (#7693)
  • Check against mtime instead of atime for clean up of git repo directories in tmp folder (#7706)
  • Update Model: Fix level validation checks through use of a custom validator (#7696)
  • Fixed test group results table to display extra_info field from all test groups (#7710)
  • Fixed syncing grades with Canvas to not include inactive students (#7759)

🔧 Internal changes

  • Updated Github Actions CI to use cache-apt-pkgs to speed up workflow runs (#7645)
  • Converted "Create Group" functionality to React modal (#7663)
  • Added tests to improve coverage for AnnotationCategory's self.to_json method
  • Added tests to the Criteria Controller class to achieve full test coverage
  • Refactored Criterion subclasses to remove redundant code
  • Converted "Rename Group" functionality to React modal (#7673)
  • Fixed Rack deprecation warnings by updating HTTP status code symbols (#7675)
  • Refactored "Reuse Groups" functionality to use React modal and relocated button to action box row (#7688)
  • Updated pre-commit rubocop-rails version to 2.33.4 (#7691)
  • Refactored MarksPanel child components and converted the components into hook-based function components
  • Refactored jQuery active marks panel component tracking logic into React
  • Updated the course summary table to use @tanstack/react-table v8 (#7732)
  • Refactored test_run_table.jsx by extracting nested components into separate files (#7739)

v2.8.2

15 Oct 03:16
0d3f240

Choose a tag to compare

Release for v2.8.2

Changelog

[v2.8.2]

✨ New features and improvements

  • Update message and page displaying cannot create new course via external LTI tool (#7669)
  • Provide file viewer the option to render Microsoft files (#7676)
  • Display late submission selection and add accompanying filter (#7689)

🐛 Bug fixes

  • Fixed N+1 query problem in StudentsController by eager loading user association (#7678)
  • Resque Host Authorization, removing env condition as this is for all environments (#7671)
  • Fixed ordering of assignments in the Assignment dropdown menu and Assignment index page (#7642)
  • Updated Section model associations with appropriate dependent options to handle cascade deletion while preventing deletion when students exist (#7681)
  • Prevent grade change in the grades table for a Marks Spreadsheet, when scrolling up or down with mouse or keys (#7680)
  • Fixed ordering of sections in the Timed Assessment assignments section-specific settings table (#7690)
  • Reattach, accidentally removed due date extension modifier (#7703)

v2.8.1

10 Sep 15:56
a840ff4

Choose a tag to compare

Release for v2.8.1

[v2.8.1]

🐛 Bug fixes

  • Fixed group member filtering in assignment summary table (#7644)
  • Fixed spacing issue for the remote authentication login button (#7646)
  • Fixed API bug when creating binary submission files (#7647)
  • Fixed preview of URL submissions (#7661)
  • Fixed autogeneration of URL alias in URL submission form (#7661)

🔧 Internal changes

  • Updated the assignment summary table to use @tanstack/react-table v8 (#7630)

v2.8.0

13 Aug 03:40
eb6f76e

Choose a tag to compare

Release for v2.8.0

Changelog

[v2.8.0]

🚨 Breaking changes

✨ New features and improvements

  • Improved layout and labeling in the assignment settings form for both standard and timed assessments. (#7531)
  • Design improvement of tables when the data is empty. (#7557)
  • Improved Assignment view for students (#7533)
  • Added average annotations section in Assignment Summary (#7559)
  • Maintain font size in grading view (#7525)
  • Replaced assignment summary statistics in the "Status" column on the instructor Assignments page with a link to the grades page. (#7560)
  • Renamed the "Summary" sub-tab label to "Grades" in the Assignment interface. (#7560)
  • Replaced "Edit" and "Delete" action text links with Font Awesome icons across all tables. (#7595)
  • Create User class method to retrieve orphaned users (#7633)

🐛 Bug fixes

  • Added host authorization setting for Resque (#7562)

🔧 Internal changes

  • Updated test_ci.yml, making GitHub Actions run rspec and jest tests in parallel. (#7634)
  • Remove activerecord-session_store gem (#7517)
  • Upgrade to Rails 8 (#7504)
  • Add tests for #new and #create actions in CriteriaController (#7521)
  • Add tests for #edit and #update when user is trying to change criteria in CriteriaController (#7527)
  • Remove the placeholder "..." text under the "Proposed changes" section in PULL_REQUEST_TEMPLATE.md. (#7524)
  • Update the checklist in PULL_REQUEST_TEMPLATE.md to make the text "list of contributors" a link to the file in the repository. (#7524)
  • Enabled erb_lint linter for erb files (#7561)
  • Refactored the loading method of javascripts/Results/context_menu.js. (#7563)
  • Added test metadata examples to seed data for R autotesting (#7564)
  • Refactored the method of loading javascripts/Results/keybinding.js in submission_selector.jsx (#7566)
  • Moved QR scanning to external python package markus_exam_matcher (#7567)
  • Updated the instructor table to use @tanstack/react-table v8 (#7589)
  • Refactor DropDownMenu class to a new React component (#7592)
  • Updated the tag table and "one time only annotations" table to use @tanstack/react-table v8 (#7596)
  • Updated Python autotest script file to include example of using pytest.mark to customize test marks (#7597)
  • Refactor Grader table in Users to use @tanstack/react-table v8 (#7598)
  • Updated dependabot.yml to add React dependency group and increase, remove old webpack ignored versions, and remove open PR limits (#7627)
  • Improved performance of PDF splitting for scanned assessments (#7632)

v2.7.1

29 May 14:30
369d659

Choose a tag to compare

Release for v2.7.1

Changelog

[v2.7.1]

🐛 Bug fixes

  • Fix bugs when assigning sections to starter file groups across multiple assignments (#7523)

v2.7.0

25 Apr 15:41
77ccce7

Choose a tag to compare

Release for v2.7.0

[v2.7.0]

🚨 Breaking changes

✨ New features and improvements

  • Fix front-end content shift when an input element is focused (#7384)
  • Tooltip text for Package requirements file for Python autotester settings (#7383)
  • Pass back tags and overall comments from Autotester to MarkUs (#7387)
  • Render download test result button on assignment summary page only if the assignment has automated testing (#7417)
  • Group test results by Test Groups id (#7422)
  • Display HTML previews of RMarkdown files (#7394)
  • Allow instructors to assign scans to inactive students (#7482)
  • Added members parameter to add_group_api to support explicit member assignment during group creation (#7481)
  • Modified add_group_api to use username as group name for individual assignments (#7481)
  • Improved styling of markdown previews in MarkdownPreview component and annotation displays (#7487)
  • Allow creating image annotations from a test run's outputs (#7486)
  • Added an API that collects a single submission (#7494)
  • Enable removal of a student from a course (#7480)

🐛 Bug fixes

  • Ensures row selection for peer reviewer unassigning has the same validation checks as individual selections (#7274)
  • Ensures mark levels on a rubric criterion are properly scaled when its max mark is updated (#7311)
  • Refactor contributors list in About section to read from markus-contributors.txt (#7374)
  • Optimized the querying of submissions when assigning graders (#7381)
  • Update remote_autotest_settings_id validation to be unique to an autotester (#7393)
  • Fix tag creation failing in tags table (#7426)
  • Ensure tag names are unique within an assignment (#7430)
  • Update flash style to "notice" for "setting up test env" message (#7445)
  • Fixed bug in ImageViewer where image width was set to 0 on initial load (#7485)
  • Fixed bug in ImageViewer where annotations did not disappear when moving the mouse out of the image (#7485)
  • Ensured annotations appear in results view when in fullscreen mode (#7487)
  • Fixed bug in ImageViewer where annotations did not always appear on initial image load (#7487)

🔧 Internal changes

  • Reorganize Javascript files to separate Sprockets and Webpack compilation (#7345)
  • Replace moment.js dependency with much smaller dayjs (#7346)
  • Refactor FileViewer, TextViewer, BinaryViewer and ImageViewer components (#7270)
  • Pin mistune Python dependency to preserve compatibility with nbconvert (#7371)
  • Cache playwright's chromium installation on GitHub Actions (#7372)
  • Fix broken link to the Vagrant installation guide in README.md (#7349)
  • Fix extra_hosts configuration in compose.yaml (#7375)
  • Add unit tests for marks_graders_controller (#7382)
  • Convert front-end tests from enzyme to react testing library; add @testing-library/user-event (#7379)
  • Refactor the Result component and its children to use React context API (#7380)
  • Implement contain_message and have_message custom Rspec matchers to check for flash message content (#7386)
  • Update Python version to 3.13 in seed autotest schemas (#7388)
  • Rename jupyter notebook content functions and files to generalize to html content (#7391)
  • Update to React v18 (#7392)
  • Remove unused Javascript files (#7442)
  • Refactor scanned test generation and test splitting from polling to websockets (#7428)
  • Move Docker dependency updates into separate service (#7451)
  • Fixed flaky test due to daylight savings time issue (#7452)
  • Updated Python autotest seed file to illustrate pytest metadata custom markers (#7457)
  • Updated to react-flatpickr v4.0.0 (#7478)
  • Remove mistune Python explicit dependency (#7483)
  • Applied pre-commit (specifically Rubocop) changes to use it_behaves_like over include_examples (#7492)
  • Added explicit permissions to GitHub Actions workflow configuration (#7495)

v2.6.1

06 Dec 20:26
bd4f447

Choose a tag to compare

Release for v2.6.1

[v2.6.1]

✨ New features and improvements

  • Give instructors the ability to delete a TA from the Users Graders Tab (#7304)
  • Added zoom and rotate functionality to PDF viewer (#7306)

🐛 Bug fixes

  • Ensure we handle JSON parsing exceptions when converting Jupyter Notebooks (#7308)
  • Fixed bug in grading context menu for editing/deleting annotations (#7314)
  • Fixed bug in grading annotations table when deleting annotations (#7314)
  • Ensure correct LTI version of lti_user_id is used on launch (#7335)

v2.6.0

29 Nov 14:03
d37ab9f

Choose a tag to compare

Release for v2.6.0

[v2.6.0]

✨ New features and improvements

  • Prevent instructors from unassigning peer reviewers who have existing peer review data (#7263)
  • Add visual indicator on a per-assignment basis for used grace credits (#7226)
  • Change default disabled text area colour to ligher grey on light mode (#7269)
  • Implement a limit on the file size rendered by the submission viewer (#7273)
  • Add an option to retain old grading data when recollecting graded submissions (#7256)

🐛 Bug fixes

  • Fix incorrect calculation of token penalties when submissions are on time (#7216)
  • Ensured submissions that have been released cannot be recollected from the repo browser (#7254)
  • Fix bug where renaming a group to an existing group in a different assignment resulted in incorrect repository mapping (#7224)
  • Disable editable fields in assignment criterion when criterion is released (#7264)
  • Fixed Download One Time Annotation 'Not Found' error (#7302)

🔧 Internal changes

  • Fix test coverage for ExamTemplate.create_with_file method (#7213)
  • Upgrade Docker environment to use Ruby v3.3 (#7185)
  • Upgrade to Rails v7.2 (#7185)
  • Move Exception message in student model to a localization file (#7218)
  • Add test cases for the student model to cover Group or Grouping save method failure (#7218)
  • Create tests for overtime messages of the submission rule classes (#7216)
  • Fix flaky check_repo_permissions test (#7223)
  • Move model validation error messages to respective localization files (#7229)
  • Replace time-warp gem with newer, maintained timecop gem (#7234)
  • Update pre-commit-hooks to v5.0 and add checks check-illegal-windows-names, check-json, and check-merge-conflict (#7259)
  • Merge result.js and result_main.css build files into application.js/application.css (#7260)
  • Simplify pdf.js configuration (#7260)
  • Improve descriptions of the Group and Grouping models (#7262)
  • Disable Rubocop Style/SafeNavigationChainLength check (#7301)
  • Ignore faker translations in i18n-js compilation (#7305)

v2.5.3

04 Nov 02:02
90d6521

Choose a tag to compare

Release for v2.5.3

[v2.5.3]

🐛 Bug fixes

  • Fix Marks Spreadsheet csv bug of showing incorrect marks (#7257)
  • Fix incorrect inclusion of course parameter in LtiSyncJob (#7258)
  • Fix Google Colab Jupyter Notebooks rendering by excluding widgets (#7271)

v2.5.2

27 Sep 17:14
bf88ab7

Choose a tag to compare

Release for v2.5.2

Changelog

[v2.5.2]

✨ New features and improvements

  • Improve textviewer rendering speed (#7211)
  • Add periodic roster syncing via LTI (#7178)
  • Allow instructors to assign graders by section (#7179)

🐛 Bug fixes

  • Fix JSON/CSV summary of test results to always be inline with latest test run (#7214)
  • Allow annotations to be added to results with released peer reviews (#7222)

🔧 Internal changes

  • Manually specify chromedriver port number in Github actions (#7209)