Hello Charlie,
Glad to meet you!
Trac says I’m the person who closed that ticket two years ago. I don’t remember it specifically but hopefully I can give you some context.
When I closed that ticket, it hadn’t received any activity for two years. No one had reacted to the last comment which suggested to build the feature externally. There was no clear path of action within Django. Seeing that the ticket wasn’t getting much attention, if any, and wasn’t likely to go anywhere in its current state, I must have spent no more than a few minutes before deciding to drop it. The goal was to improve the signal / noise ratio in the ticket tracker. When there's over a thousand open tickets, some gardening helps keeping things under control, typically to keep it manageable to look for duplicates. I may have closed ten or twenty tickets in that session.
A wontfix isn’t absolute, though. If the idea is interesting, it will come up again and could be reconsidered. Perhaps this particular idea is interesting. If you explain why you disagree with the current conclusions of the ticket — by now you must have spent more time thinking about it that I ever did, if you can convincingly address the arguments raised in comments — especially those by committers, and if the discussion results in a consensus for making changes to Django in this area, then you can reopen that ticket or open a new ticket. The latter is often more convenient when the original ticket is several years old or contains a confusing discussion. You can add a comment in the old ticket pointing to the new one and vice-versa.
Django has evolved over more than ten years now and its current goals aren’t the same as when it was just open-sourced, or even when it only existed inside LWJ. Some features that you call inane are just quite old. They wouldn’t get added today; similar features wouldn’t get added either; but this isn’t necessarily a sufficient reason for removing them and break projects that use them. Sometimes we deprecate features that we consider undesirable but we try to do it conservatively.
Thank you for the kind words about Django’s documentation. It’s always a pleasure to know that the tens thousands of hours put by thousands of volunteers into writing them are appreciated. In fact, Django’s documentation is well known for being one of the worst among popular open-source web frameworks. This is expected as the Python ecosystem at large simply sucks at documentation. In this sad situation, if we want to improve, we have no choice but to raise the bar on documentation that gets added. Otherwise we’ll just keep digging our hole. Complain about the poor quality of the documentation and advocating merging documentation patches regardless of their quality in the same sentence doesn’t strike me as logical.
Okay, for the sake of clarity, I hope that:
1. everyone spotted the irony in the previous paragraph
2. you realize that your email wasn’t setting the tone for a constructive discussion, but hopefully we can bounce back :-)
So, with regards to this particular ticket, what new arguments can you bring to the table and what’s your proposal for moving forwards? Please build upon the discussion in the ticket like I explained above. Specifically, please explain why this has to live in Django.
djangopackages.com proves that tons of widely useful features live happily as third-party apps.
Best regards,
PS: We know that Trac's antispam isn’t very good but we had to reactivate it when spammers figured out how to use GitHub authentication. FYI, when I was managing the antispam, the spam / hame ratio was about 1000 : 1, so it isn’t exactly easy to configure. If anyone is experienced with Trac’s antispam and knows how to tune it, we’re all ears.