Discussion about forking Fluent-Nhibernate, in the Nhibernate repository to help community.

282 views
Skip to first unread message

Danilo Breda

unread,
Sep 12, 2020, 3:24:07 PM9/12/20
to nhibernate-development
From issue: https://github.com/nhibernate/nhibernate-core/issues/2531

I believe that many nhibernate developers know about FluentNhibernate at least in some project.

To understand the size of fluent-nhibernate adopters, they have 80% of the stars in the nhibernate github.

I use it in several of my projects, but lately, the project is dying, due to the lack of support from the creators of the project.
 - lack of reviewers with merge right
 - lack of reviewers with ability to release
 - no nugget access (need to create a new one as a lot of forks are doing)

We have a lot of problems using the latest versions of nhibernate due to lack of maintenance.
Here are some sample issues and pullrequests.
FluentNHibernate/fluent-nhibernate#430
FluentNHibernate/fluent-nhibernate#429
FluentNHibernate/fluent-nhibernate#456
FluentNHibernate/fluent-nhibernate#432
FluentNHibernate/fluent-nhibernate#453

This creates a very big problem with the community and a huge hole in the continued use of new versions of nhibernate, since fluent-nhibernate is no longer updated (issues of the problems above)

Interesting to understand that the contributors are not missing, many pull requests raised are not even viewed.

The idea is forking fluent-nhibernate, eventually in the nhibernate repository (not inside nhibernate-core). To continue to have the necessary support for at least nhibernate version updates.

I'm sure the community would cooperate a lot and be very happy about it.


Frédéric Delaporte

unread,
Sep 12, 2020, 3:44:47 PM9/12/20
to nhibernate-development
Adding a nhibernate/fluent-nhibernate repository seems to me a good option, as long as you are ready to handle it, and since contributors would be many, also as long as you are ready to share merging/releasing access with people most worthy of it.

May you have a way to attract the attention of such potential would-be contributors here, to let them share their thoughts?

Is there also any opened issue on the current Fluent-Nhibernate repo, asking the owner to take action for giving available contributors the required rights for replacing current owners?

About the NuGet package, you may be able to reclaim it, as NuGet has a procedure for abandoned packages, which I have already used successfully. It is quite lengthy, but well worth it, especially for a popular package. They call it dispute resolution, but this does also apply for abandoned packages. https://docs.microsoft.com/en-us/nuget/nuget-org/policies/dispute-resolution
If current owners of the package do not answer at all, and you can explain why you should get ownership of it, it should work. Of course you will have more weight in reclaiming it if you already have an active fork of the project.

Gunnar Liljas

unread,
Sep 12, 2020, 4:32:25 PM9/12/20
to nhibernate-...@googlegroups.com
I agree that it would be a good idea. I prefer FNH over other options
any day, but the diminished support is troubling. Perhaps making it
"officially NHibernate" can be a bit confusing, since there are
"competitors" inside NHibernate, but anything that keeps it alive for
now is good.

I guess the most important thing is to get ownership and solve the low
hanging fruits.

/G
> --
>
> ---
> You received this message because you are subscribed to the Google Groups "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to nhibernate-develo...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/nhibernate-development/59eb4946-db8f-4b32-ab89-ef4dca138d08n%40googlegroups.com.

Frédéric Delaporte

unread,
Sep 13, 2020, 7:01:08 AM9/13/20
to nhibernate-development
About ownership of the package, I have sent the following message to its current owners. It seems to me as a good way to go. (If other members of the NHibernate organization disagree, we will just have to reject the ownership.)

-----------

Hello,

I am one of the admin of the NHibernate repository. We recently received a request for receiving a fork of FluentNHibernate, due to its current repository seeming abandoned.
There is an opened issue in its repository (https://github.com/FluentNHibernate/fluent-nhibernate/issues/459), and a discussion on the matter on NHibernate development list (https://groups.google.com/g/nhibernate-development/c/lhNOJuUatWA/m/BRjf7j2-BAAJ).

In case you, current owners, are no more available for maintaining this project, could would still spare some time to manage handing it over to some active contributors?

A simple and quick step could be adding the NHibernate organization on NuGet (https://www.nuget.org/profiles/nhibernate) as owner of this package, which would allow us to give package update right to other contributors.
(It does not mean the NHibernate organization will start maintaining this package, we will most probably delegate this to willing contributors of FluentNHibernate. And this is currently an initiative of mine, which may be refused on our side. But there is no harm on your side to already send us a request for taking ownership of the FluentNHibernate package on NuGet: the way it works, the organization has to accept it, so if other members disagrees, we will be able to cancel it.)

May you also state if forking the repository is your preferred option, rather than giving required rights to would be contributors or getting active again?

Thanks for your attention,

Best regards,

Frédéric

Gleb Chermennov

unread,
Sep 14, 2020, 4:38:25 AM9/14/20
to nhibernate-development
Hello.
I have administrative access to Fluent NHibernate github repo. I also can publish new nuget packages.
I can only speak for myself.
I agree it's time for more people to participate in Fluent NH development as maintainers. 
Transferring Fluent NHibernate repo to NH organization on github should also help move project forward.
As for myself, I don't have enough time any more, unfortunately. I can take a look at pending pull requests, time permitting.
I've written an email to Jorge and James asking their opinion on the matter.


воскресенье, 13 сентября 2020 г. в 14:01:08 UTC+3, Frédéric Delaporte:

Jorge Rodríguez Galán

unread,
Sep 14, 2020, 4:38:25 AM9/14/20
to nhibernate-development

Hi there 

Sounds like a good idea to me. I started a few years ago requesting the ownership of the project from James and Gleb to give it extra life, mostly with the migration to NETCore. I am sorry I could not continue to maintain it, and that's mostly because I'm not using hibernate in the projects I'm working on right now. I would be delighted and I think I speak on behalf of James and Gleb to share ownership with someone who can give continuity to the project, and if it were directly in NHibernate organisation, much better.

Best Regards,

Jorge

James Gregory

unread,
Sep 14, 2020, 4:38:25 AM9/14/20
to nhibernate-development
Hey folks,

James Gregory here, original creator of Fluent NHibernate and I suppose official abandoner too.

Thanks for raising this question. I have no objection to transferring ownership to NHibernate. In fact, I much prefer transferring it to the NH organisation than transferring it to an individual. But just for clarity, who are we proposing would maintain the codebase? There’s been nothing stopping anyone from reaching out to me so far, it’s not like I’ve been refusing help (don’t confuse the occasional drive-by PRs for offers of help). Who's going to be reviewing PRs, cutting new releases, fixing the issues that come up with new NH versions? etc...

Historically, we’ve had a very difficult time recruiting people to help maintain Fluent NHibernate. It’s abandonment is because there’s been literally 3 people interested in long-term maintenance over its lifetime (10+ years now), and whilst we have occasionally received Pull Requests they’ve never converted into active maintainers. So I’m skeptical that simply moving who owns the package is suddenly going to revitalise the project without a plan in place for someone to take ownership and steer the project.

Is anyone here proposing to take maintenance responsibilities? If so, brilliant! If not, I don't see much point in transferring an abandoned repo to a different place to remain abandoned, so another option is we officially end-of-life Fluent NHibernate.

Cheers,

Gleb Chermennov

unread,
Sep 14, 2020, 5:04:55 AM9/14/20
to nhibernate-development
James has a point.
In my experience - one person can do all that (theoretically), but it's probably too much to ask if he or she has a full-time job.

понедельник, 14 сентября 2020 г. в 11:38:25 UTC+3, James Gregory:

Gudmundur Magnusson

unread,
Sep 14, 2020, 9:26:54 AM9/14/20
to nhibernate-development
I'm still using FNH in several projects, so it would really good if we can move this into a repository within the Nhibernate organization.

If you want to setup a small group keep this going, i'll gladly help in any way I can.

James Gregory

unread,
Sep 15, 2020, 3:22:25 AM9/15/20
to nhibernate-development

Hello again,

I just read an excellent post from the Moment.js team about their plans for their library: https://momentjs.com/docs/#/-project-status/ and was reminded of this discussion.

I’d recommend taking a similar approach. NHibernate takes over the repo, but declares it in maintenance-mode and will only provide critical patching. All users are encouraged to migrate away, and new users are directed elsewhere. That's done explicitly so there's no risk of people accidentally adopting an end-of-life library.

Cheers

Danilo Breda

unread,
Sep 15, 2020, 7:44:12 AM9/15/20
to nhibernate-development
First of all thanks for all the work done so far, it was amazing.

I have been trying to help fluentnhibernate for some time now and I raised this question because I have many business friends who ask me about it.
At the company I work for, we have used nhibernate and fluentnhibernate for more than 5 years, in addition to meeting several other companies that use them.

I believe that the option for we officially end-of-life Fluent NHibernate, is something very sad and it will let anyone to fork fluentnhibernate and continue it as an unofficial project e become a mess, because there are projects that depend on it. As I previously raised the community on top of this project is quite interest in contribute!

I believe the best option would be for NHibernate to become the "owner" of the package(maybe adding a nhibernate/fluent-nhibernate repository?) for the idea of ​​continuity of the package over a long period, to add and remove people to help maintain Fluent NHibernate.

I saw that Frédéric Delaporte is also interested in help, at least in the beginning with this transition.

As a contributor and active maintainer on github projects like https://github.com/ZeusAutomacao/DFe.NET , i have time available and i can contribute whatever is necessary to maintain the project.

James Gregory

unread,
Sep 15, 2020, 6:59:39 PM9/15/20
to nhibernate-development

Hey Danilo,

If you think there is a community of contributors just ready to get going, great!

The GitHub repository and the NuGet package are a pair. I will hand over both of them to the NHibernate organisation. But to be clear, I won’t hand over just the NuGet package on its own. Please let me know who from NHibernate I should speak to to get this started.

If the NHibernate organisation does not want to take ownership of the GitHub repository, then I won’t be changing ownership of the NuGet package either. In that case, I suggest you hard fork Fluent NHibernate, form your community of contributors and publish a new open source project (“New Fluent NHibernate”) with its own repository and NuGet package. Once you’ve done that, I will officially declare my packages and repositories archived and forward any users to your new package.

I know this sounds painful and that I'm being obstinate, but there have been many instances in recent years of naive package maintainers (me in this scenario) handing over ownership of abandoned open-source projects only to have the new maintainers use the existing install-base as an attack vector. For example, event-stream was exactly like this. So I want to either move everything to the official organisation where our users can trust it's being handled responsibly, or declare the project done and refer people to a successor.

For what it's worth, I'm sure you're all very trust worthy. But I don't know you. And the responsibility is on me if I hand this over to someone who abuses that privilege.

So for actions:

1. I need someone from the NHibernate organisation to declare that they will (or won't) take ownership of the GitHub repository and the NuGet package. I'm sorry, I don't know who that is now so you'll have to make it clear to me.

Cheers,

Alexander Zaytsev

unread,
Sep 15, 2020, 7:30:47 PM9/15/20
to nhibernate-...@googlegroups.com
Hi James,

I'm happy to take ownership over FluentNHibernate. I'm not going to retire from contributing to NHibernate in the near future, so you can count on me to take ownership over Github and NuGet assets. I was kicking NHibernate around for about 9 years now.

I have some ideas where the Fluent NHibernate could move (definitely not on the event-stream's path), but the hard-forking was a show stopper. I've had a few not so pleasant experiences with hard forking so would like to avoid it if possible.

So, to way forward please add following NuGet organization as an owner: https://www.nuget.org/profiles/nhibernate
And transfer the repository to following GitHub organization: https://github.com/nhibernate/

Best Regards,
Alexander

Frédéric Delaporte

unread,
Sep 16, 2020, 11:34:38 AM9/16/20
to nhibernate-development
Ok, all good for me.

So I let you Alexander handle the transfer to NHibernate if James goes on with the transfer.

Best regards,
Frédéric

Gunnar Liljas

unread,
Sep 16, 2020, 2:47:30 PM9/16/20
to nhibernate-...@googlegroups.com
Event-stream's path? Did I miss something?

Best regards
Gunnar

James Gregory

unread,
Sep 16, 2020, 10:26:08 PM9/16/20
to nhibernate-development
Just following this up: Fluent NHibernate has now been transferred to the NHibernate organisation. Thanks Alexander! This is a great outcome, probably the best I could've hoped for. Thanks everyone.

Jorge Rodríguez Galán

unread,
Sep 17, 2020, 4:07:57 AM9/17/20
to nhibernate-...@googlegroups.com
Thank you James, and thank you Alexander and Frédéric for continuing with the project.

Best Regards,
Jorge

You received this message because you are subscribed to a topic in the Google Groups "nhibernate-development" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/nhibernate-development/lhNOJuUatWA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to nhibernate-develo...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nhibernate-development/5ed0f8de-4e46-4479-8aab-2d42367fc48an%40googlegroups.com.

Gleb Chermennov

unread,
Sep 21, 2020, 8:42:08 AM9/21/20
to nhibernate-development
Thought I'd drop my 0.02$ for the future maintainers.
When I was supporting the project (on and off in 2012-2016) - I found several problems (it may have gotten better with time because of the tooling):
- running tests with different NHibernate versions. I've found it useful to be able to say e.g. "Fluent v 2.2 won't work with NH 4.2.x". That can also be ran to precisely calculate nuget dependency ranges. I had some script that modified packages.config file for this
- running tests for (and in general supporting) different .NET runtimes. I published a separate package for .NET 3.5 users who can't update for various reasons (desktop apps probably?). This was a good idea in terms of compatibility, but it may become a huge pain if you plan to deliver bugfixes there
- lack of end-to-end tests. I realise Fluent only provides an easier way to map classes to DB, all the heavy work is done inside NHibernate, but still - it'd be great if before pushing new Nuget version you can run your tests against Postgres/MySQL/Sql Server instance and in 10 minutes get "ok, basic scenarios are working"

среда, 16 сентября 2020 г. в 02:30:47 UTC+3, haz...@gmail.com:
Reply all
Reply to author
Forward
0 new messages