Skip to content

Yaml parser (New)#2383

Merged
Hook25 merged 38 commits into
mainfrom
yaml_parser
Mar 26, 2026
Merged

Yaml parser (New)#2383
Hook25 merged 38 commits into
mainfrom
yaml_parser

Conversation

@Hook25

@Hook25 Hook25 commented Mar 12, 2026

Copy link
Copy Markdown
Collaborator

Description

PXUs are a very outdated and weird format that scares off new contributors and makes the friction to contribute to Checkbox higher.

This PR introduces a new supported format: YAML

To begin with this transition, this translates all the pxus in Checkbox (plainbox provider) + all the pxus in metabox. The translation of the rest of the providers will be done and tested gradually in followup PRs.

Resolved issues

Fixes: CHECKBOX-1392

Documentation

N/A (Pending)

Tests

Unit + integration tested most of the additions

@Hook25 Hook25 marked this pull request as draft March 12, 2026 14:50
@codecov

codecov Bot commented Mar 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.25869% with 33 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.21%. Comparing base (4f622b8) to head (4123b9a).
⚠️ Report is 118 commits behind head on main.

Files with missing lines Patch % Lines
checkbox-ng/plainbox/impl/secure/providers/v1.py 78.26% 11 Missing and 4 partials ⚠️
checkbox-ng/plainbox/impl/unit/testplan.py 71.42% 5 Missing and 3 partials ⚠️
checkbox-ng/plainbox/impl/session/state.py 81.81% 2 Missing and 2 partials ⚠️
checkbox-ng/plainbox/impl/unit/__init__.py 93.54% 1 Missing and 1 partial ⚠️
checkbox-ng/plainbox/impl/unit/job.py 86.66% 1 Missing and 1 partial ⚠️
checkbox-ng/plainbox/impl/xparsers.py 86.66% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2383      +/-   ##
==========================================
- Coverage   58.19%   57.21%   -0.99%     
==========================================
  Files         475      324     -151     
  Lines       47819    38931    -8888     
  Branches     8509     7126    -1383     
==========================================
- Hits        27828    22273    -5555     
+ Misses      19106    15898    -3208     
+ Partials      885      760     -125     
Flag Coverage Δ
checkbox-ng 75.98% <87.25%> (+0.10%) ⬆️
checkbox-support ?
contrib-provider-ce-oem ?
provider-base 32.63% <ø> (ø)
provider-certification-client ?
provider-certification-server ?
provider-dss ?
provider-genio ?
provider-gfx ?
provider-gpgpu ?
provider-iiotg ?
provider-resource ?
provider-sru ?
release-tools ?

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

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Hook25 Hook25 force-pushed the yaml_parser branch 6 times, most recently from ecceb91 to 8717e89 Compare March 19, 2026 15:19
@Hook25 Hook25 marked this pull request as ready for review March 19, 2026 16:00

@fernando79513 fernando79513 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Great job!
If at some point we want to hard deprecate the .pxu files and clean the code, it's not going to be a super easy task, but at least all the markers you are putting for the comments will help.
Thanks for also taking care of handling properly the suspend flags, and especially the get_array_field_qualify and all the Visitors.
I run the smoke tests from the yaml and they passed no problem.
Let's see if the translated metabox tests also pass in the CI.

Comment thread checkbox-ng/plainbox/impl/providers/manifest/units/manifest.yaml Outdated
Comment thread checkbox-ng/plainbox/impl/providers/manifest/units/manifest.yaml Outdated
Comment thread checkbox-ng/plainbox/impl/providers/manifest/units/manifest.yaml
Comment thread metabox/metabox/metabox-provider/units/basic-jobs.yaml
Comment thread metabox/metabox/metabox-provider/units/ordering.yaml Outdated
Comment thread metabox/metabox/metabox-provider/units/setup_include.yaml
Comment thread metabox/metabox/metabox-provider/units/setup_include.yaml Outdated
Comment thread metabox/metabox/scenarios/packaging/packaging.yaml
Comment thread providers/base/units/smoke/jobs.yaml Outdated
Comment thread checkbox-ng/plainbox/impl/secure/providers/test_v1.py
@fernando79513

Copy link
Copy Markdown
Collaborator

I manually ran some YAML jobs and test/plans, and they worked fine. I think any other issues that may have slipped through should be raised during metabox tests.
I didn't find any flaw in the actual implementation either.

@pieqq pieqq left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Huge undertaking, good job on this!

I spotted one weird thing with some function names, and I left a few comments.

Comment thread checkbox-ng/plainbox/impl/providers/manifest/units/manifest.yaml
Comment thread checkbox-ng/plainbox/impl/secure/providers/v1.py Outdated
Comment thread checkbox-ng/plainbox/impl/secure/providers/v1.py
Comment thread checkbox-ng/plainbox/impl/secure/providers/v1.py
Comment thread checkbox-ng/plainbox/impl/unit/exporter.py Outdated
@Hook25 Hook25 merged commit ca65c38 into main Mar 26, 2026
113 of 115 checks passed
@Hook25 Hook25 deleted the yaml_parser branch March 26, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants