I don't want your PRs anymore
Posted by speckx 3 hours ago
Comments
Comment by boricj 1 hour ago
As the maintainer of ghidra-delinker-extension, whenever I get a non-trivial PR (like adding an object file format or ISA analyzer) I'm happy that it happens. It also means that I get to install a toolchain, maybe learn how to use it (MSVC...), figure out all of the nonsense and undocumented bullshit in it (COFF...), write byte-perfect roundtrip parser/serializer plus tests inside binary-file-toolkit if necessary, prepare golden Ghidra databases, write the unit tests for them, make sure that the delinked stuff when relinked actually works, have it pass my standards quality plus the linter and have a clean Git history.
I usually find it easier to take their branch, do all of that work myself (attributing authorship to commits whenever appropriate), push it to the master branch and close the PR than puppeteering someone halfway across the globe through GitHub comments into doing all of that for me.
Conversely, at work I implemented support for PKCS#7 certificate chains inside of Mbed-TLS and diligently submitted PRs upstream. They were correct, commented, documented, tested, everything was spotless to the implicit admission of one of the developers. It's still open today (with merge conflicts naturally) and there are like five open PRs for the exact same feature.
When I see this, I'm not going to insist, I'll move on to my next Jira task.
Comment by a1o 1 hour ago
While I understand the sentiment I am glad I got into open source more than fifteen years ago, because it was maintainers “puppeteering” me that taught me a lot of the different processes involved in each project that would be hard to learn by myself later.
Comment by chongli 1 hour ago
Comment by toast0 1 hour ago
Most of my PRs are things where I'm not really interested in learning the ins and outs of the project I'm submitting to; I've just run into an issue that I needed fixed, so I fixed it[1], but it's better if it's fixed upstream. I'll submit my fix as a PR, and if it needs formatting/styling/whatevs, it'll probably be less hassle if upstream tweaks it to fit. I'm not looking to be a regular contributor, I just want to fix things. Personally, I don't even care about having my name on the fix.
Now, if I start pushing a lot of PRs, maybe it's worth the effort to get me onto the page stylewise. But, I don't usually end up pushing a lot of PRs on any one project.
[1] Usually, I can have my problem fixed much sooner if I fix it, than if I open a bug report and hope the maintainer will fix it.
Comment by hunterpayne 1 hour ago
Comment by comboy 1 hour ago
So you can still contribute, you just not need to provide the code, just the issue.
Which isn't as bad as it sounds, it kind of feels bad to rewrite somebody's code right away when it is theoretically correct, but opinionated codebases seem to work very well if the maintainer opinions are sane.
Comment by hunterpayne 3 minutes ago
PS The economics of software haven't really changed, its just that people (executives) wish they have changed. They misunderstood the economics of software before LLMs and they misunderstand the economics of software now.
PPS The only people that LLMs benefit are the segment of devs who are lazy.
Comment by eschneider 2 hours ago
I know when I run into bugs in a project I depend on, I'll usually run it down and fix it myself, because I need it fixed. Writing it up the bug along with the PR and sending it back to the maintainer feels like common courtesy. And if it gets merged in, I don't need to fork/apply patches when I update. Win-win, I'd say.
But if maintainers don't want to take PR's, that's cool, too. I can appreciate that it's sometimes easier to just do it yourself.
Comment by bawolff 1 hour ago
But i feel like it was always true that patches from the internet at large were largely more trouble then they were worth most of the time. The reason people accept them is not for the sake of the patch itself but because that is how you get new contributors who eventually become useful.
Comment by jcims 1 hour ago
Oh god, I needed to add a feature to an open source project (kind of a freemium project) about fifteen years ago. I had no experience with professional software development nor did I have any understanding of pull requests. I sent one over after explaining what I was trying to do and that I thought it would be a good feature for the project.
Now they probably shouldn’t have just blindly merged it, but they did, and it really made a mess.
Learned a valuable lesson that day haha.
Comment by akdev1l 1 hour ago
When you actually work alongside people and everyone builds a similar mental model of the codebase then communication between humans is far more effective than LLMs.
For random contributions then this doesn’t apply
Comment by sfjailbird 1 hour ago
Comment by alxhslm 1 hour ago
This is similar to what we’ve started to do at work. The first stage of reviewing a PR is getting agreement on the spec. Writing and reviewing the code is almost the trivial part.
Comment by esafak 42 minutes ago
Comment by vlapec 1 hour ago
Comment by pkulak 1 hour ago
Comment by pncnmnp 1 hour ago
Comment by boricj 1 hour ago
By the end, the project manager begged me to turn off my flamethrower, as I was ripping it all out for a clean west manifest to tagged versions and stacks of patches. "Take it home OSS" is like take-out food: if you don't do your chores and leave it out for months or years on the kitchen counter, the next person to enter the apartment is going to puke.
Comment by tonyarkles 42 minutes ago
Zephyr-based project?
Comment by boricj 22 minutes ago
But our modern embedded firmware projects all use Zephyr and west, so I just created a west manifest, stole parts of the scripts/ folder from the Zephyr repository to have a working "west patch" command and went to town. If I had more time to work on it, I'd have gotten "west build", "west flash" and "west debug" working too (probably with bespoke implementations) and removed the cargo cult shell scripts.
You can use west without Zephyr, it's just that by itself it only provides "west init" and "west update".
Comment by rebolek 1 hour ago
If it’s "take it home OSS" and "there is not much need to submit PRs or issues" then why would anybody submit PRs and issues for "for critical bugs or security fixes"? If they have fix and it works for them, they’re fine, afterall.
And while we’re at it, why would anybody share anything? It’s just too much hassle. People will either complain or don’t bother at all.
I think that after few years, when LLM coding would be an old boring thing everybody’s used to and people will learn few hard lessons because of not sharing, we’ll come to some new form of software collaboration because it’s more effective than thinking me and LLM are better than me and LLM and thousands or millions people and LLMs.
Comment by fc417fc802 1 hour ago
Why do they do that at present? There are plenty of cases where it's a hassle but people still do it, presumably out of a sense of common decency.
Comment by tonyarkles 41 minutes ago
Another self-serving reason is so that you can upgrade in the future without having to worry about continually pulling your own private patch set forward.
Comment by f33d5173 55 minutes ago
Comment by dTal 1 hour ago
Comment by fc417fc802 1 hour ago
Vulnerability detection might prove to be an issue though. If we suddenly have a proliferation of large quantities of duplicate code in disparate projects detection and coordinated disclosure become much more difficult.
Comment by ncruces 1 hour ago
Past month or so I implemented a project from scratch that would've taken me many months without a LLM.
I iterated at my own pace, I know how things are built, it's a foundation I can build on.
I've had a lot more trouble reviewing similarly sized PRs (some implementing the same feature) on other projects I maintain. I made a huge effort to properly review and accept a smaller one because the contributor went the extra mile, and made every possible effort to make things easier on us. I rejected outright - and noisily - all the low effort PRs. I voted to accept one that I couldn't in good faith say I thoroughly reviewed, because it's from another maintainer that I trust will be around to pick up the pieces if anything breaks.
So, yeah. If I don't know and trust you already, please don't send me your LLM generated PR. I'd much rather start with a spec, a bug, a failing test that we agree should fail, and (if needed) generate the code myself.
Comment by gavmor 2 hours ago
Delaying what?
Comment by pclowes 1 hour ago
Comment by clutter55561 1 hour ago
Also, at the point they actively don’t want collaboration, why do open source at all?
Strange times, these.
Comment by singpolyma3 1 hour ago
Collaboration is a common pattern in larger projects but is uncommon in general
Comment by clutter55561 1 hour ago
Comment by mvvl 1 hour ago
Comment by Gigachad 1 hour ago
Even if they worked, it would be easier for the maintainer to just do that themselves rather than review and communicate with someone else to resolve issues.
Comment by vlapec 1 hour ago
Comment by mvvl 1 hour ago
Comment by tonyarkles 43 minutes ago
Now… especially for critical functionality/shared plumbing, I’m going to be writing a Markdown spec for it and I’m going to be getting Claude or Codex to do review it with me before I pass it around to the team. I’m going to miss details that the LLM is going to catch. The LLM is going to miss details that I’m going to catch. Together, after a few iterations, we end up with a rock solid plan, complete with incremental implementation phases that either I or an LLM can execute on in bite-sized chunks and review.
Comment by biker142541 1 hour ago
Comment by vlapec 54 minutes ago
Comment by ChrisMarshallNY 1 hour ago
That's a unicorn.
If I'm lucky, I get a "It doesn't work." After several back-and-forths, I might get "It isn't displaying the image."
I am still in the middle of one of these, right now. Since the user is in Australia, and we're using email, it is a slow process. There's something weird with his phone. That doesn't mean that I can't/won't fix it (I want to, even if it isn't my fault. I can usually do a workaround). It's just really, really difficult to get that kind of information from a nontechnical user, who is a bit "scattered," anyway.
Comment by arjie 1 hour ago
0: I liked BurntSushi's Rust projects since they are super easy to edit because they're well architected and fast by default. Easy to write in.
Comment by samuelknight 1 hour ago
Code formatting is easy to solve. You write linting tests, and if they fail the PR is rejected. Code structure is a bit tricker. You can enforce things like cyclomatic complexity, but module layout is harder.
Comment by petetnt 59 minutes ago
Comment by porphyra 2 hours ago
Comment by rebolek 1 hour ago
Comment by acedTrex 2 hours ago
Comment by travisjungroth 1 hour ago
Comment by orangesilk 1 hour ago
Comment by esafak 29 minutes ago
Comment by mjmas 1 hour ago
Comment by fc417fc802 1 hour ago
For the same reason a PR can be useful even if it turns out to be imperfect. Because it reduces the workload for the maintainer to implement a given feature.
Obviously that means that if it looks likely to be a net negative the maintainer isn't going to want it.
Comment by freetime2 1 hour ago
I guess my point being that it's become pretty easy to convert back and forth between code and specs these days, so it's all kind of the same to me. The PR at least has the benefit of offering one possible concrete implementation that can be evaluated for pros and cons and may also expose unforeseen gotchas.
Of course it is the maintainer's right to decide how they want to receive and respond to community feedback, though.
Comment by warmwaffles 1 hour ago
Sometimes I'm not a fan of the change in its entirety and want to do something different but along the same lines. It would be faster for me to point the agent at the PR and tell it "Implement these changes but with these alterations..." and iterate with it myself. I find the back and forth in pull requests to be overly tiresome.
Comment by idiotsecant 1 hour ago
Comment by freetime2 1 hour ago
Comment by cadamsdotcom 1 hour ago
Thank your contributor; then, use the PR - and the time you’d have spent reviewing it- to guide a reimplementation.
Comment by shell0x 35 minutes ago
Submitters use LLMs to generate the code and reviewers use LLMs to review it.
Comment by c0wb0yc0d3r 11 minutes ago
This just like my favorite, “We can use LLMs to write the code and write the tests.”
Comment by jerkstate 2 hours ago
Comment by OkayPhysicist 2 hours ago
Comment by charcircuit 1 hour ago
Comment by torvoborvo 2 hours ago
Comment by Lerc 1 hour ago
The JavaScript ecosystem is a good demonstration of a platform that is encumbered with layers that can only ever perform the abilities provivded by the underlying platform while adding additional interfaces that, while easier for some to use, frequently provide a lot of functionality a program might not need.
Adding features as a superset of a specification allows compatibility between users of a base specification, failure to interoperate would require violating the base spec, and then they are just making a different thing.
Bugs are still bugs, whether a human or AI made them, or fixed them. Let's just address those as we find them.
Comment by tshaddox 2 hours ago
Comment by marcta 1 hour ago
Comment by tshaddox 57 minutes ago
Comment by bawolff 1 hour ago
Comment by Lerc 1 hour ago
That workload of maintaining a fork doesn't come from nowhere, it's just a workload someone else would have to do before the fork occured.
Comment by pydry 2 hours ago
Somehow it's not really happening.
Comment by jaggederest 1 hour ago
Repo, for those interested: https://github.com/jaggederest/pronghorn/
I find that the core issues really revolve around the audience - getting it good enough that I can use it for my own purposes, where I know the bugs and issues and understand how to use it, on the specific hardware, is fabulous. Getting it from there to "anyone with relatively low technical knowledge beyond the ability to set up home assistant", and "compatible with all the various RPi/smallboard computers" is a pretty enormous amount of work. So I suspect we'll see a lot of "homemade" software that is definitely not salable, but is definitely valuable and useful for the individual.
I hope, over the long to medium term, that these sorts of things will converge in an "rising tide lifts all boats" way so that the ecosystem is healthier and more vibrant, but I worry that what we may see is a resurgence of shovelware.
Comment by philipkglass 1 hour ago
Comment by LostMyLogin 2 hours ago
Comment by _verandaguy 2 hours ago
Comment by GaryBluto 1 hour ago
As a sidenote: what's with the usage of "take" to designate an opinion instead of the word "opinion" or "view"?
Comment by igorzuk 9 minutes ago
Comment by Mathnerd314 1 hour ago
Comment by mactavish88 2 hours ago
Comment by bawolff 1 hour ago
This is just a change in position of what work is useful for others to do.
Comment by woeirua 1 hour ago
Comment by vicchenai 1 hour ago
Comment by krick 1 hour ago
Comment by caymanjim 1 hour ago
Give me ideas. Report bugs. Request features. I never wanted your code in the first place.
Comment by krick 1 hour ago
Comment by caymanjim 4 minutes ago
Comment by acedTrex 2 hours ago
Comment by grebc 1 hour ago
Comment by clutter55561 1 hour ago
Comment by vatsachak 1 hour ago
Comment by lou1306 2 hours ago
95% of this is covered by a warning that says "I won't merge any PR that a) does not pass linting (configured to my liking) and b) introduces extra deps"
> With LLMs, it's easier for me to get my own LLM to make the change and then review it myself.
So this person is passing on free labour and instead prefers a BDFL schema, possibly supported by a code assistant they likely have to pay for. All for a supposed risk of malice?
I don't know. I never worked on a large (and/or widely adopted) open-source codebase. But I am afraid we would've never had Linux under this mindset.
Comment by xantronix 1 hour ago
It feels like a lot of people assume a sense of entitlement because one platform vendor settled on a specific usage pattern early on.
Comment by OkayPhysicist 2 hours ago
Maybe I'm not up to date with the bleeding edge of linters, but I've never seen one that adequately flags
let out = []
for(let x of arr){
if(x > 3){
out.append(x + 5)
}
}
Into let out = arr
.filter(x => x > 3)
.map(x => x + 3)
There's all sorts of architectural decisions at even higher levels than that.Comment by well_ackshually 1 hour ago
Comment by sodapopcan 1 hour ago
Comment by stavros 2 hours ago
I find myself doing the same, nowadays I want bug reports and feature requests, not PRs. If the feature fits in with my product vision, I implement and release it quickly. The code itself has little value, in this case.
Comment by teach 2 hours ago
Comment by tonymet 1 hour ago
Comment by cmrdporcupine 1 hour ago
I know my code base(s) well. I also have agentic tools, and so do you. While people using their tokens is maybe nice from a $$ POV, it's really not necessary. Because I'll just have to review the whole thing (myself as well as by agent).
Weird world we live in now.
Comment by guelo 1 hour ago
Comment by warmwaffles 1 hour ago
Comment by yieldcrv 1 hour ago
The fact-of-life journaling about the flood of code, the observation that he can just re-prompt his own LLM to implement the same feature or optimization
all of this would have just been controversial pontificating 3 months ago, let alone in the last year or even two years. But all of a sudden enough people are using agentic coding tools - many having skipped the autocomplete AI coders of yesteryear entirely - that we can have this conversation
Comment by shell0x 40 minutes ago
Comment by mrluckysmith 1 hour ago
Comment by MisterTea 2 hours ago