# Chess.jl could use some love

**URL:** <https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782>\
**Category:** Community\
**Tags:** package, general-registry, maintenance-request, chess\
**Created:** [July 16, 2025, 3:27pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782 "2025-07-16T15:27:02Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![gwr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gwr/32/33632_2.png) [@gwr](https://discourse.julialang.org/u/gwr)\
**Post date:** [July 16, 2025, 3:27pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/1 "2025-07-16T15:27:02Z")

</div>

Hi all,

It looks like [Chess.jl](https://github.com/romstad/Chess.jl) by @Tord has had no activity since April 2024 and its `v0.7.6` [never got registered](https://github.com/romstad/Chess.jl/issues/41). 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](https://github.com/romstad/Chess.jl/issues/42) on GitHub, but wanted to flag it here as well. It would be a shame to let this otherwise excellent package fall behind.

---

<div class="post-metadata">

**Author:** ![adienes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adienes/32/37459_2.png) [@adienes](https://discourse.julialang.org/u/adienes)\
**Post date:** [July 16, 2025, 3:52pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/2 "2025-07-16T15:52:54Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![gwr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gwr/32/33632_2.png) [@gwr](https://discourse.julialang.org/u/gwr)\
**Post date:** [July 16, 2025, 4:14pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/3 "2025-07-16T16:14:15Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [July 16, 2025, 4:32pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/4 "2025-07-16T16:32:33Z")

</div>

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.

> [@gwr](#):
>
> an issue that affects all users of `Chess.jl`, is rather simple to fix (would likely have taken the maintainer \<20 minutes), and **it’s back from April 2024 without any action**.

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

> <https://github.com/JuliaRegistries/General/issues/25367>
>
> The general registry of Julia is a centralized registry similar to NPM. NPM has …a disputes procedure for the cases where there is an unmaintained package, and new maintainers want to continue developing it.
> 
> https://docs.npmjs.com/cli/v6/using-npm/disputes
> 
> \> TL;DR
> \> Get the author email with npm owner ls \<pkgname\>
> \> Email the author, CC support@npmjs.com
> \> After a few weeks, if there's no resolution, we'll sort it out.
> 
> In other words: NPM allows the new maintainers to email the old owners of the package and ask them to give them write access. If the authors agree, or they do not respond, NPM itself moves the package to the new owners. 
> 
> Given the fact that General.jl is similar to npm, there should be a similar mechanism for handling such cases.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [July 16, 2025, 5:16pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/6 "2025-07-16T17:16:56Z")

</div>

> [@gwr](#):
>
> (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.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [July 16, 2025, 5:51pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/8 "2025-07-16T17:51:03Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![gwr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gwr/32/33632_2.png) [@gwr](https://discourse.julialang.org/u/gwr)\
**Post date:** [July 16, 2025, 6:03pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/9 "2025-07-16T18:03:17Z")

</div>

> <https://github.com/romstad/Chess.jl/pull/43>
>
> \### What
> 
> The \`Format\` package was incorrectly referenced in the \`Project.toml…\`. This has now been fixed and tested for \`Format@1.3.7\`.
> 
> \### Why
> Users pulled a deprecated dependency on \`Formatting.jl\` when using \`Chess.jl\`.
> 
> \*\*Closes #41\*\*

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

---

<div class="post-metadata">

**Author:** ![mcognetta](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mcognetta/32/3826_2.png) [@mcognetta](https://discourse.julialang.org/u/mcognetta)\
**Post date:** [October 16, 2025, 7:14am UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/11 "2025-10-16T07:14:03Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![jlapeyre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlapeyre/32/4514_2.png) [@jlapeyre](https://discourse.julialang.org/u/jlapeyre)\
**Post date:** [October 16, 2025, 1:43pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/12 "2025-10-16T13:43:23Z")

</div>

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.

[![](https://global.discourse-cdn.com/julialang/original/3X/e/8/e88f161ecaae35d79f1826ab846bdcb2bee139de.jpeg "Parallelism and selectivity in game tree search") ](https://www.youtube.com/watch?v=R0L3AuJUkk0)

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [October 23, 2025, 9:41pm UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/14 "2025-10-23T21:41:17Z")

</div>

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](https://github.com/romstad/Chess.jl/issues/42) 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.

---

<div class="post-metadata">

**Author:** ![goerz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerz/32/3269_2.png) [@goerz](https://discourse.julialang.org/u/goerz)\
**Post date:** [October 24, 2025, 3:06am UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/15 "2025-10-24T03:06:12Z")

</div>

> [@mbauman](#):
>
> Establish a new home — is that @mcognetta’s fork? Or is there a good community org for this?

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)

---

<div class="post-metadata">

**Author:** ![tecosaur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tecosaur/32/23206_2.png) [@tecosaur](https://discourse.julialang.org/u/tecosaur)\
**Post date:** [October 24, 2025, 7:00am UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/16 "2025-10-24T07:00:39Z")

</div>

> [@goerz](#):
>
> 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.

This is also what the [Julia package orphanage](https://discourse.julialang.org/t/julia-package-orphanage/130554) exists for.

---

<div class="post-metadata">

**Author:** ![goerz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerz/32/3269_2.png) [@goerz](https://discourse.julialang.org/u/goerz)\
**Post date:** [October 24, 2025, 11:55am UTC](https://discourse.julialang.org/t/chess-jl-could-use-some-love/130782/17 "2025-10-24T11:55:44Z")

</div>

My impression is that the [Orphanage](https://github.com/JuliaOrphanage) 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.
