What to do about stale or abandoned dub packages?

ShadoLight ettienne.gilbert at gmail.com
Tue Feb 18 12:44:28 UTC 2020


A problem that I have now run into on a few occasions, and which 
I suspect is very common in D-world, is that some dub packages 
are abandoned, or the author has moved on to other things leaving 
the package in limbo and simply not maintained anymore.

As a result, over time - specifically as a result of changes to 
the compiler and/or language, deprecations, etc - these packages 
cannot successfully build anymore!

This is a real problem, even with some packages that were popular 
once upon a time!

Case in point, Vadim Lopatin (@buggins) contributed both the 
dlangui and dlangide packages - which by all accounts were an 
enormous amount of work! Both these packages, even though some 
issues remained, were fully working and quite useful on release. 
And then he just disappeared - since August 2019 no pull-requests 
have been merged (some requests are still open).

The current state of affairs is that both these packages don't 
build anymore as a result of changes to the language and/or 
compiler. I tried to use the dlangui package some time ago, when 
it was still building, and found it reasonably pleasant to work 
with.  Yet I ran into a minor problem as a result of an 
incomplete feature - which was easily resolved once someone 
confirmed it was incomplete and not actually my stupidity [1].

However, when I looked at the github dlangui project [2], a 
thought struck me... the project has been forked 96 times and I 
wonder; are there any fork that is actually more up to date and 
complete than the original, which is what dub always references?

With so many forks it stands to reason that the package must have 
been useful to at least some people. Did they fix some bugs or 
added some features? Are they maintaining and updating their 
forks to remain in sync with the evolution of the compiler?

The problem is it is really hard to figure out which fork is the 
best one to use without investigating each and every one of them. 
Maybe it is better to flip the situation around - I wonder, is 
there some way for someone like this to propose their fork as the 
'latest' version of a dub package (and possible for the community 
to vote or somehow confirm), rather than the 'original', but now 
stale/abandoned package, that dub now references? At least this 
will indicate the person is interested to become the active 
maintainer for said package. And if he/she leaves eventually, 
ditto for the next person!

I know dub cannot currently do this (and maybe there are 
licensing issues to take into consideration), but is this 
something other people think is worth to consider? Maybe dub can 
still reference the original to credit/preserve the original 
project/author, but have the notion of an 'active' github package 
link that can change...?

Every now and again there are questions as a result of this issue 
in the forums, but typically phrased as how to use an alternative 
git branch [3], which is typically just a symptom of this 
situation we currently have.

This would also make dub more useful for everybody - packages 
will have a longer lifespan and, as a side-effect will also 
improve the ratio of building vs failing packages.

What say you?

[1] 
https://forum.dlang.org/post/wcpraclpsdmqvclzqzfa@forum.dlang.org
[2] https://github.com/buggins/dlangui/network/members
[3] https://forum.dlang.org/post/r2bhv9$2qrc$1@digitalmars.com



More information about the Digitalmars-d mailing list