Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

The future of Objection.js #2335

Closed
koskimas opened this issue Nov 2, 2022 · 56 comments
Closed

The future of Objection.js #2335

koskimas opened this issue Nov 2, 2022 · 56 comments

Comments

@koskimas
Copy link
Collaborator

koskimas commented Nov 2, 2022

Hello everyone!

As you may have noticed, the development of Objection has been very slow this year. That's because I've been the only active long-term developer since I created this project and I just haven't worked on it lately.

The main reason for this is that Objection's typescript typings would need a full rewrite for them to become competitive and up to today's high standards for typescript codebases. I simply don't have time, or quite frankly the interest, to do that. Objection was designed before typescript was widely adopted and I made design choices that, even today, are very difficult to express using typescript.

This puts Objection in a difficult spot since there is no other active developer that could take over. Even if I found one, it would take a long time and a large amount of contributions before I could trust that person enough to give him/her access to Objection's npm project. Realistically, I just don't see this happening. Maybe someone from Vincit could step in 😉

I understand that Objection has relatively large amount of users and projects that depend on it. But since I left Vincit several years ago, I've maintained Objection on my spare time for free. This is the problem with OSS development. The bus factor is high. Nobody is getting paid.

I'm happy to transfer this project to someone else's care if that can somehow be arranged, but other than that, I won't be working on Objection anymore.

@koskimas koskimas pinned this issue Nov 2, 2022
@koskimas koskimas changed the title The future of objection.js The future of Objection.js Nov 2, 2022
@devinivy
Copy link
Collaborator

devinivy commented Nov 2, 2022

Always appreciate all your work on Objection, Sami— needless to say it's a fantastic take on the ORM and has been one of my favorite tools in app building. So cheers, and thanks 🍻

I am hoping we can have some discussion here about next steps. In my view Vincit might be the natural home for this project given the project's history, and having a clear indication from Vincit about whether they are open to that would be really useful!

We lean on Objection in hapi pal, and while I can't throw my hat in the ring for developing Objection, I intend to support whomever may take the reigns and continue to remain involved in the ecosystem!

@lehni
Copy link
Collaborator

lehni commented Nov 7, 2022

I too would like to express my appreciation of the work you have done on this well crafted library @koskimas. As an OSS developer of another library (paper.js) I understand your reasoning too well, yet I am sad to read that you have decided to stop working on Objection.

I cannot judge the challenge of updating the TypeScript typings. Is there an open issue that outlines the current short-comings? I am curious… And I do wonder what an Objection rewrite in TS on top of kysely would feel like.

Regarding the quest for future maintainers, I really hope someone can be found. I think it would be fine if the library entered maintenance mode where bugs are fixed and dependencies are kept up to date, but no or only few new major features are added. I am happy to volunteer putting in time to help out, since we have an interest in keeping this library alive for our work at Lineto.com where it is in heavy use.

Have you reached out to the folks at Vincit about this yet, Sami?

@mmmmmrob
Copy link

mmmmmrob commented Nov 9, 2022

As a long time user of objection on several startups and projects @koskimas, you have my thanks also.

Objection is beautifully designed and written and has been an absolute joy to work with. I hope maintainers can be found and Objection can continue with a similar philosophy.

@koskimas Good luck in all you do.

@jorgebv
Copy link

jorgebv commented Nov 17, 2022

Hello @koskimas, completely understandable decision that you cannot maintain such a large library for free. I have had quite a nice time with the library and thank you for maintaining it all this time.

There are a couple commits in the master branch that have never seen a release, and #2307 in particular would be nice for those hoping to ride the library off into the sunset for a little while longer. It would be nice to have this one last commit included in a release so projects can continue to use objection with the latest Typescript versions, even if Objection isn't getting further updates.

Of course if you don't feel like making any more releases, I understand. I will patch the package myself locally or make a private fork just for my project which is using Objection.

Thanks again!

@ErisDS
Copy link

ErisDS commented Nov 22, 2022

First of all - thank you for all the work you've done to create & maintain Objection so far. I've done extensive research and it still seems to be the best Node.js ORM there is in terms of features and performance. It's an incredible piece of work.

Ghost has been looking to make the switch from Bookshelf for a year, but with the quietness on the repo we decided to prioritise other things and wait and see what happened for a bit. It's great to have the situation out in the open.

I am completely understanding of why you don't want to put the work in for free anymore, but I am curious, if funding existed, would that change things for you even short term? This is such a great project, it would be awesome if it could get a happy send off to new maintainers in a good state and with knowledge transfer.

I'm also curious if you've reached out to Vincit or if there's anyone there you can ping on this thread as they do seem like they would be the natural overseers... but also maybe a group could be formed?

@hkjeffchan
Copy link

Thanks for your fantastic work. I agree with @lehni to put this into maintenance mode is good enough for most of us.

@mgan59
Copy link

mgan59 commented Dec 6, 2022

Just saw the Reddit thread that lead me back here. Thanks @koskimas for all the work on ObjectionJS, I picked up the library almost 4 years ago and has been a staple in my several projects. But I totally understand the last two years Typescript is everywhere and first-class support is necessary. Excited to see the work on Kysely and will check it out. Best of luck! 🙌🏻

@vladshcherbin
Copy link
Contributor

@koskimas thank you for all your work, being using objection and recommending it during all years of usage. I bet you even remember me from model snake/camel-case conversion request like 5 years ago (man, time runs so fast) 😅

Huge love and good luck in all your projects, totally understand your OSS pressure ♥️

@kasvith
Copy link

kasvith commented Dec 21, 2022

Thank you @koskimas for your hard work. Objection.js was the only ORM that made sense. I was using several other ORMs and jumped into Objection because it was the only one that had a really good design.

I was recommending and using it for countless projects now during my career. Its sad to see its getting obsolete. But I hope there will be a better one with Kysely

Good luck and thanks again

@Alexigbokwe
Copy link

Thanks @koskimas for all the hard work and the creativity around Objection Js, Objection Js is amazing, and easy to use✌️

@kibertoad
Copy link
Collaborator

kibertoad commented Jan 2, 2023

@koskimas Could I ask for npm publish permissions? I barely have time to maintain knex.js these days, but I can review and publish some fixes for Objection here and there, and I already have write permissions on the repo itself

@glensc
Copy link
Contributor

glensc commented Jan 2, 2023

Why not set up CI action to publish npm automatically on git tag push?

example:

I could send a PR if there's interest.

@laurisvan
Copy link

@koskimas thanks also from my side - Objection.js has helped us a long way forward. I hope the libary finds a maintainer, but luckily i has not needed that much active maintenance to stay working (it is the new features/refactoring to TS that takes the effort).

Any chances of donating it to Linux Foundation or such, in spirit of Moment.js? I'm not sure if it finds a maintainer there, but definitely worth checking out.

@koskimas
Copy link
Collaborator Author

koskimas commented Jan 9, 2023

@koskimas Could I ask for npm publish permissions? I barely have time to maintain knex.js these days, but I can review and publish some fixes for Objection here and there, and I already have write permissions on the repo itself

@kibertoad Sure! What's your npm user?

@tonyka

This comment was marked as off-topic.

@kibertoad
Copy link
Collaborator

@koskimas it's kibertoad. sorry, missed last invite, could you please repeat it? I'll do the release then.

@koskimas
Copy link
Collaborator Author

@kibertoad I sent a new invite

@iamnashdev
Copy link

iamnashdev commented Feb 8, 2023

It would be a shame to see objection going obsolete/deprecated, it is the right compromise querybuilder/orm which is really necessary when you have to deal a lot with edge cases and more complicated stuff but still want all the advantages of an orm.
Looking forward to see someone taking ownership of this projecct.
Thanks for what you have done @koskimas even though I have started using objection recently.

@lehni
Copy link
Collaborator

lehni commented Feb 28, 2023

@kibertoad please let us know if you decided against taking over. In that case, we should keep looking for somebody else to take care of the maintenance. Let's not let this beautiful library wither and die.

@KrisLau
Copy link

KrisLau commented Mar 3, 2023

Just saw this and I think this might be suited for https://github.com/pickhardt/maintainers-wanted (EDIT: Added!). Some other promising ones might be:

@koskimas is there a monthly donation amount that would maybe make it viable for you to continue sustaining the project? I bet there'd be a decent number of people/companies here who would be willing to donate to keep the project maintained (esp since I saw some big names in the who uses ObjectionJS thread haha). If that's not on the table at all I completely understand and I'll probably try to hep recruit maintainers!

I just started React Native last year and either way, I have really really appreciated using ObjectionJS and truly hope that someone steps up to maintain it as it has been an absolute pleasure to use. Wishing you all the best in future endeavors!

EDIT: Not sure if this is another option to get income on the package as well: https://tidelift.com/about/lifter. I did a search for objection and it said no subscribers yet but seems like no harm in signing up. Github Sponsors would also probably be good for whoever decides to end up maintaining this full time

@flipace
Copy link

flipace commented Mar 4, 2023

We at ovos are maintaining our own fork of objection since quite some time. It's tricky to put time into maintenance of something that does not pay the bills, but since we're anyways working on maintaining objection for ourselves we could probably help at least with pushing new releases and some bugfixes.

It's a pity, @koskimas was always open to suggestions and was maintaining objection in such a chilled manner, really a gem.

@capaj
Copy link
Contributor

capaj commented Mar 16, 2023

If you are like me and you're looking for something typesafe, but as close to objection.js as possible, you should look at https://orchid-orm.netlify.app/guide/

It's relatively new, not battleproven yet, but the creator is very responsive so I am confident it will get there in time.
I just want to raise awarenes about this ORM because it seems like the perfect successor to Objection. If you think it's not related to discussion in this issue let me know @koskimas and I will remove it.

@KrisLau
Copy link

KrisLau commented Mar 30, 2023

Noticed that axios uses https://opencollective.com for fundraising so that might be a good option for Objection.js as well! I'll keep an eye out for more ways to get more maintainers for the package as well

@koskimas
Copy link
Collaborator Author

koskimas commented Mar 31, 2023

I'll be blunt.

  • How much money would be enough to quit your day job?

alot

@evilbuck
Copy link

I'll take that as you're not interested?

@KrisLau
Copy link

KrisLau commented Mar 31, 2023

@evilbuck I think his reply was already in #2335 (comment)

To answer this and other related questions: ...
I just don't have the time anymore. No amount of money would change that unless I quit my dayjob, and that seems way too risky.

The only way to make objection.js sustainable (time wise) is to probably get a larger team of maintainers around the project. That way each person would have to dedicate less time for it individually. A consistent flow of funding would probably help with attracting that maintainer base but it's no guarantee. What were you intending on suggesting tho?

@evilbuck
Copy link

@evilbuck I think his reply was already in #2335 (comment)

To answer this and other related questions: ...
I just don't have the time anymore. No amount of money would change that unless I quit my dayjob, and that seems way too risky.

The only way to make objection.js sustainable (time wise) is to probably get a larger team of maintainers around the project. That way each person would have to dedicate less time for it individually. A consistent flow of funding would probably help with attracting that maintainer base but it's no guarantee. What were you intending on suggesting tho?

That comment didn't answer the question. I based my questions on that statement. Given the stipulation that he would need to quit his day job, I wanted to know what it would take to quit his day job.
I agree that we need to spread the load (bus factor) to be maintainable. Which is one of the points in my original comment.

I'll be blunt.

How much money would be enough to quit your day job?
To mitigate risk, how many months/years of paychecks stored in an escrow or some type of holding designated for payment would make this an acceptable amount of risk for you?
Would you be willing to train someone else? We need to increase the bus factor to more than one to start.
If this was possible, is this something you would even want to take on?
You should be compensated for your time. It's the only way this works. There should be a plan to remove you as the blocker. This should be an ongoing sponsorship or ownership of some kind to be sustainable.

I'd suggest forming an org of some kind and depositing the capital required to cover salaries + other overhead. Whether it's sponsorship or fundraising. There may already be OSS vehicles for this sort of thing. I honestly haven't looked into it much. At least cover @koskimas compensation as well as other maintainers. Have enough in a war chest to cover salaries for a reasonable length of time deemed acceptable by @koskimas to remove the "riskiness" from it.
It would be an ongoing effort. It might be a non-profit at first, but ideally, it would be self-sufficient and be able to operate with a profitable business model for longevity.

Of course, this is all moot if @koskimas isn't interested in actually pursuing this, regardless of removing risk.

@koskimas
Copy link
Collaborator Author

koskimas commented Mar 31, 2023

I'll take that as you're not interested?

I just don't see it happening. If you look at the few people that make a good living maintaining OSS project like the absolute OSS superstar Sindre Sorhus, you'll see that they maintain hundreds of projects that are waaaaay more popular than objection. It makes zero sense to think I would be able to earn enough maintaining just objection.

And even if that was somehow possible (it's not) I don't know if I'd still be interested. I love my current job.

@evilbuck
Copy link

evilbuck commented Mar 31, 2023

And even if that was somehow possible (it's not) I don't know if I'd still be interested. I love my current job.

thanks for the response. I was just trying to help solve the problem at hand. If you're not interested, it's a hard sell for something you ultimately don't want to do. Thanks for all your hard work and effort.

@koskimas
Copy link
Collaborator Author

koskimas commented Mar 31, 2023

And even if that was somehow possible (it's not) I don't know if I'd still be interested. I love my current job.

thanks for the response. I was just trying to help solve the problem at hand. If you're not interested, it's a hard sell for something you ultimately don't want to do. Thanks for all your hard work and effort.

Thank YOU for trying, I really appreciate the idea! But the facts just don't support it. There just isn't a way for small projects like objection.

@KrisLau
Copy link

KrisLau commented Mar 31, 2023

Not sure if this is a good idea but it might help to include that Objection is actively searching for maintainers / lead maintainer with a link to this thread in release notes for new versions moving forward? I feel like a lot of people don't check the issues tab unless they run into something on their project

@kibertoad
Copy link
Collaborator

I'm not sure that's a good way to recruit good maintainer. Ideally it should be someone from the community, who has been contributing for a while already.

@koskimas
Copy link
Collaborator Author

koskimas commented Mar 31, 2023

Here's what you can do: convince your employer/people in charge to pay like 50€ a month to 10 libraries your company uses the most. That's NOTHING compared to the value you get. It might just keep the projects alive. It might make OSS development somewhat more sustainable.

@swami-sanapathi
Copy link

Hope @koskimas finds sometime soon, until then @kibertoad is our star.

@alvinlys
Copy link

alvinlys commented Apr 5, 2023

@koskimas

I'll be blunt.

  • How much money would be enough to quit your day job?
  • To mitigate risk, how many months/years of paychecks stored in an escrow or some type of holding designated for payment would make this an acceptable amount of risk for you?
  • Would you be willing to train someone else? We need to increase the bus factor to more than one to start.
  • If this was possible, is this something you would even want to take on?

You should be compensated for your time. It's the only way this works. There should be a plan to remove you as the blocker. This should be an ongoing sponsorship or ownership of some kind to be sustainable.

I am unsure but why OSS communities not try to operate like subsriber-creator platform like any of media streaming (e.g. YouTube, etc.)?

@KrisLau
Copy link

KrisLau commented Apr 6, 2023

@alvinlys OSS communities usually do have it (through Github Sponsors or the other options I mentioned in the thread above) but the issue they have is most people who use it don't donate or donations are insufficient to make it sustainable. Money itself is also only one problem like koskimas explained. The main problem for him (and many other open source maintainers) is time & related to that, a community of active maintainers to help reduce the burden.

Youtube is probably a bad example to use though as it is a free entertainment platform where Google pays creators (comparitively) well even if they don't get donations. Unless GitHub/Microsoft decides to do a similar creator program, the main problem for OSS is a little different since it is entirely donation based. Plus once you post a video, it's done but if you publish a package, the issues pour in.

@lehni
Copy link
Collaborator

lehni commented Apr 14, 2023

We at ovos are maintaining our own fork of objection since quite some time. It's tricky to put time into maintenance of something that does not pay the bills, but since we're anyways working on maintaining objection for ourselves we could probably help at least with pushing new releases and some bugfixes.

It's a pity, @koskimas was always open to suggestions and was maintaining objection in such a chilled manner, really a gem.

@flipace would you like to work together on bringing some of these features over to objection? I've looked through your repo and they look good!

I think the interesting ones are:

https://github.com/ovos/objection.js/commits/upgrade-typescript-knex-node-types
https://github.com/ovos/objection.js/commits/fix-typings-for-graphs-with-nullable-fields
https://github.com/ovos/objection.js/commits/upsertgraph-unrelate-delete-props-on-individual-models
https://github.com/ovos/objection.js/commits/v3-mod-model-type-fix
https://github.com/ovos/objection.js/commits/v3-mod-m2m-unrelate-mysql-avoid-subqueries
https://github.com/ovos/objection.js/commits/v3-mod-join-wrap-fix
https://github.com/ovos/objection.js/commits/v3-mod-allow-type-override

Did I miss anything? If you're interested, feel free to start creating merge requests for these so I can start reviewing them.

@flipace
Copy link

flipace commented Apr 15, 2023

We at ovos are maintaining our own fork of objection since quite some time. It's tricky to put time into maintenance of something that does not pay the bills, but since we're anyways working on maintaining objection for ourselves we could probably help at least with pushing new releases and some bugfixes.
It's a pity, @koskimas was always open to suggestions and was maintaining objection in such a chilled manner, really a gem.

@flipace would you like to work together on bringing some of these features over to objection? I've looked through your repo and they look good!
...
Did I miss anything? If you're interested, feel free to start creating merge requests for these so I can start reviewing them.

@lehni I'll talk with @falkenhawk next week, and we should probably be able to create some PRs for those. A few of our changes are rather specific to our use case (such as ovos#14), but maybe they could still be interesting for some 👍

@koskimas
Copy link
Collaborator Author

I gave @lehni admin access to the repo as well. I've worked with him on another project and he's been contributing to objection for some years already. He's a brilliant developer and I trust him.

@lehni there's no pressure to "take over" or anything, but feel free to do so if you like/have time.

@lehni
Copy link
Collaborator

lehni commented Apr 16, 2023

Thank you @koskimas for the trust, the kind words and the introduction!

Since we are heavily relying on objection.js at lineto.com, I am happy to keep helping out with maintaining the library for the foreseeable future. I don't plan on implementing any major new features, but will work on keeping things up to date and fix bugs as we encounter them. I will also keep an eye on issues and PRs and try my best to review and merge them where I see fit. I've done a first round of that over the past days, luckily there aren't that many pending issues and PRs, which I see as a sign of the quality of the library itself.

Thank you for all your hard work on this great library, and all the best with your new adventures!

@KrisLau
Copy link

KrisLau commented Apr 19, 2023

Found another thing that might help with reducing workload: https://bountysource.com/

People could post their feature requests on there with a bounty. Someone picks up the issue and PRs and that way whoever picks up would only have to review it? Still would be a lot of work with reviewing PRs but might reduce the workload on the coding side of it.

@falkenhawk
Copy link
Contributor

falkenhawk commented Apr 22, 2023

We at ovos are maintaining our own fork of objection since quite some time. It's tricky to put time into maintenance of something that does not pay the bills, but since we're anyways working on maintaining objection for ourselves we could probably help at least with pushing new releases and some bugfixes.
It's a pity, @koskimas was always open to suggestions and was maintaining objection in such a chilled manner, really a gem.

@flipace would you like to work together on bringing some of these features over to objection? I've looked through your repo and they look good!

(..) If you're interested, feel free to start creating merge requests for these so I can start reviewing them.

@lehni I've set up PRs for all our remaining customisations and fixes.
#2404 #2405 #2406 #2407 #2408 #2409 #2410

btw, would it make sense perhaps to enable Discussions tab for this repo?

@capaj
Copy link
Contributor

capaj commented Apr 23, 2023

I like discussions because issues often have complex templates so starting a new issue can be much more time consuming than asking some simple question in a discussion thread.

@lehni
Copy link
Collaborator

lehni commented Apr 24, 2023

Great, thank you @falkenhawk! The PRs look great. I will review them soon and get back to you.

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests