objection.js icon indicating copy to clipboard operation
objection.js copied to clipboard

The future of Objection.js

Open koskimas opened this issue 2 years ago • 6 comments

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 avatar Nov 02 '22 12:11 koskimas

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!

devinivy avatar Nov 02 '22 14:11 devinivy

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?

lehni avatar Nov 07 '22 20:11 lehni

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.

mmmmmrob avatar Nov 09 '22 21:11 mmmmmrob

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!

jorgebv avatar Nov 17 '22 01:11 jorgebv

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?

ErisDS avatar Nov 22 '22 09:11 ErisDS

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

hkjeffchan avatar Nov 23 '22 12:11 hkjeffchan

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! 🙌🏻

mgan59 avatar Dec 06 '22 14:12 mgan59

@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 ♥️

vladshcherbin avatar Dec 17 '22 09:12 vladshcherbin

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

kasvith avatar Dec 21 '22 14:12 kasvith

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

Alexigbokwe avatar Dec 27 '22 18:12 Alexigbokwe

@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 avatar Jan 02 '23 20:01 kibertoad

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

example:

  • https://github.com/glensc/node-cached_property/pull/4

I could send a PR if there's interest.

glensc avatar Jan 02 '23 21:01 glensc

@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.

laurisvan avatar Jan 08 '23 08:01 laurisvan

@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?

koskimas avatar Jan 09 '23 00:01 koskimas

Regardless of this project's future, a release needs to be tagged so that it works with the last 2 TS releases (4.8 & 4.9).

The fix is already in: #2307

tonyka avatar Jan 19 '23 05:01 tonyka

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

kibertoad avatar Jan 19 '23 07:01 kibertoad

@kibertoad I sent a new invite

koskimas avatar Jan 19 '23 11:01 koskimas

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.

iamnashdev avatar Feb 08 '23 13:02 iamnashdev

@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.

lehni avatar Feb 28 '23 15:02 lehni

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:

  • https://www.codeshelter.co/projects/add/ (requires a current maintainer to add)
  • https://github.com/garritfra/seeking-maintainers.net (EDIT: Added!)

@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

KrisLau avatar Mar 03 '23 22:03 KrisLau

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 avatar Mar 04 '23 06:03 flipace

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.

capaj avatar Mar 16 '23 17:03 capaj

You should also take a look at drizzle ORM. It seems to be going in the same direction as objection but with amazing typescript support. And if I've understood correctly, the team behind it is VC backed.

koskimas avatar Mar 19 '23 15:03 koskimas

is there a monthly donation amount that would maybe make it viable for you to continue sustaining the project

To answer this and other related questions: I've personally never wanted money for my OSS work. In my case the problem is time. 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. Any income from OSS could disappear at any time. I mentioned the lack of money in OSS because I see it as the larger problem and part of the reason why objection doesn't have more maintainers.

koskimas avatar Mar 19 '23 15:03 koskimas

@koskimas , really appreciate the work you've put into this library. I have enjoyed using it on my project. I totally understand your time constraints and having to walk away.

That said, any chance you can update the npm package as it's not sync'd with master? https://github.com/Vincit/objection.js/issues/2367

rocketjsquirrel avatar Mar 24 '23 14:03 rocketjsquirrel

@rocketjsquirrel You might want to try using patch package until a new maintainer is found.

KrisLau avatar Mar 24 '23 17:03 KrisLau

@KrisLau , good suggestion. I ultimately got it work referencing the package like so: "objection": "https://github.com/Vincit/objection.js/archive/master.tar.gz"

Not the most robust solution, but it'll work for now

rocketjsquirrel avatar Mar 24 '23 18:03 rocketjsquirrel

To answer this and other related questions: I've personally never wanted money for my OSS work. In my case the problem is time. 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. Any income from OSS could disappear at any time. I mentioned the lack of money in OSS because I see it as the larger problem and part of the reason why objection doesn't have more maintainers.

@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.

evilbuck avatar Mar 29 '23 14:03 evilbuck

Hey everyone. I'll start addressing outstanding PRs and releasing new versions shortly. It won't be super fast, as I have other projects to tend to, but I'll do my best :)

kibertoad avatar Mar 29 '23 14:03 kibertoad

Hey everyone. I'll start addressing outstanding PRs and releasing new versions shortly. It won't be super fast, as I have other projects to tend to, but I'll do my best :)

I must have missed an announcement. Are you taking over?

evilbuck avatar Mar 29 '23 15:03 evilbuck