Bug 2214430
| Summary: | Build python-openapi for f37 | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | rj.layco |
| Component: | python-openapi-core | Assignee: | Ben Beasley <code> |
| Status: | CLOSED ERRATA | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 37 | CC: | code, mattia.verga |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | noarch | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | python-openapi-core-0.17.1-2.fc37 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-07-09 00:38:53 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
rj.layco
2023-06-13 00:57:40 UTC
Unfortunately, this would require quite a few required packages to be properly patched to have them built in f37. I currently don't have free time to do that and neither to investigate if it is even possible. I'll leave this ticket open in case I found the time in future, or if @music wants to try. I gave it a quick shot locally:
- Build python-pathable for F37 (no changes from Rawhide)
- Build python-jsonschema-spec for F37 (edit patch that allows requests 2.28.2 to also allow 2.28.1)
- Build python-openapi-spec-validator for F37 (branch from b1280cc, packaging version 0.5.4)
At this point, one test failed for python-openapi-spec-validator:
=================================== FAILURES ===================================
__ TestSpecValidatorIterErrors.test_parameter_custom_format_checker_not_found __
self = <test_exceptions.TestSpecValidatorIterErrors object at 0x7fb154db0ed0>
validator_v30 = <Proxy at 0x7fb155152a80 wrapping <openapi_spec_validator.validation.validators.SpecValidator object at 0x7fb1552aae50...sHandler object at 0x7fb155b7d8d0>, 'file': <jsonschema_spec.handlers.urllib.UrllibHandler object at 0x7fb155b7d150>})>
def test_parameter_custom_format_checker_not_found(self, validator_v30):
spec = {
"openapi": "3.0.0",
"info": {
"title": "Test Api",
"version": "0.0.1",
},
"paths": {
"/test/": {
"get": {
"responses": {
"default": {
"description": "default response",
},
},
"parameters": [
{
"name": "param1",
"in": "query",
"schema": {
"type": "string",
"format": "custom",
"default": "customvalue",
},
},
],
},
},
},
}
errors = validator_v30.iter_errors(spec)
errors_list = list(errors)
> assert errors_list == []
E assert [<OpenAPIVali...t not found">] == []
E Left contains one more item: <OpenAPIValidationError: "Format checker for 'custom' format not found">
E Full diff:
E - []
E + [<OpenAPIValidationError: "Format checker for 'custom' format not found">]
errors = <generator object SpecValidator.iter_errors at 0x7fb154e75640>
errors_list = [<OpenAPIValidationError: "Format checker for 'custom' format not found">]
self = <test_exceptions.TestSpecValidatorIterErrors object at 0x7fb154db0ed0>
spec = {'info': {'title': 'Test Api', 'version': '0.0.1'}, 'openapi': '3.0.0', 'paths': {'/test/': {'get': {'parameters': [{'in': 'query', 'name': 'param1', 'schema': {...}}], 'responses': {'default': {'description': 'default response'}}}}}}
validator_v30 = <Proxy at 0x7fb155152a80 wrapping <openapi_spec_validator.validation.validators.SpecValidator object at 0x7fb1552aae50...sHandler object at 0x7fb155b7d8d0>, 'file': <jsonschema_spec.handlers.urllib.UrllibHandler object at 0x7fb155b7d150>})>
tests/integration/validation/test_exceptions.py:457: AssertionError
- generated xml file: /builddir/build/BUILD/openapi-spec-validator-0.5.4/reports/junit.xml -
=========================== short test summary info ============================
FAILED tests/integration/validation/test_exceptions.py::TestSpecValidatorIterErrors::test_parameter_custom_format_checker_not_found
Unfortunately, these libraries are somewhat tightly coupled, and the assumptions they make about each other are not reliably reflected in dependency versioning.
I tried again:
- Update python-openapi-schema-validator in F37 from 0.4.1 to 0.4.3, which involves a small backward incompatibility (Missing format checker for format no longer raise FormatError).
- Build python-openapi-spec-validator (this time branching from Rawhide, and patching out the tool.poetry.group.docs.dependencies section from pyproject.toml to work with older poetry-core)
- Build python-openapi-core (also branching from Rawhide, and patching out the tool.poetry.group.docs.dependencies section from pyproject.toml to work with older poetry-core)
This worked.
So there is a pretty straightforward path to supporting F37, as long as we accept updating python-openapi-schema-validator, which is a leaf package in F37. Technically, that should require an updates policy exception approved by FESCo (https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#_exceptions) since there is a small breaking change. There might be an alternative path that involves juggling versions until everything agrees, but I’m not interested in searching for it.
I have created a ticket to get an exception https://pagure.io/fesco/issue/3015 I opened side tag f37-build-side-69468 for this. Here’s the plan and status: - python-pathable is now already in F37 (thanks, Mattia!) - python-jsonschema-spec: Mattia, please request an F37 branch and build in the side tag: https://src.fedoraproject.org/rpms/python-jsonschema-spec/pull-request/3 - python-openapi-schema-validator: exception approved by FESCo, built in side tag: https://koji.fedoraproject.org/koji/taskinfo?taskID=102762529 - python-openapi-spec-validator: TODO, I should be able to do this as a co-maintainer once python-jsonschema-spec is in the side tag - python-openapi-core: TODO, I should be able to do this as a co-maintainer once everything else is in the side tag - Bodhi update: TODO (me) (In reply to Ben Beasley from comment #4) > I opened side tag f37-build-side-69468 for this. Here’s the plan and status: > > - python-pathable is now already in F37 (thanks, Mattia!) > - python-jsonschema-spec: Mattia, please request an F37 branch and build in > the side tag: > https://src.fedoraproject.org/rpms/python-jsonschema-spec/pull-request/3 Done: https://koji.fedoraproject.org/koji/taskinfo?taskID=102781499 > - python-openapi-schema-validator: exception approved by FESCo, built in > side tag: https://koji.fedoraproject.org/koji/taskinfo?taskID=102762529 > - python-openapi-spec-validator: TODO, I should be able to do this as a > co-maintainer once python-jsonschema-spec is in the side tag Branch f37 requested > - python-openapi-core: TODO, I should be able to do this as a co-maintainer > once everything else is in the side tag Branch f37 requested > - Bodhi update: TODO (me) Thanks: Building python-openapi-spec-validator in the side tag: https://koji.fedoraproject.org/koji/taskinfo?taskID=102782547 FEDORA-2023-e80302ad43 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2023-e80302ad43 FEDORA-2023-e80302ad43 has been pushed to the Fedora 37 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-e80302ad43 \*` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-e80302ad43 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. FEDORA-2023-e80302ad43 has been pushed to the Fedora 37 stable repository. If problem still persists, please make note of it in this bug report. |