rust-dev-tools / dev-tools-team

resources for the Rust dev-tools team
42 stars 9 forks source link

rust-semverver issues #45

Open gnzlbg opened 5 years ago

gnzlbg commented 5 years ago

rust-semverver was migrated from the nursery, to the rust-dev-tools org:

Manishearth commented 5 years ago

cc @nrc could you grant admin permissions on this org to a couple more people? I'll look into fixing CI.

I'm not sure if this tool is actually being actively maintained by the devtools team :smile: It was developed as a GSOC project, but I don't think we've got anyone maintaining it long term at the moment. I could be wrong; @ibabushkin would know more.

We're currently in the process of reorganizing the devtools team but we'll probably try and keep track of smaller tools like this much better in the future.

gnzlbg commented 5 years ago

I'm (hopefully temporarily) libc's only maintainer. I'm manually using this tool to verify that changes to rust-lang/libc are non-breaking. If the tool was more actively maintained, CI could do this for me (there is a PR that does this, but can't be merged until maintenance improves: https://github.com/rust-lang/libc/pull/1154), which would allow me to use my time for other things.

Adding new functionality or refactoring code in libc without introducing breaking changes is hard, and this tool helps me a lot.

@ibabushkin has written a super-awesome tool that every critical crate to the Rust ecosystem should be using (libc, libcore/liballoc/libstd, etc.). We should support moving this tool over the finish line and ship it via rustup and/or cargo.

dwijnand commented 5 years ago

I very much agree too. I've already got my hand in a few jars already but, generally, I'd be happy to try and help get this tool ready for widespread adoption.

Manishearth commented 5 years ago

I suspect the other issue here is getting this on the cargo team's radar (perhaps having them adopt it?) so that they can work with any maintainers we have on this side to make the integration story more robust.

Dale, do you think you would be able to push on this on the cargo team's side?

dwijnand commented 5 years ago

I can present to the team this logistical issue, but I don't know what the current integration story is, so I'd have to look into that or someone would have to explain it to me in order for me to present it to the cargo team. But I would be happy to.

ibabushkin commented 5 years ago

Okay, to chime in: I essentially had a not-so-brief hiatus for unrelated reasons and not much time to push development forward, and @gnzlbg recently picked up a number of issues.

In terms of integration, I think the best way forward would be to compile a list of problems currently and to decide how we want to work on those. Off the top of my head:

Luckily, @gnzlbg very helpful involvement pretty much coincides with me having time again, so I'm looking forward to doing my part.

Manishearth commented 5 years ago

Sweet. If we want to, we can eventually move towards having this shipped with rustup as a tool like clippy and the rest, though I think we need to let the tool mature a lot before it reaches that status.

In the meantime we can still have Rust nightly CI set up the way servo does to catch breakages. We can also move most of the unstable code into rustc as an unstable API with smaller API surface, to help it break less. This was much harder to do for clippy (and only happened a little bit), but in this case you're using the rustc APIs for a specific thing that won't change too much, so that can be upstreamed hopefully.

This could also be moved to use the save_analysis APIs, which are much more stable.

ibabushkin commented 5 years ago

On 2019-02-28, Manish Goregaokar wrote:

Sweet. If we want to, we can eventually move towards having this shipped with rustup as a tool like clippy and the rest, though I think we need to let the tool mature a lot before it reaches that status.

In the meantime we can still have Rust nightly CI set up the way servo does to catch breakages. We can also move most of the unstable code into rustc as an unstable API with smaller API surface, to help it break less. This was much harder to do for clippy (and only happened a little bit), but in this case you're using the rustc APIs for a specific thing that won't change too much, so that can be upstreamed hopefully.

This could also be moved to use the save_analysis APIs, which are much more stable.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/rust-dev-tools/dev-tools-team/issues/45#issuecomment-468228301

We had such a CI, but since the move of the repo out of the nursery, it seems to require constant attention and works rather erratically, possibly some permission issue.

In terms of moving unstable code to rustc -- that seems reasonable, and might be a good point to redesign some of the checks to improve correctness.

gnzlbg commented 5 years ago
  • type checks relying on internal rustc APIs are not entirely correct

I feel I have to raise the issue that, feature-wise, the tool is already in a far-beyond-MVP state. Rust will keep evolving, and the tool will always need to evolve to support new stable and nightly features.

Many critical crates (libc, winapi-rs, all the -sys crates, ...) don't use any fancy Rust features (no generics, no traits, no life-times, etc.) and could benefit from the tool in its current state if the organizational and infrastructure issues related to shipping it would be solved.

ibabushkin commented 5 years ago

On 2019-02-28, gnzlbg wrote:

  • type checks relying on internal rustc APIs are not entirely correct

I feel I have to raise the issue that, feature-wise, the tool is already in a far-beyond-MVP state. Rust will keep evolving, and the tool will always need to evolve to support new stable and nightly features.

Many critical crates (libc, winapi-rs, all the -sys crates, ...) don't use any fancy Rust features (no generics, no traits, no life-times, etc.) and could benefit from the tool in its current state if the organizational and infrastructure issues related to shipping it would be solved.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/rust-dev-tools/dev-tools-team/issues/45#issuecomment-468262338

While that is true, there are cases where semverver outputs incorrectly classified errors for not-so-fancy code. I'll try to come up with a solution.

Manishearth commented 5 years ago

Looks like someone enabled travis recently, if it's still broken lmk.

JohnTitor commented 4 years ago

So, I currently maintain libc crate and semverver still needs rustup sometimes. Since the maintenance is very slow, I use my own fork for libc testing but it'd be great that upstream has a fix asap and release it. I'm available for rustup, could someone (maybe @Manishearth?) give me collaborator access?

Manishearth commented 4 years ago

Reluctant to hand over commit access directly, but if you want things merged you can just r? me and I'll merge them. After some time I'll probably hand over commit access.