For those who have been following or been involved with recent development of Ninja, you’ll notice that for about a year, almost all development has come to a halt. About 50 PRs have built up on the GitHub repository, many of which fix crucial issues, but are not getting any feedback and have no path forward to getting them merged. PRs that fix documentation will get merged in a day, but most PRs that touch code are left out to dry. Among these PRs include performance improvements, the validation vs. serialization split, my own fix for aliases, and much more. It’s getting desperate enough that people are posting monkeypatches in the PRs.

I have spoken with Ninja’s maintainer a bit about the issue and I think it’s mostly just a split in priorities between him and myself. That’s totally reasonable and respectable, its his project. But as a user of the library, I can’t really say that I feel supported by this direction, and I would assume from the many repeated requests for review from the PR submitters that most in the community aren’t too happy either. Most of these existing issues aren’t complete showstoppers, but they are annoying and frustrating to work with, especially if you are using the library at scale.

So I’m forking the library under the new name, Django Shinobi, here. https://github.com/pmdevita/django-shinobi. I plan to lead the library for the longterm future as my job currently depends on it. Docs are sort of up but still need the workflow ironed out, and PyPI will be up later.

There aren’t any current plans to hard fork. Ninja does still get some minor changes here and there, and I plan to pull them downstream when possible. We may drift from full compatibility over time, especially as some of the larger scale changes are made, but that will be gradual. I’m not looking to separate from Ninja as much as provide some kind of solution for its current problems.

Of course, my end goal is to merge this project back upstream with Ninja. I believe Ninja still has the same end goals as we do, so it really makes the most sense to have one library. But, I think it’s clear that one library isn’t working right now, and a fork is necessary if we want to see things get fixed.

For now, if you have any PRs currently to Ninja that you want merged, or wanted to open any PRs but were discouraged from doing so, please open a PR to Shinobi! I’m also going to be starting another discussion for the project’s roadmap so jump in there if you’d like to add your interest for a feature or fix, or suggest another.

I’d like to also recruit a few more core maintainers to help get eyes on things and make decisions, so reach out if that’s something your interested in.