#203 replace depcheck with rpmdeplint
Closed: Fixed None Opened 7 years ago by kparal.

Replace depcheck with rpmdeplint (because then it's one less codebase we need to worry about).


This ticket had assigned some Differential requests:
D1008

I'm working on a script to compare depcheck and rpmdeplint results.

I went through all (sigh!) rpmdeplint and depcheck results in dev in between Jan 20 and Jan 31 ([[ https://pagure.io/fedora-qa/qa-misc/blob/master/f/fetch-resultsdb-results.py | script used ]]). All the differences I found seem to be related to this ticket. So rpmdeplint seems to be working fine (or at least as good as depcheck does) and there should be no problem deploying it to production, and eventually replacing depcheck with it.

Before deploying to production, we should discuss the name conventions. Do we want to keep dist.rpmdeplint? Or do we want to sneakily run rpmdeplint, but keep dist.depcheck? That would not require any changes in third-party tools (like Bodhi). Also, please note that in the future we're likely to run repoclosure feature from rpmdeplint (probably as a separate testcase name). So we can have:

dist.rpmdeplint
dist.repoclosure

or

dist.rpmdeplint
dist.rpmdeplint.repoclosure

or

dist.rpmdeplint.sat
dist.rpmdeplint.repoclosure

or

dist.depcheck
dist.repoclosure

Thoughts? Bikeshedding time!

! In #878#12808, @kparal wrote:
I went through all (sigh!) rpmdeplint and depcheck results in dev in between Jan 20 and Jan 31 ([[ https://pagure.io/fedora-qa/qa-misc/blob/master/f/fetch-resultsdb-results.py | script used ]]). All the differences I found seem to be related to this ticket. So rpmdeplint seems to be working fine (or at least as good as depcheck does) and there should be no problem deploying it to production, and eventually replacing depcheck with it.

Before deploying to production, we should discuss the name conventions. Do we want to keep dist.rpmdeplint? Or do we want to sneakily run rpmdeplint, but keep dist.depcheck? That would not require any changes in third-party tools (like Bodhi). Also, please note that in the future we're likely to run repoclosure feature from rpmdeplint (probably as a separate testcase name). So we can have:
dist.rpmdeplint dist.repoclosure
or
dist.rpmdeplint dist.rpmdeplint.repoclosure
or
dist.rpmdeplint.sat dist.rpmdeplint.repoclosure
or
dist.depcheck dist.repoclosure
Thoughts? Bikeshedding time!

I am kind of on a fence here. While it would be nice to sneakily replace rpmdeplint with depcheck, keep dist.depcheck and not require any changes in bodhi etc., I think it's confusing for users. And I think it would be better to establish by naming the check rpmdeplint that we don't maintain it; on the other hand I am sure it won't prevent people from coming to us first with problems anyway...

For me these make most sense:

dist.rpmdeplint.sat
dist.rpmdeplint.repoclosure

Because, really, this is what it is and it has the same semantics as rpmgrill does now.

I don't have strong feelings about this though, the last two could both work for me.

So, here's my most awesome proposal - let's use this for now:

dist.rpmdeplint

Once we also start checking repoclosure with it, we can extend it to

dist.rpmdeplint
dist.rpmdeplint.sat
dist.rpmdeplint.repoclosure

Which means dist.rpmdeplint would be the overall outcome of .sat and .repoclosure.

I think this is awesome because it means we won't have to change the name in the future across the tooling, even if we extend the coverage. And the overall outcome here makes sense, because both sat and repoclosure are likely very deterministic, and we're quite sure we'll want to block on both. And we can most probably check both sat and repoclosure in a single run. Everything fits.

Please approve so that we can go forward with replacing depcheck.

OK. I also removed type=bodhi_update reporting, because we want to get rid of it, and this change is the best chance to push it forward (in the worst case, I'll also prepare a bodhi patch). Now we're waiting for beta freeze to be lifted so that we can push this to production. Also, I'll look at necessary FMN changes and bodhi changes.

Here's a FMN pull request I intend to send:
https://github.com/kparal/fmn/compare/develop...kparal:rpmdeplint
Not only I renamed depcheck to rpmdeplint, but I also added abicheck as an important task to automatically notify people on failure. We don't get any false negatives reports, it's pretty important, and currently runs just on critical path packages. Abicheck authors have been asking for increased visibility for some time. Does it make sense, do you agree?

Here's a Bodhi pull request I sent:
https://github.com/fedora-infra/bodhi/pull/1550
If you see anything wrong, your comments are very welcome.

I'm going to add rpmdeplint to https://fedoraproject.org/wiki/Taskotron/Tasks and once all of this is done and pushed, we should be hopefully ready.

! In #878#13760, @kparal wrote:
Here's a FMN pull request I intend to send:
https://github.com/kparal/fmn/compare/develop...kparal:rpmdeplint
Not only I renamed depcheck to rpmdeplint, but I also added abicheck as an important task to automatically notify people on failure. We don't get any false negatives reports, it's pretty important, and currently runs just on critical path packages. Abicheck authors have been asking for increased visibility for some time. Does it make sense, do you agree?

Adding abicheck notifications by default sounds like a good idea to me.

[[ https://github.com/fedora-infra/fmn/pull/198 | FMN pull request ]] pushed and will be part of a new FMN release after Beta freeze.

[[ https://github.com/fedora-infra/bodhi/pull/1550 | Bodhi pull request ]] pushed and [[ https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmdeplint | Tasks/dist.rpmdeplint ]] created. We're now waiting for Beta freeze to end so that @mkrizek can push rpmdeplint to production.

rpmdeplint has been deployed to production. I've compared depcheck and rpmdeplint results between 2017-06-16T08:00 and 2017-06-19T08:00 and there are no important differences. Now waiting for new FMN and Bodhi release.

Both FMN and Bodhi new releases have been deployed. I'll write a blogpost announcing depcheck -> rpmdeplint switch, and then we can disable depcheck, I believe.

I have a blog post draft ready that I can send to fedora planet and test-announce and devel-announce once taskotron production is working again.

Edit: Here's the [[ https://kparal.wordpress.com/2017/06/22/taskotron-depcheck-task-replaced-by-rpmdeplint/ | blog post ]] if you want to read it before I send it to fedora planet.

I have obsoleted depcheck project on bitbucket and disabled depcheck project and mirror on Phab. @mkrizek removed task-depcheck from taskotron-dev and taskotron-stg. The only thing missing is removing it also from production, once F26 Final freeze is over.

Depcheck is now officially dead! Whooo!

{meme, src=fireworks, above="bye bye", below="you won\'t be missed"}

Metadata Update from @kparal:
- Issue tagged with: task-idea

6 years ago

Login to comment on this ticket.

Metadata