-
Notifications
You must be signed in to change notification settings - Fork 2
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
jqlang release v1.7 breaks packtivity #96
Comments
cc @kratsg in the event that similar things hit any of your libraries. |
* Place an upper limit on jq of '<1.6.0' as jq (the Python library) v1.6.x+ are compatible with jq (the language) v1.7+ and packtivity is currently compatible with jq (the language) v1.6. - This should be viewed as a temporary stopgap measure to avoid large yadage ecosystem breakage and should be reverted as soon as a workaround is found. - c.f. #96
what actually breaks? |
Here's an example failure for packtivity/tests/test_asyncbackends.py Lines 9 to 20 in 69aadb9
=================================== FAILURES ===================================
________________________________ test_multiproc ________________________________
tmpdir = local('/tmp/pytest-of-runner/pytest-0/test_multiproc0')
basic_localfs_state = <LocalFSState rw: ['/tmp/pytest-of-runner/pytest-0/test_multiproc0'], ro: []>
localproc_packspec = {'environment': {'environment_type': 'localproc-env'}, 'process': {'cmd': 'echo Hello World > {outputfile}', 'process_type': 'string-interpolated-cmd'}, 'publisher': {'outputmap': {'output': 'outputfile'}, 'publisher_type': 'frompar-pub'}}
def test_multiproc(tmpdir, basic_localfs_state, localproc_packspec):
basic_localfs_state.ensure()
pars = pdm.create({"outputfile": "{workdir}/helloworld.txt"})
backend = MultiProcBackend(2)
proxy = backend.submit(localproc_packspec, pars, basic_localfs_state)
while not backend.ready(proxy):
pass
> assert backend.successful(proxy)
E assert False
E + where False = <bound method MultiProcBackend.successful of <packtivity.asyncbackends.MultiProcBackend object at 0x7f68c3a[77](https://github.com/yadage/packtivity/actions/runs/6211558623/job/16860874815#step:6:78)160>>(<packtivity.asyncbackends.PacktivityProxyBase object at 0x7f68c3a1b4c0>)
E + where <bound method MultiProcBackend.successful of <packtivity.asyncbackends.MultiProcBackend object at 0x7f68c3a77160>> = <packtivity.asyncbackends.MultiProcBackend object at 0x7f68c3a77160>.successful
tests/test_asyncbackends.py:16: AssertionError
----------------------------- Captured stderr call -----------------------------
2023-09-17 04:27:26,0[86](https://github.com/yadage/packtivity/actions/runs/6211558623/job/16860874815#step:6:87) | pack.packtivity.step | INFO | starting file logging for topic: step
_________________________________ test_maincli _________________________________
tmpdir = local('/tmp/pytest-of-runner/pytest-0/test_maincli0')
def test_maincli(tmpdir):
runner = CliRunner()
result = runner.invoke(
packtivity.cli.runcli,
[
"tests/testspecs/localtouchfile.yml",
"-p",
'outputfile="{workdir}/hello.txt"',
"-w",
str(tmpdir),
],
)
> assert result.exit_code == 0
E AssertionError: assert 1 == 0
E + where 1 = <Result ValueError('jq: error: leaf_paths/0 is not defined at <top-level>, line 1:\nleaf_paths\njq: 1 compile error')>.exit_code This kind of
is happening everywhere. |
I think it might be something like jqlang/jq#38 (comment) |
Ah, this would do it from https://github.com/jqlang/jq/releases/tag/jq-1.7:
given that |
Closing as resolved with https://github.com/yadage/packtivity/releases/tag/v0.16.2 |
jq
(the language) had its first release in 5 years withjq
v1.7
, which includes some breaking changes.jq
the Python library added support forjqlang
v1.7
injq
v1.6.0
and sov1.6.0
is also a breaking change forpacktivity
.Action plan
packtivity/setup.py
Line 14 in fdeab4b
of
<1.6.0
packtivity
v0.16.1
with this cap in it.jq
cappedpacktivity
will get picked up by theyadage
ecosystem and subsequently keep other breaks from happeningpacktivity
to work with bothjqlang
v1.7
and before.packtivity
v0.16.2
that adds this support and removes the cap.packtivity
v0.16.1
from PyPI.The text was updated successfully, but these errors were encountered: