Hi Juan, Am 05.12.19 um 02:14 schrieb Juan D-M:
Without a doubt, Tiago has pulled off something extraordinary for a one-man-band. The only thing troublesome with this is that if anything should ever happen to him the project would probably slowly die off - that would be an enormous waste.
This is hopefully not a very pressing concern!
It seems like the community has established itself good enough to start participating in active development.
Graph-tool is the workbench I use to do my own research, which I also happen to put out for wider use. While I'm happy to take suggestions, improvements, and bug fixes, the library reflects very strongly my way of doing things, and has never been setup as a very collaborative project. This does not mean I object to a wider participation, but it does explains why this is not in the DNA of the project. (In addition to the fact it's written in C++ with templates, BGL, etc.)
I personally have developed a series of extra tools that I would like to give back but the integration with the main repo appears to me to be too much of a daunting task.
Integration with the main repository should not be stopping you from making your contributions public. You should put them in your own separate repository, with documentation, etc. If it proves interesting and widely useful, it can be integrated at a later point.
This is obviously based on ignorance and I'm sure that if the documentation could be extended with a 'developers' section containing examples on how to extend graph-tool / a bird-eye's of how graph-tool works, I reckon we could get more people engaged with the inner workings of the module and assure maintenance in the long term.
Some of this already exists. In order to understand the internals, a good place to start is the C++ extension howto: https://graph-tool.skewed.de/static/doc/demos/cppextensions/cppextensions.ht... After you are familiar with the patterns there, you will then realize that this is how the rest of the library is written.
In order for the transition to be smooth, ideally we should come up with this type of documentation in workshops/hackathons/meetups (would really like to get some feedback about this).
This seems premature, as it is any talk about a "transition". The level of organization you are describing only makes sense for very large projects.
P.S.: Should these ideas get any traction from other committed users, I'll go ahead and nominate Tiago Peixoto for Benevolent Dictator for Life. Usually, no nomination is required for this sort of thing. :)
Best, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de>