wwkimball / yamlpath

YAML/JSON/EYAML/Compatible get/set/merge/validate/scan/convert/diff processors using powerful, intuitive, command-line friendly syntax.
https://github.com/wwkimball/yamlpath/wiki
ISC License
120 stars 23 forks source link

yamlpath and ruamel yaml version lockin causing problems #217

Open jimkohl opened 1 year ago

jimkohl commented 1 year ago

Summary

If I pin yamlpath to latest version 3.8.0 alongside ruamel.yaml 0.17.32 I get yamlpath 3.7.0 depends on ruamel.yaml!=0.17.18, <=0.17.21 and >0.17.5

This has been this way for sometime now - any updates as to when next version of yamlpath will be compat w latest ruamel.yaml? Reason this is important is that there is a bug in older version or ruamel.yaml related to processing dates which causes unexpected exceptions.

The workaround is to pin ruamel yaml to latest and unpin yamlpath version and let pip figure things out. However this is clunky if you need to pin versions.

Version of Python and packages in use at the time of the issue.

  1. Distribution:
  2. Python Version: 3.10
  3. Version of yamlpath installed: latest 3.8.0
  4. Version of ruamel.yaml installed: latest 0.17.32
wwkimball commented 1 year ago

I keep yamlpath in a production-quality state for every release because I actively use it in production every day, myself. Anthon's availability to work on ruamel.yaml waxes and wanes. When he can work on it, he'll rapid-fire a whole bunch of alpha/beta/hotfix releases in short order. Then, there will be a long period of no updates. I watch for these cooldowns and then start my own upgrade process with a discrete evaluation of every ruamel.yaml release since my last release.

At this time, it is still too soon since Anthon's latest release of ruamel.yaml. He's still working on all the fallout since refactoring how he internally handles YAML Tags along with some side-effects of other bugs he's fixed. I just ran some preliminary tests and I have found that all versions of ruamel.yaml after 0.17.21 are not compatible with yamlpath, especially after 0.17.28. There are a LOT of errors. Further, I will need to refactor all of my own YAML Tag handling code to match changes ruamel.yaml has made to its YAML Tag API. I'll of course refactor as necessary, but only once ruamel.yaml has reached a stable release stage.

wwkimball commented 1 year ago

Please submit a test case which demonstrates the date-handling bug you are experiencing. If there's anything I can do with the last stable version of ruamel.yaml via yamlpath, I'd like to try. While I won't be upgrading to the latest ruamel.yaml until it is stable, I don't want to leave you without a solution, if I can help.