Top
Best
New

Posted by dcreager 1 day ago

Give Django your time and money, not your tokens(www.better-simple.com)
366 points | 143 commentspage 2
Havoc 4 hours ago|
Interesting breadth of takes in the comments.

Think most people recognize though that AI can generate more than humans can reviewing so the model does need to change somehow. Either less AI on submitting side or more on reviewing side (if that’s even viable)

zenolove 4 hours ago|
Yeah, what happened to "review your own code first".

Even before AI I used to ban linting so I could spot and reject code that clearly showed no effort was put in it.

First occurrence of "undreadable" got a note, and a second one got a rejection. And by "undreadable" I do not intend missing semicolons or parenthesis styles or meaningless things like that. I mean obscured semantics or overcrowding and so on.

cindyllm 2 hours ago||
[dead]
rowanseymour 4 hours ago||
I totally get this and I also think it's now the case that making a PR of any significant complexity, for a project you're not a maintainer of, isn't necessarily giving that project anything of value. That project's maintainers can run the same prompts you are running - and if they do, they'll do it with better oversight and understanding. If you want to help then maybe's it's more useful to just hashout the plan that'll be given to an AI agent by a maintainer.
yuppiepuppie 6 hours ago||
I love Django. Ive been using it professionally and on side projects extensively for the past 10 years. Plus I maintain(ed) a couple highly used packages for Django (django-import-export and django-dramatiq).

Last year, I had some free time to try to contribute back to the framework.

It was incredibly difficult. Difficult to find a ticket to work on, difficult to navigate the codebase, difficult to get feedback on a ticket and approved.

As such, I see the appeal of using an LLM to help first time contributors. If I had Claude code back then, I might have used it to figure out the bug I was eventually assigned.

I empathize with the authors argument tho. God knows what kind of slop they are served everyday.

This is all to say, we live in a weird time for open source contributors and maintainers. And I only wish the best for all of those out there giving up their free time.

Dont have any solutions ATM, only money to donate to these folks.

manfre 5 hours ago||
There is a clear correlation between the rise in LLM use and the volume of PRs and bug reports. Unfortunately, this has predominately increased the volume of submissions and not the overall quality. My view of the security issues reported, many are clearly LLM generated and at face value don't seem completely invalid, so they must be investigated. There was a recent Django blog post about this [1].

The fellows and other volunteers are spending a much greater amount of time handling the increased volume.

[1] https://www.djangoproject.com/weblog/2026/feb/04/recent-tren...

edelbitter 4 hours ago|||
Its weird that still so many consider bug triage a problem to be circumnavigated, somehow in the way of "actual" contributions. Those are actual contributions! Even if they never make it into structured documentation or even python code. And especially so since that work can less usefully be augmented with newly available tool use.

A number of times now, I have found real value in someone just dropping into the bugtracker to restate the bug description in clearer terms or providing a shorter reproducer. Even if the flaw in Django had been fixed right away, I would not have pulled patches from master anyway. So the ticket comment was still a useful contribution to django, because I could use it in resolving the issue in how my software triggered it.

pgwalsh 5 hours ago|||
Thank you. django-dramatiq has been fantastic.
yuppiepuppie 5 hours ago||
Awesome! Glad you like it :)
gedy 5 hours ago|||
I agree somewhat, as I deal with an internal legacy codebase that's pretty hard to follow, and I use Gemini, Claude, etc to help learn, debug solutions and even propose solutions. But there's a big difference in using it as a learning tool and just having the LLM "do it". I see little value in first time contributors just leaning on an LLM to just do it.
boxed 5 hours ago|||
I picked up a change that had broad consensus and quite a bit of excitement over even by some core devs.

That ticket now just sits there. The implementation is done, the review is done, there are no objections. But it's not merged.

I think something is deeply wrong and I have no idea what it is.

Yusu 5 hours ago|||
Looking at your PR, the ticket is still marked as Needs documentation: yes Patch needs improvement: yes

If this is done, you should update it so it appears in the review queue.

yuppiepuppie 5 hours ago|||
Have you tried pinging in the Discord about it?
crimsoneer 5 hours ago||
For anybody else in this position, would heavily plug the djangonauts program
yuppiepuppie 5 hours ago||
I applied to the djangonauts twice - but was rejected both times. I always liked the idea, but perhaps my profile was not what they were looking for /shrug
tombert 4 hours ago||
I agree with the sentiment but I am not sure the best way to go forward.

Suppose I encounter a bug in a FOSS library I am using. Suppose then that I fix the bug using Claude or something. Suppose I then thoroughly test it and everything works fine. Isn’t it kind of selfish to not try and upstream it?

It was so easy prior to AI.

gverrilla 4 hours ago||
While I see the point you're trying to make, truth is 90% of the times at least it will be a workaround instead of a proper solution. Even if it's a proper solution, there's a high chance it will only work on your specific setup - most open source software are made for a range array of systems, configurations, etc.

That plus ai sycophancy means, in my opinion, a great portion of contributions made in this manner will be bad, and waste maintainers time - which is obviously undesirable.

On my first week of claude code I submitted a PR to a FOSS and I was 100% sure it was correct - ai was giving me great confindence, and it worked! But I had no clue about how that software worked - at all. I later sent an email to the maintainer, apologizing.

tetha 4 hours ago|||
It depends on the complexity and if your LLM-driven changes fight the architecture of the project.

Some changes are in the area of "Well no one did that yet because no one needed it or had time for it", or "Well shit, no one thought of that". If Claude Code did these changes with good documentation and good intent and guidance behind it, why not? It is an honest and valid improvement to the library.

Some other changes rip core assumptions of the library apart. They were easy, because Claude Code did the ripping and tearing. In such a case, is it really a contribution to improve the library? If we end up with a wasteland of code torn apart by AI just because?

zenolove 4 hours ago|||
I don't think anybody would complain about working code. Your PR would explain your reasoning and choice of solution, and that on its own could make or break through acceptance criteria. At least it would by mine.

Errors are fine too. Just not negligence.

testaccount28 4 hours ago|||
the thresholds of quality for "this works on my machine, for my purposes" and "this is viable to merge upstream" are _extremely_ different. claude code has no effect on this, except to confuse certain would-be contributors.

imagine someone emailed you a diff with the note "idk lol. my friend sent me this, and it works on my machine". would you even consider applying it?

bityard 3 hours ago||
I don't think most maintainers are opposed to LLM-generated bug fixes or solutions _in general_, just the ones that are pure slop: Generated end-to-end by a Claude-maxed computer enthusiast who thinks that enough green boxes on their GitHub profile means they can somehow BS their way into a high-paying FAANG software engineer position. (Spoiler: it won't work.)

If I got a PR for one of my projects where the fix was LLM-generated, I wouldn't dismiss it out of hand, but I would want to see (somehow) that the submitter themselves understood both the problem and the solution. Along with all the other usual qualifiers (passes tests, follows existing coding style, diff doesn't touch more than it has to, etc). There's likely no one easy way to tell this, however.

ThomIves 4 hours ago||
With my type of development, I haven't run into the types of things, directly, that you very well explained, but I have personally run into the pain, I confess, of being OVERLY reliant on LLMs. I continue to try and learn from those hard lessons and develop a set of best practices in using AI to help me avoid those pain points in the future. This growing set of best practices is helping me a lot. The reason that I liked your article is because it confirmed some of those best practices that I have had to learn the hard way. Thanks!
lijok 5 hours ago||
By what metric is “the level of quality is much, much higher” in the Django codebase? ‘cause other than the damn thing actually working, the primary metric of a codebase being high quality is how easy it is to contribute to. And evidently, it’s not.
ErroneousBosh 4 hours ago||
Have you spent much time with the Django codebase?

I remember when I was getting started with Django in the 0.9 days most of the assistance you got on the IRC channel was along the lines of "it's in this file here in the source, read it, understand it, and if you still have a question come back and ask again". I probably learned more about writing idiomatic Python from that than anything else.

paganel 4 hours ago||
> I remember when I was getting started with Django in the 0.9

I can confirm that that was the general mindset back then, and I think that's what made the project last for 20 years. I myself ended up doing some monkey-patching for the admin interface on 0.92 (or 0.91? it's been a lot of time since then), all as the result of me going through the source-code. Definitely not the cleanest solution, even back then, but it made one getting to know the underlying code so much more.

ErroneousBosh 1 hour ago||
Someone in an IRC channel I'm in (recently! It's still alive!) asked if I fancied taking a look at some Django code for them because they'd been asked to find a contractor to modernise it and make it suitable for 2025 hosting.

Sure, I thought, this'll be fun.

Holy shit. It was something I'd started working on in the aforementioned 0.9x days, and which someone else had, uh, "extended and modified" after I left the web dev place where I'd worked at the time. Remarkably it was still pretty understandable.

I didn't want anything to do with the person that ran the site, not even just to take money off them, so I passed on it.

nuschk 4 hours ago||
The code is very dense. Clear, concise, elegant. But dense. An LLM doesn't generate code like that.

I think it's perfectly doable to use an LLM to write into the Django codebase, but you'll have to supervise and feedback it very carefully (which is the article's point).

popcorncowboy 4 hours ago||
> it’s such an honor to have your name among the list of contributors

I can't help but feel there's something very, very important in this line for the future of dev.

xpe 4 hours ago||
Well said:

> Before LLMs, [high quality code contribution] was easier to sense because you were limited to communicating what you understood. With LLMs, it’s much easier to communicate a sense of understanding to the reviewer, but the reviewer doesn’t know if you actually understood it.

Now my twist on this: This same spirit is why local politics at the administrative level feels more functional than identity politics at the national level. The people that take the time to get involved with quotidian issues (e.g. for their school district) get their hands dirty and appreciate the specific constraints and tradeoffs. The very act of digging in changes you.

akkartik 5 hours ago|
Very well said.
More comments...