Hide Forgot
Description of problem: I am working on a dependency checker for taskbot, the replacement for AutoQA. When libsolv's version changed, python-solv broke. Version-Release number of selected component (if applicable): 0.3.0 How reproducible: Always Actual results: Traceback (most recent call last): File "./depcheck.py", line 158, in <module> parse_repos(args.rpm, args.arch, 'fedora') File "./depcheck.py", line 116, in parse_repos jobs.append(armv7hl.Job(solv.Job.SOLVER_INSTALL|solv.Job.SOLVER_SOLVABLE, solvable)) File "/usr/lib64/python2.7/site-packages/solv.py", line 748, in Job def Job(self, *args): return _solv.Pool_Job(self, *args) TypeError: in method 'Pool_Job', argument 3 of type 'Id' Expected results: Dependency solving goodness
Hi John, thank you for the report. I don't see we package 'depcheck.py' in python-solv, please reopen this if we do. The libsolv upstream does not guarantee API compatibility between patchlevels and even less so between minor versions. I'm afraid there is not much I can do here, except to hope that the API will be more stable from now on (and from what I see in the libsolv upstream I have a reason to believe that).
depcheck is the project I'm working on; it would be kind of cool if at least the docs would be fixed to reflect the changes.
(In reply to Ales Kozumplik from comment #1) > Hi John, thank you for the report. I don't see we package 'depcheck.py' in > python-solv, please reopen this if we do. The libsolv upstream does not > guarantee API compatibility between patchlevels and even less so between > minor versions. I'm afraid there is not much I can do here, except to hope > that the API will be more stable from now on (and from what I see in the > libsolv upstream I have a reason to believe that). Do you reckon you could give me some docs on the new API? What I'm looking at is no different than what I used for the old API.
there's some documentation in the upstream checkout[1], and libsolv-devel[2] packcages the man files. [1] https://github.com/openSUSE/libsolv/tree/master/doc [2] http://koji.fedoraproject.org/koji/rpminfo?rpmID=4399657
I try very hard to keep the API stable. In your case, the Job() constructor API has not changed, but I changed the add_rpm() method to return a solvable object instead of a solvable id. Returning the object makes much more sense and is consistent with the add_solvable() method. So you can probably fix your code by changing the code to: jobs.append(armv7hl.Job(solv.Job.SOLVER_INSTALL|solv.Job.SOLVER_SOLVABLE, solvable.id)) i.e. solvable.id instead of solvable.