wg
wg copied to clipboard
[Discussion] A plan for crate stewardship
Currently, in terms of GitHub groups for rust gamedev crates, there's:
possibly more I don't know about!
Recently the maintainer of gl-rs
asked in the Discord where they should transfer their crate now that they don't have as much time for it. In this case, it seems like gfx-rs
is the best group.
However, this raises the question of if we want the WG having actual crates be maintained as part of the github group.
Either way we probably want to also add some information somewhere, perhaps just in the readme, listing github groups that maintain rust crates. Improve discoverability and all that.
Piston is also a sizable collection.
They might be discoverable once the ecosystem guide is in place?
As for this wg we already mention in the charter that we can create low level libraries if needed, we can change the wording to also mention maintain. We should set some expectations on what qualifies a low-level lib to get moved here.(usage, quality, etc).
I would like to suggest that the WG take ownership and maintain as little crates as possible under a WG official manner. In my opinion, this just creates an odd divide between crates that are under the WG versus crates that are not. Are these crates officially blessed? What does it mean for a crate to be under the rust WG?
I think it's in the best interest of the WG and the whole gamedev community that maintainership of crates happen in other orgs. This means that members of the WG can still maintain the crates but these crates are not "official".
I agree with the sentiment that if needed critical low-level crates should be owned by orgs (usually not this org), but I do think that it should be considered for a move here just in case of emergency.
E.g. no other org wants something critical like gl-rs (random example). That's why my view is that it should not be impossible to move a critical, low-level crate here, but it should be a very careful and highly-considered case by case decision.
but I do think that it should be considered for a move here just in case of emergency.
Imho this should be rephrased to "we should help to find the crate a new home with a last resort as the WG".
Well, with a quick check github shows me that @erlend-sh is actually one of the three people publicly in charge of rustgd
. You didn't mention that part erlend! Can you explain what policy, if any, your group has about adopting old crates that the maintainer has moved on from? And what's your policy about people using your group as a place to develop new crates?
As to what Lucio asked: Are these crates officially blessed? What does it mean for a crate to be under the rust WG?: No, if we adopted a crate for a time I suspect that it'd be more like a situation where it had no good place to go but we didn't want to toss it in the scrap heap.
Also "announcing" that I opened up a group for tutorial content: https://github.com/rust-tutorials
rustgd is a very hands-off group as I understand it. There is no policy. It was set up as a sort of precursor to the official Rust WG. It might need to redefine its purpose now.
No, if we adopted a crate for a time I suspect that it'd be more like a situation where it had no good place to go but we didn't want to toss it in the scrap heap.
Let me reask this question, what does this mean to members that are not in the WG? It's less about what they are in reality but more about what they are perceived as by end-users. I will say that this feeling has been felt before in other WG and I just want to ensure no one feels like the WG is focused on one set of people over others. 😄
I would say that being hosted in the rust-gamedev group should to be the same as the "rust bus" group. The crate has a place to live, and security patches can be rushed out the door if necessary, but otherwise we don't do any special work for the crate's actual maintainer. If the crate goes stale we can try to find it a proper maintainer. We do not oversee their PR process, we do not decide on releases, we don't decide on feature priority, etc.
rust bus link for reference: https://users.rust-lang.org/t/bus-factor-1-for-crates/17046
As a follow-up to my own comment, people who put their crate in the gamedev-wg repo are likely to communicate much more with us, but anyone is free to engage in a higher level of communication with us.
I think separate groups (separate from the WG group) is valuable for:
- Collaboration for experts in a particular (sub) area.
- Reduces search space for crates in a particular area to a group1.
- Bus factor concerns.
The WG would be a place for the separate domain groups to be aligned towards a particular direction / goal, or discovering common pain points for all groups. The separate groups will still operate how they best choose. Tooling that serves all groups could live in a separate group, so we can separate development issues from collaborative ones (that is, the "this tool has this bug" issues from the "we have this common problem" issues).
1 of course there can still be groups (e.g. for a particular organization) with crates that span multiple areas.
There's also slide-rs, 3/4 of whom are also in rust-gd
(perhaps we should consider merging).
I think this initiative is a great one! Thank you for all the work you're putting in @Lokathor and others.
I did want to bring up one "field experience report":
I will say that this feeling has been felt before in other WG and I just want to ensure no one feels like the WG is focused on one set of people over others. 😄
Just to add my 2 cents; this is the exact feeling I've had with the rustgd/Amethyst group. It felt too much like a vehicle to promote a specific set of tools and ways of working, instead of fostering a rich ecosystem to form around the topic of games in Rust, with many "competing" and complimenting libraries being promoted (for Amethyst this made sense, since it's about an engine, but I guess the feeling comes from the fact that most people working on that engine are the same people who were driving forward the whole Rust gaming ecosystem, for which I am obviously very thankful).
Now, this is a feeling, and I'm pretty sure most – if not all – of the people involved didn't mean for this to happen, or perhaps my feeling isn't even accurate, and that's not what happened at all, but it's a feeling, and related to this topic, so I wanted to share it nonetheless.
(I also have this feeling with the rustwasm WG)
But, seeing the tools that are being built, the time people invest, and the fact that things are moving forward, I've come to accept that feeling as the cost of having awesome people band together to improve the ecosystem for us all, even if you sometimes have to ignore that feeling I just described.
I think separate groups (separate from the WG group) is valuable
I also agree with this, even if it's a superficial split, it'll help know what organisation/group does what. The rust-gamedev
GH organisation should be all about maintaining a website to keep people in the loop, having a place for discussion, perhaps RFCs if relevant, grouping tutorials (again probably exposed via a website), managing any other (objective) collections of links to resources, but not about hosting gamedev related crates.
At one point in history, before the gamedev WG was really a group, some people (who we don't need to point fingers at so please don't) did the very silly thing of trying to advocate for the gamedev WG to promote a particular best library in each category of library. They wanted a WG to rally the community around specific libs like "we all use winit
" and "we all use amethyst
" and "we all use nalgebra
" and so on, and then all WG efforts would be focused on just improving those libs.
But that's not a gamedev WG, that's just an amethyst WG in disguise.
So now we have this clause in our WG charter that specifically bars us from promoting any lib over another at all. Which makes us a kinda weird WG compared to some of the others (such as embedded and wasm, which both develop their own WG crates), but this is the mild price we pay for crate freedom.
Since we seem agreed to not develop/keep crates in this org, let's move on to the next part of the subject:
- How to we effectively message about all the crate maintaining orgs?
There's already enough orgs that it's hard to remember all of them, so it's unreasonable to assume that a beginner will know all the places to look. We want to present this info somewhere for sure.
We have a website, but outsiders to the WG are basically always told to look at the wg
repo.
- Adding more to the bottom of the README of the
wg
seems simplest- It doesn't seem to do any harm. Once the README is past a sentence or two you need to click to expand the whole thing in mobile view anyway, and we're way over that line. On desktop you always see the whole file right away no matter how long it gets.
- Keeping as much info as can be clearly conveyed in a single file, that you can read straight though start to finish, is far better than having handfuls of small files that you have to jump between.
Any objections to putting it in the README?
We have a website, but outsiders to the WG are basically always told to look at the
wg
repo.
I feel like this is a chicken-and-egg problem. Once we do have a fully fleshed out easy-to-navigate website with lots of up-to-date resources and links to specific GitHub repositories (even to the ones in this wg org), I don't see why we should still point people to the wg repo.
Any objections to putting it in the README?
I don't have any objections, another middle ground before we have a proper website (there is one, but it's work in progress, understandably) is to use mdbook, so that these things are split into their own markdown files, and we can still link to the specific sections from the README in the repo itself for now.
I think the biggest problem with hoping for too much from the website is that none of us have super web skills, so we're all kinda just fumbling with the website as "something we could maybe turn into a newsletter blog thing".
I think the biggest problem with hoping for too much from the website is that none of us have super web skills, so we're all kinda just fumbling with the website as "something we could maybe turn into a newsletter blog thing".
I guess in that case, having an mdbook is even more relevant. It gives you something to get started which doesn't require putting everything in a README (or subdirectories that have to me manually searched for in a repo).
Also, I'm pretty sure that at some point, we'll attract the attention of some game designer involved in a project that contains Rust code, and they could help us to further improve the website. Most games (even indie ones) have nicely looking websites, and that's due to the fact that most games inherently require the talents of designers, combined with a few programmers who've done some css/html in their spare time 😄
The readme is for anyone interested. This information targets a specific set of people (that have crates and want help maintaining them).
For this i am against shoving it in the readme. A page on the website can do just fine. Even better a page related to the ecosystem guide (that should be a website page too eventually).
Also it's best to just list them imho, not advertize them as hey talk to some of these orgs to get your crate moved to them.
So this should probably be a message that states hey, here are some other orgs, with little to no affiliation to this wg, that maintain some libraries. People who want their thing moved in there can figure it out.
Also the orgs might not appreciate us promoting them as crate maintaining orgs.
Sorry for the accidental close. Github mobile site isn't great.
Oh I've done it myself plenty of times
But, I wasn't just thinking that a group list would be used only by people looking to give a home to a crate, but also to anyone in general wanting to look around and see what's available. So, yeah, ecosystem guide content of some sort.