Chess.jl could use some love

Hi all,

It looks like Chess.jl by @Tord has had no activity since April 2024 and its v0.7.6 never got registered. As a result, users still pull the deprecated Formatting.jl dependency via Chess.jl@0.7.5.

I have opened a “Request for maintenance” issue on GitHub, but wanted to flag it here as well. It would be a shame to let this otherwise excellent package fall behind.

9 Likes

I am certain this request was made in good faith, but nonetheless it comes across to me as a little impolite to publicly declare someone else’s package unmaintained and ask for it to be yoinked to new ownership a mere hour after opening the issue in the package asking about maintenance status. I would have let the package author have a bit more time to respond.

11 Likes

@adienes That indeed sounds reasonable and I had no intention of being impolite—all I wanted to do is to use more than one channel for comms.

Mentioning issues, #41 on GitHub succinctly addresses an issue that affects all users of Chess.jl, provides what looks like a rather simple fix that would likely have taken the maintainer <20 minutes, and it’s back from April 2024 without any action or reply. The GitHub profile for Tord Romstad does not show any activity since that time. Given those observations, my “Bayesian” reasoning (always subjective) clearly figured that the REPO is abandoned or the maintainer completely under water.

In either case, the package does deserve maintenance—I would also try to help, even though I am still a newbie to Julia.

4 Likes

The key point is that the code is open source! It’s available for maintenance! Anyone can fork it, apply changes, and propose them back.

Nobody has done that “simple fix” — not even on a fork — as far as I can see. In fact nobody has proposed any changes since May 2023. It’s not just on a single person here.


The thing that’s special about that particular repository is that it’s registered in the General registry, so it’s what you get when you add Chess. Which is indeed quite special. So there is a rough process for requesting that a repo gets transferred in the event that the only maintainer isn’t available. But it’s not clear that’s the case here — not yet, anyhow.

8 Likes

Sure, it’s open source, it’s not just on a single person, and indeed, there could have been more help than just pointing out what could be done.

I will try to fix the issue in a fork and then open a PR as to “show some love” :slight_smile:

(BTW the “dispute procedure for packages” that you referenced seems to still be an open issue?)

Yeah, that’s why I called it a “rough process.”

But we’re a long ways from knowing that Chess.jl needs a new maintainer or even a new home— we first need the work itself! That part of the task is not gated by the repository owner or a maintainer. Anybody can do that task.

3 Likes

That’s great! I’m definitely not throwing stones here; my own house is far too glassy for that. Welcome aboard :slight_smile:

1 Like

That’s that and let’s hope that @Tord finds time—or help—to register the new version now. :slight_smile: (I will try to reach him via E-Mail as well as per procedure!)

6 Likes

As of today, I have written an E-Mail to Tord Romstad (using the address given for his GitHub profile):

Hi Tord,

I hope this message finds you well.

As a chess fan and recent Julia convert (from Wolfram Language), I’ve added your excellent package Chess.jl to my default environment. Unfortunately, as you noted in issue #41, Chess.jl still references the deprecated Formatting.jl package. Your attempted fix never registered due to a minor Project.toml formatting bug.

I have now opened PR #43 that corrects this and enables registration with @JuliaRegistrator.

Given the period of inactivity, I’ve also posted a “request for maintenance” on the repo and Julia Discourse. Please don’t take this as pressure—my intent is simply to keep a great package healthy and accessible for the community. If you’re short on time for maintenance, perhaps the community could help keep Chess.jl healthy—either via additional maintainers or by moving the repo to a Julia organization.

Thank you for your work on Chess.jl—it’s too good a package to let lapse.

7 Likes

I submitted a few PRs to Chess.jl a while back (I have the second most contributions on that repo… 9 commits vs 135 haha). I maintained a private fork with of it with significant changes for a while for some analysis that I was doing, but I never really considered maintaining a public fork of it (I don’t really know the etiquette and it was overall pretty stable so I didn’t want to be rude).

If Tord is open to it, I would be interested in taking over maintenance of the package.

11 Likes

I’m sure the chess aficionados are aware of this.

The author of Chess.jl, Tord Romstad, is also an author of Stockfish, and is the author of its predecessor. Stockfish is one of (if not the) strongest chess engines.

6 Likes

I can, of course, only speak for myself. I am well aware of Tord’s tremendous contributions and expertise — all of which I hold in the highest regard.

Still, I find it difficult to see how this recognition offsets his long absence and silence? It’s simply unfortunate to watch such excellent work lose momentum, especially when there seem to be several ways forward that would preserve both Tord’s rights and his well-deserved recognition.

1 Like

None of that means he has seen your email or this topic, nor does it mean he is able to respond, nor does it invalidate who he is.

Now that there’s a pending pull request (thanks @gwr!), a volunteer to take over maintenance (thanks @mcognetta!), and a few attempts at contacting Tord (Request for maintenance · Issue #42 · romstad/Chess.jl · GitHub and a personal email), it seems like the situation has indeed progressed since July. I think the next steps would be to:

  • Establish a new home — is that @mcognetta’s fork? Or is there a good community org for this? If there’s not a good community org, is there a second maintainer that could join @mcognetta?
  • Open an issue or pull request on the General registry requesting to transfer the name to the new home. There will probably be a few more contact attempts from the registry maintainers at that point.
5 Likes

In my opinion, when we take existing projects from an inactive maintainer, they should always be moved into an organization. If no suitable organization exists, it is fine to create a new one (JuliaChess, in this case). That organization must have multiple public owners, and of course the original maintainer should be invited as an owner if they ever re-appear. Forking to a personal account just sets up the same situation happening again in the future. This being a form of “eminent domain” enacted by the community, the package is now essentially “owned” the community, not a particular individual (even if there is only one particular individual serving as the new maintainer for the time being)

20 Likes

This is also what the Julia package orphanage exists for.

1 Like

My impression is that the Orphanage is a place for packages that are unmaintained (or, only minimally maintained by volunteers merging drive-by patches). As in, if I had a package that I was no longer able to maintain, I could transfer it to the orphanage. That’s a good thing to have, and it would be nice for people to actively “retire” their package into that org. Unfortunately, it doesn’t seem like that ever got much traction.

Most of the time, when a registry maintainers switches the URL of an abandoned package to a new org, it’s because a new maintainer has appeared, who will be managing the project going forward (as in this case). The connotations of the Orphanage (“unmaintained”) aren’t ideal in that situation, and a more topical / active org seems preferable.

6 Likes