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