Skip to content

mrgit is deprecated #254

Description

@pomek

TL;DR

mrgit is no longer maintained. v5.1.0 is the final release. The package stays on npm and existing installations keep working, but there will be no new features, bug fixes, or security patches.

If you still depend on mrgit, please leave a comment below before the end of 2026.

How it started

mrgit started in January 2017 (as mgit2 and renamed later) as a tool for CKEditor 5. At the time, CKEditor 5 wasn't one repository. It was dozens of them: the engine, the UI, and every feature lived in its own repository and was released as its own npm package. That gave us clean boundaries between packages, but daily work was hard. One change often touched many repositories, and every developer had to clone, sync, branch, commit, and push them all.

mrgit did one thing: it read a single file and ran git operations across all the repositories at once:

  • sync clones or updates every repository,
  • checkout switches branches everywhere,
  • status shows the whole project in one table,
  • exec runs any other command in each repository.

Later we added presets, a $rootRepository, and recursive cloning, as our setup grew.

Why we no longer need it

In 2020 CKEditor 5 moved to a monorepo. All the feature packages moved into one repository, and the main reason for mrgit was gone. After that, mrgit stayed in use in fewer internal projects.

Those projects no longer need it either. As of today, no team at our company uses mrgit.

Why we are deprecating instead of keeping it alive

We could keep merging dependency bumps and call it maintained. We don't think that would be honest, for three reasons:

  • mrgit runs commands on your machine. It clones repositories, runs git, and runs any shell command you pass to exec. Code like that needs an owner who handles security reports and ships fixes quickly.
  • Nobody uses it every day anymore. Before, we found problems ourselves, because our own work broke. Without internal users, a regression in a new git or Node.js version can go unnoticed for months. A tool that says it is maintained but isn't is worse than a tool that clearly says it is not.
  • Dependency updates are not maintenance. Automated PRs would keep the repository looking active while nobody tests the result. We would rather stop them and say so.

What changes

We do this in steps, so nobody is surprised:

When What
Now This issue, a notice in the README, and [DEPRECATED] in the repository description.
v5.1.0 (September 25, 2026) Final release. Every command prints a deprecation notice to stderr. The stdout output and the exit code do not change. Set MRGIT_NO_DEPRECATION_WARNING=1 to hide it.
After v5.1.0 All versions are marked as deprecated on npm. npm install shows a warning.
After December 31, 2026 If nobody tells us they depend on mrgit by then, we archive the repository (read-only).

What this means for you

  • Your setup keeps working. We will not unpublish any version, and nothing breaks on its own.
  • No more fixes. Bug reports and PRs will not be handled.
  • Forks are welcome. mrgit is MIT-licensed. If it is important to you, fork it and continue it.
  • Still using mrgit? Tell us below. This is the most useful thing you can do. If we hear from active users before we archive, we will discuss it with you.

Thank you to everyone who used mrgit, reported issues, and contributed code in the last nine years.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions