Skip to content

Development: Drop the unused result and build log order columns - #13571

Draft
krusche wants to merge 2 commits into
feature/programming/minimize-result-processing-datafrom
chore/programming/drop-unused-order-columns
Draft

Development: Drop the unused result and build log order columns#13571
krusche wants to merge 2 commits into
feature/programming/minimize-result-processing-datafrom
chore/programming/drop-unused-order-columns

Conversation

@krusche

@krusche krusche commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

Drops result.results_order and build_log_entry.build_log_entries_order. Neither column has a reader any more: the correction round moved onto the result and the build log entries are ordered by the timestamp they already carry.

Important

Do not merge before the release that contains #13570 has shipped. That PR stopped using both columns but deliberately left them in the database, so that rolling the application back to the previous version would still work. Dropping them in the same release would take that away. This is a draft until then.

It is also stacked on feature/programming/minimize-result-processing-data, so the base has to be switched to develop once #13570 is merged.

Motivation and Context

Follow-up cleanup for #13570. Both columns existed to let Hibernate maintain the position of an entry inside an @OrderColumn collection. Maintaining that position is what forced every write in those areas to go through a save of the whole submission, and saving a submission selects it together with its participation, its exercise and the exercise's course, because all three associations are eager. That is where most of the ~140 KB per build result came from.

Now that the position is not needed, the columns are only occupying space and inviting someone to rely on them again.

Description

One changelog with two changesets, each guarded by a columnExists precondition with onFail="MARK_RAN", so the migration is idempotent and does not fail on a database where the column is already gone.

No code changes: neither column is mapped or referenced anywhere.

Steps for Testing

Prerequisites:

  • 1 Instructor, 1 Student
  • 1 Programming Exercise on a server with the integrated lifecycle setup (LocalVC and LocalCI)
  1. Upgrade a server that already runs the release containing Development: Minimize data transfer when processing a build result #13570. The migration applies without error.
  2. As the student, push a passing commit and then one that does not compile. Both produce a result, the failing one is marked as build failed, and its build logs are readable and in chronological order.
  3. As a tutor, open the exercise for assessment and check that the result belongs to correction round 0.
  4. On an exam exercise with two correction rounds, assess both rounds and confirm each round shows its own result.

Server Tests

762 server tests were run locally with both columns dropped, across the result-processing, assessment, submission-policy, localci and participation suites. Since the test schema is built by Liquibase, this exercises the drop itself: if anything still expected either column, these would fail.

Review Progress

Code Review

  • Code Review 1
  • Code Review 2

Checklist

General

Server

Changes affecting Programming Exercises

  • High priority: I tested all changes and their related features with all corresponding user types on a test server configured with the integrated lifecycle setup (LocalVC and LocalCI).

@github-project-automation github-project-automation Bot moved this to Work In Progress in Artemis Development Aug 25, 2026
@github-actions github-actions Bot added the database Pull requests that update the database. (Added Automatically!). Require a CRITICAL deployment. label Aug 25, 2026
@krusche
krusche temporarily deployed to playwright-e2e-tests August 25, 2026 18:47 — with GitHub Actions Inactive
@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

End-to-End Test Results

Phase Status Details
All Tests ❌ Failed
TestsPassed ☑️Skipped ⚠️Failed ❌️Time ⏱
All E2E Tests Report (PR)376 ran367 passed8 skipped1 failed37m 20s
❌ Failed Tests
  • Exam assessment › Modeling exercise assessment › Instructor makes a second round of assessment (6m 11s)

Test Strategy: Running all tests (configuration or infrastructure changes detected)

Overall: ❌ E2E: real (non-flaky) test failure

🔗 Workflow Run · 📊 Test Report

@krusche
krusche force-pushed the chore/programming/drop-unused-order-columns branch from 9ded330 to e3fa125 Compare August 25, 2026 21:43
@krusche
krusche had a problem deploying to playwright-e2e-tests August 25, 2026 22:06 — with GitHub Actions Error
@krusche
krusche force-pushed the chore/programming/drop-unused-order-columns branch from e3fa125 to 55bc326 Compare August 25, 2026 22:20
@krusche
krusche had a problem deploying to playwright-e2e-tests August 25, 2026 22:27 — with GitHub Actions Error
result.results_order and build_log_entry.build_log_entries_order no longer have
a reader. The correction round moved onto the result and the build log entries
are ordered by the timestamp they already carry, so neither column is mapped.

They were deliberately kept at the time so that rolling the application back
would still work. This drops them one release later, guarded by a column-exists
precondition so it is idempotent.
@krusche
krusche force-pushed the chore/programming/drop-unused-order-columns branch from 55bc326 to c1aff01 Compare August 25, 2026 23:15
@krusche
krusche temporarily deployed to playwright-e2e-tests August 25, 2026 23:24 — with GitHub Actions Inactive
…to chore/programming/drop-unused-order-columns
@krusche
krusche temporarily deployed to playwright-e2e-tests August 26, 2026 07:40 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

database Pull requests that update the database. (Added Automatically!). Require a CRITICAL deployment. ready for review

Projects

Status: Work In Progress

Development

Successfully merging this pull request may close these issues.

1 participant