-
Notifications
You must be signed in to change notification settings - Fork 72
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
Fix TypeError during JSON serialization in dialogs #760
Conversation
Thank you for contributing to the Leapp project!Please note that every PR needs to comply with the Leapp Guidelines and must pass all tests in order to be mergable.
Please open ticket in case you experience technical problem with the CI. (RH internal only) Note: In case there are problems with tests not being triggered automatically on new PR/commit or pending for a long time, please consider rerunning the CI by commenting leapp-ci build (might require several comments). If the problem persists, contact leapp-infra. |
Can one of the admins verify this patch? |
Hmm I see now that though this solves a general case, this doesn't fix the issue with the following configuration
The failure happens elsewhere, looking |
2d76f40
to
d4a36ae
Compare
d4a36ae
to
4daab41
Compare
/rerun |
4daab41
to
348a9dd
Compare
/rerun |
Copr build succeeded: https://copr.fedorainfracloud.org/coprs/build/3554498 |
Testing Farm request for 7to8/3544828,3554498 regression testing has been created. Once finished, results should be available here. |
Testing Farm request for 8to9/3544828,3554498 regression testing has been created. Once finished, results should be available here. |
Previously a DictProxy entry was passed as part of {dialog_section: entry} data to save in answerstore which failed during serialization. This commit fixes AnswerStore.get() method by making it always return a shallow copy of a DictProxy object. Also remove all dict() conversions for store.get() calls in dialog module.
348a9dd
to
b372991
Compare
/rerun |
Copr build succeeded: https://copr.fedorainfracloud.org/coprs/build/3554614 |
Testing Farm request for 7to8/3544828,3554614 regression testing has been created. Once finished, results should be available here. |
Testing Farm request for 8to9/3544828,3554614 regression testing has been created. Once finished, results should be available here. |
Copr build succeeded: https://copr.fedorainfracloud.org/coprs/build/3554581 |
Testing Farm request for 7to8/3544828,3554581 regression testing has been created. Once finished, results should be available here. |
Testing Farm request for 8to9/3544828,3554581 regression testing has been created. Once finished, results should be available here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
works good except the problem mentioned above. but that's a different issue already present probably for a longer time. We do not expect people to remove the key = value
line from the ansewrfile, keeping the section defined. This solution fixes the general problem.
@fernflower bumped leapp-framework = 2.2
so we could start to require it in leapp-upgrade packages to ommit possible issues when people could test leapp-upgrade builds with dialogs but older leapp builds. Feel free to squash it directly into the one commit (i didn't want to touch the orig one as tests are running for it already).
@pirat89 what do you mean by "except the problem mentioned above"? If you are referring to my comment #760 (comment) then it is obsolete, the current version of the patch resolves this issue as well. Serialization problems should be solved in all cases now. |
@fernflower I have still some problems regarding that (tried manually, when the answer in the answerfile is not present but the section exists, the answer is not loaded from the userchoices file) |
merging after the discussion. the issue mentioned above will be fixed in another PR as it's a different problem. |
## Packaging - Add depency on `python3` for el8+ (`python3` refers to the distribution python) - Bump `leapp-framework` to 2.2 - Bump `leapp-framework-dependencies` to 6 - Doc: --report-schema in manpage (oamg#686) ## Framework ### Fixes - Fix issues with initialisation of loggers (oamg#764) - Fix TypeError during JSON serialization in dialogs on Python3 (oamg#760) - Prevent breaking the answerfile when dialog fields contain newlines (oamg#757) - Check answerfile upon loading (oamg#759) - Fix the multiprocessing on Python 3.9 on Mac OS ### Enhancements - Dialogs: print the reason field for question in the answerfile (oamg#762) - Added possibility to specify the report format version (oamg#686) ## stdlib ### Enhancements - Introduced `stdlib.path` library `get_common_*_path` functions for the scanning repositories, actors, etc. paths outside of the actor execution (oamg#742)
## Packaging - Add depency on `python3` for el8+ (`python3` refers to the distribution python) - Bump `leapp-framework` to 2.2 - Bump `leapp-framework-dependencies` to 6 - Doc: --report-schema in manpage (oamg#686) ## Framework ### Fixes - Fix issues with initialisation of loggers (oamg#764) - Fix TypeError during JSON serialization in dialogs on Python3 (oamg#760) - Prevent breaking the answerfile when dialog fields contain newlines (oamg#757) - Check answerfile upon loading (oamg#759) - Fix the multiprocessing on Python 3.9 on Mac OS ### Enhancements - Dialogs: print the reason field for question in the answerfile (oamg#762) - Added possibility to specify the report format version (oamg#686) ## stdlib ### Enhancements - Introduced `stdlib.path` library `get_common_*_path` functions for the scanning repositories, actors, etc. paths outside of the actor execution (oamg#742)
## Packaging - Add depency on `python3` for el8+ (`python3` refers to the distribution python) - Bump `leapp-framework` to 2.2 - Bump `leapp-framework-dependencies` to 6 - Doc: --report-schema in manpage (oamg#686) ## Framework ### Fixes - Fix issues with initialisation of loggers (oamg#764) - Fix TypeError during JSON serialization in dialogs on Python3 (oamg#760) - Prevent breaking the answerfile when dialog fields contain newlines (oamg#757) - Check answerfile upon loading (oamg#759) - Fix the multiprocessing on Python 3.9 on Mac OS ### Enhancements - Dialogs: print the reason field for question in the answerfile (oamg#762) - Added possibility to specify the report format version (oamg#686) ## stdlib ### Enhancements - Introduced `stdlib.path` library `get_common_*_path` functions for the scanning repositories, actors, etc. paths outside of the actor execution (oamg#742)
## Packaging - Add depency on `python3` for el8+ (`python3` refers to the distribution python) - Bump `leapp-framework` to 2.2 - Bump `leapp-framework-dependencies` to 6 - Doc: --report-schema in manpage (#686) ## Framework ### Fixes - Fix issues with initialisation of loggers (#764) - Fix TypeError during JSON serialization in dialogs on Python3 (#760) - Prevent breaking the answerfile when dialog fields contain newlines (#757) - Check answerfile upon loading (#759) - Fix the multiprocessing on Python 3.9 on Mac OS ### Enhancements - Dialogs: print the reason field for question in the answerfile (#762) - Added possibility to specify the report format version (#686) ## stdlib ### Enhancements - Introduced `stdlib.path` library `get_common_*_path` functions for the scanning repositories, actors, etc. paths outside of the actor execution (#742)
Previously a DictProxy entry was passed as part of
{dialog_section: entry} data to save in store which
failed during serialization.