Skip to content

Conversation

micpap25
Copy link
Contributor

@micpap25 micpap25 commented Aug 5, 2024

Works on #10747
Gives an error for gradeables at buildtime if the requested capability / image does not exist in the context of that gradeable.

image

image

To test, you can modify an existing config for a development course to either have a capability that does not exist or an image that does not exist and rebuild the gradeable for that course.

@micpap25 micpap25 changed the title [Feature:Instructor] Capability / image buildtime error [Feature:InstructorUI] Capability / image buildtime error Aug 5, 2024
@micpap25
Copy link
Contributor Author

micpap25 commented Aug 7, 2024

There is an issue with this PR, in that the erroring process calls exit(1) which cancels the entire build, which is normal and fine for single builds but bad for the batch build that is called when the site is being installed (as some gradeables are expected to fail). Barb says it's good to change the build code to not error when any individual gradeable build errors

@micpap25
Copy link
Contributor Author

micpap25 commented Aug 8, 2024

@powe97 should work, please review!

@github-actions github-actions bot added the Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete label Aug 23, 2024
@micpap25 micpap25 removed the Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete label Aug 30, 2024
@micpap25
Copy link
Contributor Author

micpap25 commented Sep 6, 2024

e2e testing needs at least 2 unused capabilities to work properly, so I added one to do so.

@micpap25 micpap25 requested a review from DarthNyan September 16, 2024 20:36
Copy link
Contributor

@DarthNyan DarthNyan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found this broke existing autograding examples, such as c_failure_messages and c_malloc_not_allowed. This occurred because "submitty/autograding-default:latest" is set as the default container when "container_image" is not specified, so any config running in jailed_sandbox mode on a machine lacking that image is expected to fail.

Probably good to discuss with Barb what the best fix is, as it will likely involve skipping this check for jailed_sandbox gradeables or editing a lot of existing examples.

I did confirm that it correctly failed to build when missing capabilities or images and correctly succeeded with a valid docker config.

@DarthNyan
Copy link
Contributor

Discussed with Barb. Best fix is to bypass the buildtime image check for non-docker gradables, but we still want to confirm capabilities exist.

@micpap25
Copy link
Contributor Author

I thought the current goal was to dockerize all configs. Is that incorrect?

@bmcutler
Copy link
Member

@micpap25

There are some cases of autograding that will run on the machine directly, outside of docker, in the jailed sandbox. E.g., graphics grading that uses the graphics card & display.

@DarthNyan is pointing out that we have a default value for the docker container, even though we default the use of docker to false. When use of docker is false, it doesn't make sense to check for the presence of the unused-for-this-gradeable, default docker container.

@github-actions github-actions bot added the Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete label Oct 17, 2024
Copy link

codecov bot commented Jun 13, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 20.83%. Comparing base (1c8b53b) to head (4578046).
Report is 2 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##               main   #10839   +/-   ##
=========================================
  Coverage     20.83%   20.83%           
  Complexity     9108     9108           
=========================================
  Files           259      259           
  Lines         34933    34933           
  Branches        459      459           
=========================================
  Hits           7277     7277           
  Misses        27201    27201           
  Partials        455      455           
Flag Coverage Δ
autograder 21.34% <ø> (ø)
js 2.13% <ø> (ø)
migrator 100.00% <ø> (ø)
php 19.52% <ø> (ø)
python_submitty_utils 80.08% <ø> (ø)
submitty_daemon_jobs 88.88% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Signed-off-by: Christopher Poon <christopherpoonc@gmail.com>
@bmcutler bmcutler requested a review from Chriun June 13, 2025 05:42
@automateprojectmangement automateprojectmangement bot moved this from Work in Progress to In Review in Submitty Development Jun 13, 2025
Copy link
Contributor

@Chriun Chriun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The functionality is good but it still does not pass integration checks. In addition the list of capabilities being checked does not encompass the entire list.

@github-project-automation github-project-automation bot moved this from In Review to Work in Progress in Submitty Development Jun 13, 2025
@Chriun Chriun force-pushed the capabilities-warning branch from 1de3eed to e1cda5d Compare June 17, 2025 19:55
@bmcutler bmcutler merged commit 060eafb into main Jun 20, 2025
24 checks passed
@bmcutler bmcutler deleted the capabilities-warning branch June 20, 2025 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Abandoned PR - Needs New Owner No activity on PR for more than 2 weeks -- seeking new owner to complete
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants