I want to first mention that @bvssvni and I have discussed the following via personal email - the following text is largely adapted from our discussion, upon which we both generally agreed that this is probably the best direction to head in! Feel free to jump in if you like @bvssvni or call me out if I get anything wrong! Sorry it took so long to get around to posting this!
Over the past two years I've been doing a lot of thinking about Conrod, the direction it's been going in and whether or not it still makes sense in the context of the Piston ecosystem. As you have likely noticed, a lot of the design choices that have gone into Conrod since its inception have diverged from the direction of Piston's design and micro-crate, modular approach. Some of the major differences include:
Input
type rather than remaining fully generic like Piston's GenericEvent
.These are just a handful that come to mind, all of which have been discussed here in detail at some point in the past. I want to clarify that I don't necessarily think any of these design decisions are intrisically better than their alternative. I absolutely understand where the Piston ecosystem approach is coming from, and fully respect the choices that have been made! Rather, these design differences are simply the result of my experience using conrod daily in many projects (both commercial and non-commercial) and my user's experiences, their feedback, contributions and requests.
Conrod is also the only crate within the Piston ecosystem which I personally have an interest in supporting. I personally don't foresee myself having the time to keep maintaining the other piston crates or propagating version bumps throughout the various piston repos, and as a result of this my contributions to the rest of the ecosystem have dropped off significantly over the past two years.
For these reasons, and seeing as there are other plans brewing for a more piston-friendly UI system, I've been thinking about moving the Conrod repo out from the PistonDevelopers organisation and to ownership under my own @mitchmindtree profile.
I wanted to come to you - the users - about this first and get your thoughts rather than going ahead without any explanation or clarity. To be clear, the direction of Conrod itself will remain unchanged. I will continue to maintain and improve upon conrod for the foreseeable future. Contributions are still more than welcome and I will remain as active as I have ever been in reviewing issues and PRs. Conrod will also keep its support for use with piston (via the piston
backend feature) and contributions to it will still be more than welcome! This move is more about clearly distinguishing the design direction and reducing confusion for new users who, totally understandably, are often confused as to the relationship between piston, conrod and conrod's place within the piston ecosystem.
A more personal note
As the main director of the Conrod project, I have invested massive amounts of my personal time into Conrod since its inception and am quite proud of the progress. Often times I see credit for Conrod going to the PistonDevelopers collective, despite the fact that ~95% of the library is the result of my own time and hard work. This is of course understandable as it currently exists under the PistonDevelopers umbrella. That said, this is another of my more personal motivating factors for the move - I'd like to be more directly accredited and recognised as the director of the project, and I think moving the repo under my own profile is the simplest, most obvious way to do this.
Naming
Originally the name Conrod was suggested by @bvssvni as a reference to the role of an actual conrod and it's role of connecting a piston. While suited at the time, I've personally never felt any great connection to the name. Seeing as conrod's purpose has diverged from its namesake over time, I've been thinking for a while that this also might also be an opportunity to change its name before reaching 1.0.0. I've settled on the name connie
for a few reasons: 1. It pays respect to its original name, 2. it follows my unintentional convention of giving crates human names (nannou, audrey, jen), 3. I think it's pretty cute and 4. I already use it as a nickname for conrod (maybe this is an Aussie thing).
Discussion
I will leave this issue open for discussion and feedback for a while! If everyone is happy for me to go ahead with the move and there are no great objections I will make post back here, do one last piston blog post and do the move!
As Conrod is my only major contribution to the Piston ecosystem, I will also be revoking my co-Owner
status within the PistonDevelopers organisation (if the move does go ahead). I owe a massive thanks to @bvssvni and piston as piston has been a big part of my formative years in both rust and learning how to create and maintain libraries! I'll no doubt still be keeping an eye on things in the years to come. Much love 鉂わ笍
Sorry for the massive write-up! This is something that has been on my mind a lot over the past year, and I just wanted to take my time to articulate myself as as best I could.
TL;DR - Plans have been brewing to move conrod to my own repo for a while now due to divergence between its design direction and piston's, along with other more personal motivating factors. If it goes ahead, the name will likely also change to connie
(my thoughts on this above). Most likely none of this will affect anyone other than changing 3 more characters in the Cargo.toml the next time a user updates.
As somebody who's been following the project for a few years, I've seen it as your project more than a piston project simply because of the notifications for it I see, 95% of the time its your name next to the update. I don't have a strong preference on what decision gets made here, just offering my perspective.
I fully support this move.
When Conrod started, it was with the idea to build an UI for Piston, but then we figured out Piston should be this small core and make the graphics and UI optional. I think connie
is nice.
The problem of credit is much more relevant than people think. Those who follow projects close up have no difficulty understanding who are the main contributors, but there are many more people outside the community that doesn't see it.
The Piston project, seen from my perspective, is much more experiment and research-oriented than people seem to know, and I get this kind of feedback occasionally. Conrod also started out as a research project and went through many heavy redesigns before it got right. I was contributing a lot in that period to Conrod. Now it has been a long time since I've been involved in any design decisions, mostly because I have a lot of stuff elsewhere to work on.
@mitchmindtree has already been using Conrod in commercial projects and did not want the original idea of using it as a Piston-only UI (and I did not want Piston to be locked to a single UI). So, there was a combination of factors that motivated him to make Conrod more independent of the Piston core. I believe this was the right decision.
In the Piston project we have always given maintainers more weight when making decisions, simply because they are the best to understand the code and the philosophy behind the design. Notice that I've also done similar decisions myself recently by moving projects to the AdvancedResearch organization, and before that @mitchmindtree moved stuff to the RustAudio organization.
I've been thinking about moving the Conrod repo out from the PistonDevelopers organisation and to ownership under my own @mitchmindtree profile.
Any chance you鈥檒l move it under a new connie
org instead? I assume you want to appeal to as many contributors as possible, and being under a shared org helps with that, while you鈥檒l still be recognized as the Owner of the project. I guess the determining factor here would be if there鈥檚 a good chance Connie will ever have any companion libraries that ought to live under the Connie umbrella, or Connie itself is split into multiple repos, as alluded to in #754
As a user of conrod, I fully support this. You've put a lot into the project, and that deserves to be represented.
If you feel moving away from piston helps maintain the true nature of the project, that's a plus!
I've... gotten to really like the name conrod
, but I have a tendency to get attached to names. connie
is also pretty awesome, I'll come around to it eventually.
Thank you for all the work you've done on the project!
Most helpful comment
I fully support this move.
When Conrod started, it was with the idea to build an UI for Piston, but then we figured out Piston should be this small core and make the graphics and UI optional. I think
connie
is nice.The problem of credit is much more relevant than people think. Those who follow projects close up have no difficulty understanding who are the main contributors, but there are many more people outside the community that doesn't see it.
The Piston project, seen from my perspective, is much more experiment and research-oriented than people seem to know, and I get this kind of feedback occasionally. Conrod also started out as a research project and went through many heavy redesigns before it got right. I was contributing a lot in that period to Conrod. Now it has been a long time since I've been involved in any design decisions, mostly because I have a lot of stuff elsewhere to work on.
@mitchmindtree has already been using Conrod in commercial projects and did not want the original idea of using it as a Piston-only UI (and I did not want Piston to be locked to a single UI). So, there was a combination of factors that motivated him to make Conrod more independent of the Piston core. I believe this was the right decision.
In the Piston project we have always given maintainers more weight when making decisions, simply because they are the best to understand the code and the philosophy behind the design. Notice that I've also done similar decisions myself recently by moving projects to the AdvancedResearch organization, and before that @mitchmindtree moved stuff to the RustAudio organization.