Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
c3e36e1
update changelog with new release v2.8.0 [ci skip] (#7637)
donny-wong Aug 13, 2025
785f735
Upgraded to Rails v8.0.2.1 (#7640)
david-yz-liu Aug 15, 2025
d041d39
Upgraded Rubocop to target Ruby version 3.1 (#7643)
ch-iv Aug 18, 2025
7398e68
Migrated assignment summary table to react-table v8 (#7630)
freyazjiner Aug 18, 2025
899c143
Fixed group member filtering in assignment summary table (#7644)
david-yz-liu Aug 20, 2025
3d2b5b1
Used cache-apt-pkgs-action to cache CI system dependencies (#7645)
hemmatio Aug 26, 2025
1a494af
Fixed spacing issue for the remote authentication login button (#7646)
david-yz-liu Aug 29, 2025
2c3cb36
Fixed API bug when creating binary submission files (#7647)
david-yz-liu Aug 29, 2025
6f91071
build(deps-dev): bump rspec-rails from 8.0.1 to 8.0.2 (#7649)
dependabot[bot] Sep 2, 2025
ae4a3ac
build(deps-dev): bump selenium-webdriver from 4.34.0 to 4.35.0 (#7651)
dependabot[bot] Sep 2, 2025
5b60ed8
build(deps): bump the babel group with 4 updates (#7654)
dependabot[bot] Sep 2, 2025
9890b8d
build(deps-dev): bump simplecov-lcov from 0.8.0 to 0.9.0 (#7659)
dependabot[bot] Sep 2, 2025
66e9d72
build(deps): bump exception_notification from 5.0.0 to 5.0.1 (#7657)
dependabot[bot] Sep 2, 2025
8289b7a
build(deps): bump pg from 1.6.0 to 1.6.1 (#7655)
dependabot[bot] Sep 2, 2025
df2b40f
build(deps): bump @rails/actioncable in the rails group (#7656)
dependabot[bot] Sep 2, 2025
bd30713
Fixed preview of URL submissions and generation of URL display names …
david-yz-liu Sep 9, 2025
17e87a4
update changelog with new release v2.8.1 [ci skip] (#7665)
donny-wong Sep 10, 2025
bda12c0
Added tests for AnnotationCategory.to_json method (#7666)
lizzie-liu Sep 17, 2025
f61daaa
Added loading icon for react tables (#7602)
chickenwaddle77 Sep 19, 2025
857462f
Added extra tests for CriteriaController (#7668)
lxyhan Sep 19, 2025
9c91f60
Removed env check for resque host authorization (#7671)
donny-wong Sep 19, 2025
5cfb63e
Converted Create Group modal to React component (#7663)
freyazjiner Sep 19, 2025
b9d27d5
Refactored Criterion subclasses to remove update_assigned_groups_coun…
lizzie-liu Sep 24, 2025
62c0607
Updated view when a course cannot be created via an LTI external tool…
donny-wong Sep 24, 2025
2bdce84
Fixed Rack HTTP status code deprecation warnings (#7675)
lxyhan Sep 25, 2025
0ad15d3
Provided file viewer the option to render Microsoft files (#7676)
donny-wong Sep 26, 2025
071c426
Fixed N+1 query in StudentsController#index by eager loading user ass…
lxyhan Sep 26, 2025
f09ff46
Ordered assignments by due date on index page and quick links dropdow…
lizzie-liu Sep 27, 2025
62d1155
[pre-commit.ci] pre-commit autoupdate (#7631)
pre-commit-ci[bot] Sep 27, 2025
3a3170e
Converted "Rename Group" modal to React component (#7673)
freyazjiner Sep 30, 2025
84cadac
Prevented marks spreadsheet grade change when scrolling or using arro…
donny-wong Oct 2, 2025
31db8c3
build(deps): bump the babel group with 2 updates (#7684)
dependabot[bot] Oct 2, 2025
df767f2
Fixed foreign key violation when deleting sections with starter file …
lxyhan Oct 3, 2025
9738da2
build(deps): bump rails-i18n from 8.0.1 to 8.0.2 (#7682)
dependabot[bot] Oct 3, 2025
e76cbc7
build(deps): bump marcel from 1.0.4 to 1.1.0 (#7685)
dependabot[bot] Oct 3, 2025
61bfbd8
build(deps): bump rails from 8.0.2.1 to 8.0.3 (#7683)
dependabot[bot] Oct 4, 2025
4abd638
build(deps): bump rubyzip from 2.4.1 to 3.0.2 (#7648)
dependabot[bot] Oct 4, 2025
b9ce096
Updated pre-commit rubocop-rails to v2.33.4 (#7691)
david-yz-liu Oct 5, 2025
68750f5
Refactored assignment group reuse functionality to React modal (#7688)
freyazjiner Oct 6, 2025
299cf67
[pre-commit.ci] pre-commit autoupdate (#7692)
pre-commit-ci[bot] Oct 6, 2025
738f8f0
build(deps): bump rack from 3.2.1 to 3.2.2 (#7694)
dependabot[bot] Oct 7, 2025
2ad34be
Fixed Name column search in graders table (#7693)
freyazjiner Oct 8, 2025
50143bd
#7674: Fixed order in section-specific settings table for timed asses…
lizzie-liu Oct 8, 2025
3d94b2d
Displayed late penalty indicator for extensions in Groups table (#7689)
Naragod Oct 10, 2025
dce1b8d
build(deps): bump rack from 3.2.2 to 3.2.3 (#7698)
dependabot[bot] Oct 10, 2025
d2ae211
build(deps): bump sinatra from 4.1.1 to 4.2.0 (#7699)
dependabot[bot] Oct 12, 2025
454c332
issue-7677: Fixed accidental removal of due date extension creation b…
Naragod Oct 14, 2025
e242c86
update changelog with new release v2.8.2 (#7705)
donny-wong Oct 15, 2025
5caac74
Check against mtime instead of atime for git repos clean up in tmp fo…
donny-wong Oct 15, 2025
6817ac2
issue-7687: Fixed rubric criterion level UPDATE conflicts (#7696)
Naragod Oct 16, 2025
fb62eda
Improved tests for the graders table name search input (#7701)
freyazjiner Oct 21, 2025
0df9ecc
Added percentage_of_mark type to ExtraMark model (#7702)
freyazjiner Oct 21, 2025
22805cd
Refactored MarksPanel child components into React hook-based componen…
lizzie-liu Oct 23, 2025
2ca6a7b
Added scheduled visibility fields for assessments (#7697)
lxyhan Oct 24, 2025
00f1c58
Fixed test group results table to display extra_info field from all t…
david-yz-liu Oct 27, 2025
1ea4bb8
Switched to consistent Font Awesome chevrons for expander icons (#7713)
david-yz-liu Oct 30, 2025
be663f8
build(deps-dev): bump bullet from 8.0.8 to 8.1.0 (#7719)
dependabot[bot] Nov 2, 2025
bd19e06
build(deps-dev): bump the babel group with 4 updates (#7721)
dependabot[bot] Nov 2, 2025
487a41c
build(deps): bump pg from 1.6.1 to 1.6.2 (#7722)
dependabot[bot] Nov 2, 2025
aeca3c7
build(deps-dev): bump webmock from 3.25.1 to 3.26.1 (#7720)
dependabot[bot] Nov 3, 2025
541fc48
[pre-commit.ci] pre-commit autoupdate (#7727)
pre-commit-ci[bot] Nov 4, 2025
c2de6e3
Add ruby-lsp to development_extra group (#7718)
Naragod Nov 5, 2025
485c3b0
Added penalty_type option to submission rules (#7709)
freyazjiner Nov 10, 2025
e2e716b
Refactored active criterion logic to move into React components (#7726)
lizzie-liu Nov 10, 2025
c89a3cf
Ensure only instructors and admins can link course, as LMS launch Mar…
donny-wong Nov 11, 2025
6507019
Added frontend UI for assignment visibility scheduling (#7717)
lxyhan Nov 13, 2025
dcc3256
Updated Canvas roster sync to include student id numbers (#7731)
donny-wong Nov 16, 2025
a2d2625
issue-7298: Added add_test_results API endpoint (#7730)
Naragod Nov 17, 2025
10c7738
Added support for extra marks autotesting results metadata (#7728)
Naragod Nov 19, 2025
c66947a
Added timeout display to the test run table (#7734)
freyazjiner Nov 23, 2025
a057d96
build(deps): bump js-yaml from 3.14.1 to 3.14.2 (#7735)
dependabot[bot] Nov 23, 2025
210679b
Enabled zip downloads of assignment test results (#7733)
Naragod Nov 25, 2025
943c2bb
Split test_run_table.jsx into separate component files (#7739)
freyazjiner Nov 25, 2025
1a2be36
Add touch event support for PDF and image annotations (#7736)
lxyhan Nov 26, 2025
90cc1ff
build(deps): bump playwright from 1.54.0 to 1.55.0 (#7653)
dependabot[bot] Nov 26, 2025
2f88e25
Created rake task to remove orphaned end users (#7741)
donny-wong Nov 29, 2025
356dde5
Migrated Course Summary Table to @tanstack/react-table v8 (#7732)
lizzie-liu Nov 30, 2025
2c85f53
Enable scanned assessments to assign inactive students to groups (#7737)
Naragod Dec 1, 2025
6d67354
[pre-commit.ci] pre-commit autoupdate (#7752)
pre-commit-ci[bot] Dec 3, 2025
74e9bff
build(deps): bump json from 2.13.2 to 2.16.0 (#7749)
dependabot[bot] Dec 4, 2025
2ff4aad
build(deps): bump playwright from 1.55.0 to 1.56.0 (#7751)
dependabot[bot] Dec 4, 2025
4dce60b
build(deps): bump puma from 6.6.1 to 7.1.0 (#7750)
dependabot[bot] Dec 4, 2025
ba6f02e
build(deps): bump rmagick from 6.1.2 to 6.1.4 (#7748)
dependabot[bot] Dec 5, 2025
3421ef3
Modified LMS grade sync to exclude inactive students (#7759)
donny-wong Dec 9, 2025
318a468
Merge branch 'master' into release_2.9.0
Dec 11, 2025
394f4ad
update files to reflect what's on master
Dec 11, 2025
9f55e66
update MarkUs version
Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 43 additions & 5 deletions .github/workflows/test_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,49 @@ jobs:
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get -yqq install libpq-dev cmake ghostscript pandoc imagemagick libmagickwand-dev git libgl1 tesseract-ocr pandoc poppler-utils
- name: Install and cache system dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: |
libpq-dev
cmake
ghostscript
pandoc
imagemagick
libmagickwand-dev
git
libgl1
tesseract-ocr
pandoc
poppler-utils
fonts-liberation
libasound2
libatk-bridge2.0-0
libatk1.0-0
libatspi2.0-0
libcairo2
libcups2
libdbus-1-3
libdrm2
libegl1
libgbm1
libglib2.0-0
libgtk-3-0
libnspr4
libnss3
libpango-1.0-0
libx11-6
libx11-xcb1
libxcb1
libxcomposite1
libxdamage1
libxext6
libxfixes3
libxrandr2
libxshmfence1
version: 1.0
# Packages 'fonts-liberation' and onward are needed for playwright's chromium installation.
# The list was taken from: https://github.com/microsoft/playwright/blob/main/packages/playwright-core/src/server/registry/nativeDeps.ts#L37-L63
- name: Set up ruby and cache gems
uses: ruby/setup-ruby@v1
with:
Expand Down Expand Up @@ -86,7 +125,6 @@ jobs:
python3.10 -m venv venv
./venv/bin/pip install -r requirements-jupyter.txt -r requirements-scanner.txt
./venv/bin/playwright install chromium
./venv/bin/playwright install-deps chromium
- name: Configure server
run: |
sudo rm -f /etc/localtime
Expand Down
10 changes: 5 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: check-illegal-windows-names
- id: check-json
Expand All @@ -17,12 +17,12 @@ repos:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.6.2
rev: v3.7.3
hooks:
- id: prettier
types_or: [javascript, jsx, css, scss, html]
- repo: https://github.com/thibaudcolas/pre-commit-stylelint
rev: v16.21.1
rev: v16.26.1
hooks:
- id: stylelint
additional_dependencies: [
Expand All @@ -39,7 +39,7 @@ repos:
app/assets/stylesheets/common/_reset.scss
)$
- repo: https://github.com/rubocop/rubocop
rev: v1.77.0
rev: v1.81.7
hooks:
- id: rubocop
args: ["--autocorrect"]
Expand All @@ -52,7 +52,7 @@ repos:
Vagrantfile
)$
additional_dependencies:
- rubocop-rails:2.27.0
- rubocop-rails:2.33.4
- rubocop-performance:1.23.0
- rubocop-factory_bot:2.26.1
- rubocop-rspec:3.2.0
Expand Down
7 changes: 5 additions & 2 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
require:
- rubocop-rails
- rubocop-performance
- rubocop-factory_bot
- rubocop-rspec_rails
- rubocop-capybara
plugins:
- rubocop-rails
- rubocop-rspec

AllCops:
Expand All @@ -15,7 +15,7 @@ AllCops:
- 'Vagrantfile'
NewCops: enable
SuggestExtensions: false
TargetRubyVersion: 2.7
TargetRubyVersion: 3.1

Capybara/ClickLinkOrButtonStyle: # TODO: Enable and fix errors after reviewing system tests
Enabled: false
Expand Down Expand Up @@ -187,6 +187,9 @@ Rails/RequireDependency:
Rails/SkipsModelValidations:
Enabled: false

Rails/StrongParametersExpect: # TODO: Enable this one and fix all issues
Enabled: false

Rails/UniqueValidationWithoutIndex:
Enabled: false

Expand Down
44 changes: 42 additions & 2 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
# 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]

### ✨ New features and improvements
Expand Down Expand Up @@ -27,11 +68,10 @@

### 🔧 Internal changes
- Updated the assignment summary table to use `@tanstack/react-table` v8 (#7630)
- Updated Github Actions CI to use cache-apt-pkgs to speed up workflow runs (#7645)

## [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)
Expand Down
12 changes: 8 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ source 'https://rubygems.org'

# Bundler requires these gems in all environments
gem 'puma'
gem 'rails', '~> 8.0.2.1'
gem 'rails', '~> 8.0.3'
gem 'sprockets'
gem 'sprockets-rails'

Expand Down Expand Up @@ -37,7 +37,7 @@ gem 'histogram'
# Internationalization
gem 'i18n'
gem 'i18n-js'
gem 'rails-i18n', '~> 8.0.1'
gem 'rails-i18n', '~> 8.0.2'

# Redis
gem 'redis', '~> 5.4.1'
Expand All @@ -46,7 +46,7 @@ gem 'redis', '~> 5.4.1'
gem 'combine_pdf'
gem 'prawn'
gem 'prawn-qrcode'
gem 'rmagick', '~> 6.1.2'
gem 'rmagick', '~> 6.1.4'
gem 'rtesseract'

# Ruby miscellany
Expand Down Expand Up @@ -85,6 +85,10 @@ group :development do
gem 'listen' # to listen for changes in i18n-js files
end

group :development_extra, optional: true do
gem 'ruby-lsp', require: false
end

group :test do
gem 'factory_bot_rails'
gem 'fuubar'
Expand All @@ -106,7 +110,7 @@ group :development, :test do
gem 'capybara'
gem 'debug', '>= 1.0.0'
gem 'i18n-tasks', require: false
gem 'rspec-rails', '~> 8.0.1'
gem 'rspec-rails', '~> 8.0.2'
gem 'selenium-webdriver'
end

Expand Down
Loading