After a discussion in the rust community discord I was reminded how confusing the wgpu naming is.
There are two main wgpu crates that people care about: wgpu and wgpu-native.
Currently they belong to these repos:
I propose we rename like this:
If we are open to changing crate names, then we could do this:
I also find this confusing, and keep forgetting the crate name for wgpu-rs is just wgpu; I propose that whatever names are chosen, their crate name == github repo name
I also find this confusing, and keep forgetting the crate name for wgpu-rs is just wgpu
Having the crate name without -rs suffix is totally normal, i.e. cgmath crate used to be hosted in "cgmath-rs" repo, which got renamed upon moving to "rustgb" org. There are still cgmath-rs forks found on github.
Renaming wgpu repo to wgpu-native would also be misleading, since it also contains the wgpu-remote.
I do admit that the state of things is not ideal today, and it's not obvious from the first sight where things are. I suggest we delay the discussion to the time where Gecko integration is happening, and keep the names unchanged till then.
It might be possible, for example, that the wgpu-remote implementation would not need to be synchronized back to Github (I doubt there is much contributor interest in this particular bit). So we'd be able to just have wgpu-native repository then.
Having the crate name without -rs suffix is totally normal,
This is an anti-pattern imho, and unfortunately keeps being perpetuated in rust crates. Just because people do it, doesn't mean they should; another example of this is foo-bar, where they use a dash in their crates.io name, and so the toml name, but code references must be underscored, because dashes aren't allowed in programmatic crate names.
Anyway, I'm risking derailing this on "normal" naming schemes, but you don't have to follow what is arguably "normal" or not, and I just think its clearer if the repo is named the same as the crate, that way there's _zero_ ambiguity.
A similar pain point in ocaml: where the library name on opam (the package manager) isn't the same as the module name used in code, and it's just... annoying.
Anyway, just my two-cents.
If gecko integration is still a long way off, I think we should change the wgpu repo to wgpu-native now.
People aren't going to be put off that there is an extra crate (wgpu-remote) sitting there, that they dont care about.
They are currently very put off by the fact that the wgpu crate does not live in the repo named wgpu.
I agree that keeping the wgpu crate name and wgpu-rs repo name as is, is fine.
Yea I agree with @rukai, at very least it makes sense to figure out proper repo for wgpu-native
Repositories with multiple crates are the norm too. wgpu is one such repository. For as long as it has "wgpu-remote" crate, we can't rename the repository to "wgpu-native".
Integration with Gecko should have started a while ago. It's already delayed past the schedule. It's not a long way off.
Sure, a repo can have more than one crate.
However, when the wgpu crate exists and there's also a wgpu repo then people think "oh, same name, naturally that's the right repo". Then they look around and none of the right stuff is there and they get confused and angry.
So what shouldn't happen is that there's a repo named wgpu that doesn't hold the crate wgpu.
Here's some possible paths to fixing the situation and making it much more approachable to new users:
wgpu, wgpu-native, and wgpu-remote) into a single repo named wgpu and then explain in the readme that it's a multi-crate repository.wgpu crate.wgpu crate into wgpu repo and have wgpu-native and wgpu-remote be in a wgpu-impls crate or somethingwgpu repo existing but _not_ being home of the wgpu crate.@Lokathor this is reasonable. Note that we used to have everything in a single repo, but recently separated them, because some of the things are meant to be synchronized from Gecko.
My resolution so far is not rejecting your (in a large sense) proposals - is instead delaying the decision to rename the repo until it becomes more clear what the relationship with Gecko is.
One of the possible outcomes is: wgpu-remote gets completely moved to Gecko, community isn't interested in using it, so we don't sync it back to Github. Therefore, Github's project can be safely renamed to wgpu-native.
Now that wgpu-native has been moved to its own repo, how does it affect this issue? Is the name sufficiently clear for the wgpu-core and wgpu-types crates from this repo?
I think there is still a bit of a desire (voiced by @grovesNL previously) to rename this repo to wgpu-core, hence the issue can be left open.
It looks like waiting paid off!
I agree with groves, I think we should now rename this repo to wgpu-core.
Most helpful comment
@Lokathor this is reasonable. Note that we used to have everything in a single repo, but recently separated them, because some of the things are meant to be synchronized from Gecko.
My resolution so far is not rejecting your (in a large sense) proposals - is instead delaying the decision to rename the repo until it becomes more clear what the relationship with Gecko is.
One of the possible outcomes is: wgpu-remote gets completely moved to Gecko, community isn't interested in using it, so we don't sync it back to Github. Therefore, Github's project can be safely renamed to
wgpu-native.