The future of Chimney #762
MateuszKubuszok
announced in
Announcements
Replies: 3 comments 1 reply
-
I wouldn't call a complete and done product "dead". Thank you for all of your effort! |
Beta Was this translation helpful? Give feedback.
1 reply
-
Thank you for all the great work over the years. It's a great library and huge kudos for the great effort in putting documentation in place 🫶 |
Beta Was this translation helpful? Give feedback.
0 replies
-
Thank you, @MateuszKubuszok, chimney is an impressive piece of software, and it is saving our butt. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This library is working.
The 1.x line supports Scala 2.12, 2.13, and 3.x up to 3.6 (some things break on 3.7, but you may or may not run into them). The 2.x line will support 2.13.17+ and… I guess, the next LTS? For now, milestone 1 was released for 3.7.
Yes, it has bugs.
Like any software. But these aren’t bugs only I can fix. Anyone can fix them—unless it’s something only a compiler team member could handle, in which case I can’t fix it either.
It could have more features.
But adding features wasn’t what drove Chimney’s adoption, as far as I can tell. People are still using it at the API level from 4 years ago—even with the latest releases. I didn’t use any of the newer features myself, simply because I had no need.
In fact, I haven’t worked on a CRUD project in almost 3 years. I’ve been solving other people’s problems, not my own.
I’ve probably spent over a thousand hours shaping Chimney into what it is today. I documented everything I could—in code comments, in the docs, in CONTRIBUTING.md, DESIGN.md, and in this unrecorded presentation.
It has unit tests for every reported issue. CI checks all supported features across all supported Scala versions, Scala.js, and Scala Native.
I did everything I could to make it easy for someone else to take over. To ensure any potential contributor has the knowledge needed—whether I’m available or not. So that I wouldn’t become the bottleneck.
To be honest, I no longer find it fun or fulfilling to add new features. I believe all the “hard” architectural problems are solved.
Remaining issues can be fixed locally. New features can be added through internal APIs.
But every change still needs:
So, I won’t implement any of those anymore.
If something makes the library unusable for most users, I’ll step in. It would be a pity to let all this work go to waste. That’s why I’ll make the effort to release 2.x, I why I pushed for summonIgnoring, and ported it to 2.13.17.
For everything else: I can mentor contributors, review changes, merge, and release.
But I’m no longer implementing new features (nor bugs that can easily be fixed by others—if you won’t even try, it clearly doesn’t affect you that much).
If that makes you label this library as abandoned and dead, and you panic and rewrite everything to Ducktape 😱—well, that’s not what I said 🤦, but whatever 🤷.
(If you can easily rewrite everything, then maybe the recent effort really wasn’t worth it.)
However, if you’re interested in contributing to Chimney—adding features, fixing issues, or learning how it works—you’re very welcome! 😄
This is the best time to contribute back!
UPDATE:
I've created some tickets to write down some ideas I had, but it's about making explicit what IMHO is possible to improve and how. All of these are for other people to pick up, I am still happy to let other people take the lead.
Beta Was this translation helpful? Give feedback.
All reactions