Repository navigation
feat(gdpval): run LibreOffice through a configurable command - #4586
Merged
Merged
Conversation
This was referenced Oct 14, 2026
marta-sd
force-pushed
the
martas/gdpval-decoupling
branch
from
October 14, 2026 08:34
fd1cb9e to
53c4a64
Compare
athitten
force-pushed
the
athitten/gdpval-libreoffice-command
branch
from
October 15, 2026 01:44
aece9de to
21cd046
Compare
7 tasks done
athitten
force-pushed
the
athitten/gdpval-libreoffice-command
branch
2 times, most recently
from
October 20, 2026 10:25
430af36 to
54b51a1
Compare
Contributor
Author
|
/ok to test 54b51a1 |
Contributor
|
🌿 Preview your docs: https://nvidia-preview-pr-4586-24481c868eec.docs.buildwithfern.com/nemo/gym |
athitten
marked this pull request as ready for review
October 20, 2026 10:49
marta-sd
reviewed
Oct 22, 2026
Contributor
Author
|
/ok to test 24481c8 |
Signed-off-by: Abhishree <athittenaman@nvidia.com>
…r use Signed-off-by: Abhishree <athittenaman@nvidia.com>
Signed-off-by: Abhishree <athittenaman@nvidia.com>
Signed-off-by: Abhishree <athittenaman@nvidia.com>
athitten
force-pushed
the
athitten/gdpval-libreoffice-command
branch
from
October 26, 2026 04:17
24481c8 to
555f0d1
Compare
Contributor
Author
|
/ok to test 555f0d1 |
Signed-off-by: Abhishree <athittenaman@nvidia.com>
Contributor
Author
|
/ok to test 8a436ec |
marta-sd
approved these changes
Oct 26, 2026
Contributor
|
🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA-NeMo/Gym/actions/runs/40354884270 |
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds a
libreoffice_commandsetting to the GDPVal resources server: a command (for example a container prefix) that runs LibreOffice for Office-to-PDF conversion instead of a hostlibreoffice. It is for clusters where the judge host has no LibreOffice and cannotapt-get installit:--versionand converts a probe workbook (with a formula and a chart) in the temp directory and in temp directories underpersist_deliverables_dirand each referencedeliverables_dir. Startup fails with an error naming the command if--versionor a probe conversion fails, if a referencedeliverables_dirdoes not exist, or if the command leaves files that the server cannot delete (for example, rootful Docker without--user). The warning suggests--useronly when the leftover files belong to a different user than the server's. A reference dir that the server cannot write is skipped and logged: nothing can be converted there.libreoffice, its arguments and theensure_libreoffice()install steps are unchanged, except that the same probe conversion now also runs before skipping apt and after an install. Two small fixes apply either way: output that is not valid UTF-8 no longer fails a conversion or the startup check, and conversion failure messages show the end of LibreOffice's error output, where the real error is, instead of the start.dockerclient, so the example also sets a time limit inside the container.Ported from athitten#2, which built on yaoyu-33#8, and adapted to #4178 (now merged):
file_reader.pynow lives inresources_servers/gdpval/;persist_deliverables_dir.Related: #3550 renders Office files in a separate preparation step before judging. This PR lets the judge server run LibreOffice itself, through the configured command.
No issue: this is a small opt-in setting that we needed to score #4589 and #4591 on a cluster without LibreOffice on the judge host.
Validation
pytest resources_servers/gdpval/testswith the server'srequirements.txtinstalled: main (49ffb81) 870 passed; this branch, rebased onto it, 893 passed (23 new tests); 1 skipped on both (a Stirrup-only check).cryptographywas installed withuv pip install --no-config. The rootpyproject.tomlexcludes it, and without it 3 PDF tests skip.--user./verifysent the judge 6 PDFs rendered by the container (docx, xlsx with a chart, pptx; eval and reference). Rubric/verifybuilt 3 PDF blocks with no text fallback.pre-commit run --all-files: passed.Rollouts
N/A for generation: the setting only changes how the judge's inputs are converted. The scoring runs above use it.
Compatibility and benchmark impact
persist_deliverables_diror under a writable reference dir, if a reference dir is missing, or if it leaves files that the server cannot delete.libreofficewhose probe conversion fails no longer skips the apt install, and fails the startup check in comparison mode.Checklist
pre-commit run --all-files) (so CI lint/format checks pass).git commit -s) (so the DCO check passes).