Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Call for participation in the development of petgraph #207

Open
bluss opened this issue Mar 18, 2018 · 38 comments
Open

Call for participation in the development of petgraph #207

bluss opened this issue Mar 18, 2018 · 38 comments

Comments

@bluss
Copy link
Member

bluss commented Mar 18, 2018

Hi all!

Petgraph is a Rust library that implements graph data structures, graph traits and graph algorithms.

Feel free to look around in the rustdoc docs for petgraph.

Petgraph needs a team of developers; It is only at version 0.4.x0.6.x and has much to do! Current maintainers are @ABorgna, @bluss, @fitzgen and we are looking to include more people in the development, we both have limited time that is shared on many different projects.

My Understanding of Petgraph's Situation

To set expectations, this is my personal perspective on petgraph as it is now, and some ideas for the future:

  • It is a library built around Graph and StableGraph, which are specific graph data structure implementations. In my mind, this has been the most important part of petgraph.
  • We have gradually added graph traits, to make it possible to express algorithms generally
    • We don't have generic associated types in Rust yet: with those we can reform all the graph traits into their “final” and much more useful form (We can't support mutable access iterators properly right now!)
  • There are ideas for a better GraphMap. Implement a better GraphMap #208
  • Potentially split algorithms into their own crate?
  • Potentially split graph traits into their own crate?
  • We don't collect every algorithm. It is also ok and encouraged to release crates that build upon petgraph, instead of including features in petgraph.
  • Feature development and evolution is more important than reaching 1.0 right now

Plan

We want to bring on more people who are interested in developing and/or co-maintaining petgraph.

If there is interest, we can form a github organisation for petgraph. It is my intention that a team takes ownership of petgraph and it stops being a private repository. (COMPLETE)

In the team, work out a rough roadmap of wanted features, and maybe go through outstanding improvements that haven't quite landed yet, but need a plan for landing them.

### Short Term Plan

In the near term, petgraph should pursue to release any last pending non-breaking changes in master as a patch version in the 0.4.x release series, and then we should release petgraph 0.5.0 with the pending breaking changes that we know of at this point. (COMPLETE)

Call for participation

If you are interested, just speak up here. We are both looking for co-maintainers and people who just want to express interest in working together, so feel free to say hello either way. I have cc'ed all past contributors, but the invitation is to anyone that is interested.

Cc list

@jmcomets @Kha @mitchmindtree @BurntPizza @waywardmonkeys @christolliday @atk @llogiq @contradictioned @shepmaster @carrutstick @cmbrandenburg @daboross @MajorBreakfast @Rupsbant @Binero @WaDelma @adrianN @fuine @jrraymond
@bluss bluss changed the title Draft Call for participation in the development of petgraph Mar 21, 2018
@waywardmonkeys
Copy link
Collaborator

I am willing to help maintain petgraph

@jmcomets
Copy link
Collaborator

I'm also willing to lend a hand! 👍

@carrutstick
Copy link
Collaborator

Happy to help, though not sure how much time I'll be able to commit.

@Dylan-DPC-zz
Copy link
Collaborator

Can help in co-maintaining 😄

@jrraymond
Copy link
Collaborator

jrraymond commented Mar 22, 2018 via email

@mitchmindtree
Copy link
Contributor

Thanks for the cc!

I'll likely keep contributing fixes/features/tweaks to petgraph as I come across the need for them (I seem to end up using petgraph in most of my projects at some point! 🌠) however I won't be able to set aside dedicated time to petgraph itself.

Potentially split algorithms into their own crate?
Potentially split graph traits into their own crate?

I just wanted to mention that I'm a bit wary of breaking petgraph into multiple crates. All of that same code will still require maintenance - it just becomes more of a burden to do so when all of the code is split across multiple crates/repositories, all of their versions require syncronisation and all need to be published independently. This gets particularly painful when there are lots of traits involved as users can easily run into confusing errors where their types no longer implement some trait due to version differences (even if the interface and implementation are identical).

I imagine the compilation benefits would be pretty negligible too as incremental compilation continues to improve?

I'd personally prefer to see petgraph go down the road of becoming a "one-stop-shop for all your graph needs" rather than being broken into loads of micro-crates that get annoying to synchronise (both as user and maintainer).

Anyway, this is just my two cents! I love petgraph and will probably keep using it either way 👍

@bluss
Copy link
Member Author

bluss commented Mar 23, 2018

That's awesome to hear from everyone! Invites sent. I'll try to mentor on issues and so on, just ask me, but I don't always have much time for reviewing algorithms.

@mitchmindtree My mind is on if the different parts need different development and breaking change paces -- making it easier for the ecosystem to depend on the graph traits — imagine we keep them stable while the data structures or algorithms develop with a faster versioning pace. So I imagine it would be more work, but not that the versions keep in sync, it makes sense to me mostly if they are not in lock step. That said, not sure what the right decision is.

@chefsalim
Copy link

I'd be interested in helping as well as time permits.

Also, +1 to not breaking up into multiple crates.

@ngaumont
Copy link
Contributor

Hi,

Thanks for the petgraph lib which is very impressive and practical.
I haven't used it enough yet to help in the design or implementation.
However, I think the overall usability of the lib could profit from explicit toy example for each function.
I'm thinking something similar to the examples inside the std doc.
I'm willing to help in writing these examples.

@Dylan-DPC-zz
Copy link
Collaborator

Hi Gaumont

Thanks for volunteering. You can go ahead and submit a PR.

@garro95
Copy link

garro95 commented May 16, 2018

I would like to help too

@TeXitoi
Copy link

TeXitoi commented May 30, 2018

I'm interested in participating to this.

On multiple crates, I think that's an important thing to do: then you can do breaking changes in the algorithmic crate without doing breaking changes in the others crates!

@zx9w
Copy link

zx9w commented Nov 22, 2018

Hey, I would love to help here but I'd need a little bit of help helping at first probably, I know the math but not the rust (or not well anyway).

Please let me know if there's any good newb issue!

@fan-tom
Copy link
Contributor

fan-tom commented Jun 5, 2019

Recently I've translated simple path search algorithm from networkx https://networkx.github.io/documentation/stable/reference/algorithms/generated/networkx.algorithms.simple_paths.all_simple_paths.html#networkx.algorithms.simple_paths.all_simple_paths to Rust for my personal needs and I want to share it, but i don't know how: send PR to merge it into petgraph itself or make separate crate with just that simple function? I think separate crate is not so good solution, however I see that petgraph intends to be detached from algo part, so what is your advice?

@garro95
Copy link

garro95 commented Jun 10, 2019

I think that a prerequisite to have the algorithms in separated crates is to have the traits separated too. Otherwise a version change in the petgraph crate would break also the algorithms. Having the traits separated gives one more layer of stable compatibility with external crates that implements algorithms and petgraph itself.

@XVilka
Copy link
Member

XVilka commented Jun 18, 2019

Ping? @bluss there are numbers of PRs and volunteers to help already.

Also if there will be no response, I think the only solution would be to fork it.

@alexreg
Copy link

alexreg commented Aug 10, 2019

I second @XVilka here. Could we get some official update, if possible?

@waywardmonkeys
Copy link
Collaborator

I've merged one PR (itertools update) and looked at some of the others. It seems like we need to adjust the minimum version to Rust 1.25 (at least).

@alexreg
Copy link

alexreg commented Aug 11, 2019

Considering 1.36.0 is stable (1.37.0 isn't far off), that sounds more than fine. I don't know what the intention of the maintainers is, but I believe popular Linux distros all have packages for the latest stable these days, so there should be no real problem moving to 1.36.0.

@XVilka
Copy link
Member

XVilka commented Aug 11, 2019

This is why I sent the PR to use Rust 2018 edition: #254

@waywardmonkeys
Copy link
Collaborator

I've submitted a PR to fix the failing dot test (#260).

I've also submitted a PR to discuss the version bump (#261). Once that's decided, then it makes more sense to think about things like using Rust 2018 edition (#254), although probably with the changes being broken up some.

@alexreg
Copy link

alexreg commented Aug 11, 2019

the problem is: who's looking at PRs now? Anyone at all?

@waywardmonkeys
Copy link
Collaborator

@alexreg Well, I did some today and found a few things that I thought should be addressed first to get tests and such in order.

Do you have some in particular that you're most interested in?

@alexreg
Copy link

alexreg commented Aug 11, 2019

Oh, you have review/merge privileges? I didn't know, but that's cool. Not sure at this point... would need to have a closer look.

@waywardmonkeys
Copy link
Collaborator

I've adjusted the minimum version to 1.25 for now and so all tests on Travis CI pass. I haven't heard from anyone yet suggesting a version to update to other than 1.36 or 1.37, so that will be the next step, I guess.

@bluss
Copy link
Member Author

bluss commented Aug 18, 2019

Hey - I'm sorry I haven't been able to work on Rust for a long time.
It's awesome that many are already helping with petgraph. I guess we need to take on some of the maintainers as owners, or more maintainers.

@waywardmonkeys You've been organizing issues towards the next release, do you want to manage the next release?

@waywardmonkeys
Copy link
Collaborator

@bluss Sure, I can do that (with your blessing).

@bluss
Copy link
Member Author

bluss commented Aug 18, 2019

Awesome!

@bluss
Copy link
Member Author

bluss commented Aug 20, 2019

I think we maybe should set up an organization for petgraph. Org would preferably take ownership of petgraph and fixedbitset (basically that crate is only used by petgraph).

@jmcomets
Copy link
Collaborator

I agree with the org approach. Is there anything in particular we should do besides move the repositories & update the various links ?

With your blessing, I don't mind creating the organization.

@bluss
Copy link
Member Author

bluss commented Aug 21, 2019

Sure go ahead, might be just Travis URLs and such things yeah

@jmcomets
Copy link
Collaborator

jmcomets commented Aug 21, 2019

Just created https://github.com/petgraph, added the @waywardmonkeys and @XVilka who've been pretty active recently.

PS: I didn't know what billing email address to add so for now I used my own. This could be updated in the future.

@bluss
Copy link
Member Author

bluss commented Aug 23, 2019

Repo moved (should be evident if you read this), automatic redirects.

The gh-pages branch was just hosting redirects to docs.rs. For that reason, it's only counterproductive to establish those redirects under a new url, and the pages branch was deleted before the move.

The old site is preserved at the URL it was always using - https://bluss.github.io/petgraph (by having the content under bluss.github.io instead, a neat trick if you want to keep URLs alive after a repo move).

@bluss
Copy link
Member Author

bluss commented Aug 25, 2019

@jmcomets can we add @jrraymond to the org, and then we take in fixedbitset? Thanks! (I'm not yet an owner, can't edit :) See petgraph/fixedbitset#26 (comment)

@jmcomets
Copy link
Collaborator

I both you & @waywardmonkeys admin rights, so you should be good to go. I can't take in fixedbitset myself, as I don't have admin rights there. 😅

@bluss
Copy link
Member Author

bluss commented Aug 27, 2019

@jmcomets Please make me an owner here too https://github.com/orgs/petgraph/people thanks

@jmcomets
Copy link
Collaborator

jmcomets commented Aug 27, 2019 via email

@bluss
Copy link
Member Author

bluss commented Aug 27, 2019

https://crates.io/teams/github:petgraph:release-team is now has rights to publish on crates.io too. I'll invite you as direct owner too jmcoments (because team owners of crates don't have full rights)

@XVilka XVilka pinned this issue Apr 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests