Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proforma: reuse existing files on import, if possible #2538

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

kkoehn
Copy link
Contributor

@kkoehn kkoehn commented Sep 18, 2024

Use xml_id_path to recreate proforma structure with tests and model_solutions containing multiple files

also sets xml_id_path for exported files, if it is not set. (similiar to uuid)

@kkoehn kkoehn self-assigned this Sep 18, 2024
Copy link

codecov bot commented Sep 18, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 69.40%. Comparing base (6250414) to head (a2d98c9).
Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2538      +/-   ##
==========================================
+ Coverage   69.28%   69.40%   +0.11%     
==========================================
  Files         210      210              
  Lines        6749     6775      +26     
==========================================
+ Hits         4676     4702      +26     
  Misses       2073     2073              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch 2 times, most recently from 218f9b9 to a7affb4 Compare September 23, 2024 20:53
@kkoehn kkoehn added enhancement ruby Pull requests that update Ruby code labels Sep 23, 2024
@kkoehn kkoehn requested a review from MrSerth September 23, 2024 21:13
@kkoehn kkoehn marked this pull request as ready for review September 23, 2024 21:13
MrSerth

This comment was marked as resolved.

@kkoehn
Copy link
Contributor Author

kkoehn commented Sep 24, 2024

While reviewing, I also got one extra question: Given the changes in CodeOcean to the XML Path ID and the updated metadata, would you recommend to reexport all exercises to CodeHarbor after merging this PR?

Yes that would absolutely make sense!

@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch from a7affb4 to 4d3198e Compare September 24, 2024 20:07
@MrSerth

This comment was marked as resolved.

@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch from 4d3198e to ac0fe42 Compare September 24, 2024 21:09
@kkoehn

This comment was marked as resolved.

@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch from 38f45b0 to 20a2705 Compare September 24, 2024 22:45
@kkoehn kkoehn requested a review from MrSerth September 24, 2024 22:47
@MrSerth

This comment was marked as resolved.

Copy link
Member

@MrSerth MrSerth left a comment

Choose a reason for hiding this comment

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

Nicely done, thank you! The current code changes look good and I've understand them.

Unfortunately, I still had issues verifying the code changes. Once again, I was using the already well-known file changes from here:

First of all, when the new version was in CodeHarbor and I tried uploading the old version, I got an exception there (the other direction from old to new works). Then, even when resolving this in CodeHarbor, I still couldn't import the old version in CodeOcean if the new version was stored already.

The error I got was: Validation failed: Files feedback message must be blank. The problematic file is:

#<CodeOcean::File id: 67823922, content: "# actual tests here (in functions)\r\nfrom z_helpers...", context_id: 1101, context_type: "Exercise", file_id: nil, file_type_id: 8, hidden: true, name: "p51test", read_only: true, created_at: "2024-09-25 19:28:50.331358000 +0000", updated_at: "2024-09-25 19:29:34.363568000 +0000", native_file: nil, role: "regular_file", hashed_content: "70721d58fcbac5c9570e63633e778d9c", feedback_message: "Feedback", weight: nil, path: nil, file_template_id: nil, hidden_feedback: false, xml_id_path: ["63332861"]>

Despite the listed issue, I also found an issue with the proglang method. Below is the fixed entry that also works if no execution_environment has been selected:

    def proglang
      regex = %r{^openhpi/co_execenv_(?<language>[^:]*):(?<version>[^-]*)(?>-.*)?$}
      match = regex.match @exercise&.execution_environment&.docker_image
      match ? {name: match[:language], version: match[:version]} : nil
    end

Could you include that, too, please (ideally with a test)?

app/services/proforma_service/convert_exercise_to_task.rb Outdated Show resolved Hide resolved
@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch 6 times, most recently from 708bb5d to ebef98c Compare October 8, 2024 19:30
@kkoehn

This comment was marked as resolved.

MrSerth

This comment was marked as resolved.

@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch 3 times, most recently from 0ad75ef to fefb056 Compare November 26, 2024 22:12
@kkoehn

This comment was marked as resolved.

MrSerth

This comment was marked as resolved.

@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch 2 times, most recently from d3e3727 to 7e9974e Compare December 4, 2024 20:44
MrSerth

This comment was marked as resolved.

Use xml_id_path to recreate proforma structure with tests and model_solutions containing multiple files
@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch from 7e9974e to c4a8dfe Compare January 7, 2025 19:58
@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch from c4a8dfe to ed1c88c Compare January 7, 2025 20:22
@kkoehn kkoehn force-pushed the proforma-reuse-existing-file-on-import branch from ed1c88c to a2d98c9 Compare January 7, 2025 21:40
Copy link
Member

@MrSerth MrSerth left a comment

Choose a reason for hiding this comment

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

To assist finishing this PR, I tested the changes locally and think they are fine domain-wise. Thanks again, Karol!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ruby Pull requests that update Ruby code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants