• einkorn@feddit.org
      link
      fedilink
      arrow-up
      5
      ·
      3 hours ago

      “So, Daywim. Why did you let this obviously aweful PR pass your desk causing so much trouble for our company? I’m afraid we have to let you go because of this questionable performance.” - Corporate

        • einkorn@feddit.org
          link
          fedilink
          arrow-up
          3
          ·
          3 hours ago

          I interpreted it as “Holiday that lasts forever because the company can’t work anymore” but I guess it is meant to mean “Holiday that lasts forever cause you got fired”?

      • ATPA9@feddit.org
        link
        fedilink
        arrow-up
        3
        ·
        2 hours ago

        “Looks like I overlooked something in this 6k PR full of im meaningless dribble. Why don’t you ask the person who comitted the code how he overlooked this bug. Its his respinsibility”

        Just throw the the slop creator under the bus.

        • notabot@piefed.social
          link
          fedilink
          English
          arrow-up
          2
          ·
          38 minutes ago

          If you’re the reviewer you share responsibility if there’s an issue with the PR. Hopefully your teams culture is such that issues like that are treated as a learning experience, rather than a reason to pile on the individuals involved.

          • ATPA9@feddit.org
            link
            fedilink
            arrow-up
            1
            ·
            6 minutes ago

            If you have someone on your team that creates 6k PRs with AI then you are in a loose-loose situation anyways. If you do a thorough review you will be done just in time for the next one and you will get in trouble for not getting your own shit done. So gambling on the PR is probably your best shot at survival.

    • Pika@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 hours ago

      is it auto reject, or just doesn’t auto approve and leaves it open for manual review

      It seems weird that you can’t do a pr at all with 1000 line changes, any moderate size feature addition could hit that mark

        • Pika@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          5
          ·
          edit-2
          3 hours ago

          for a new feature request? a PR isn’t a commit, it’s a set of commits which would add to the line change amount.

          Like even if you spread it out across 20 or 30 commits that’s still going to be the same line count.

          I guess you could push not yet functional or used code to lessen the line count change, but that seems in bad taste. I’ve always gone off the working repo should always be in build or clean state and a push or commit shouldn’t break that.

    • getFrog@piefed.social
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 hours ago

      Stupid question, but what happens to a rejected PR? Because features get built for a reason (there’s usually a Ticket/Story for the feature that the PR adds) so do those just get closed? Or does the person have to re-write the code entirely?

      I know in my team, the most I could do is tell the coworker to self-review while keeping the PR open until they change some stuff. I have never rejected a PR before because no matter how bad a PR is, it always is technically necessary for the feature.

      • einkorn@feddit.org
        link
        fedilink
        arrow-up
        3
        ·
        3 hours ago

        If a feature request requires changes of such a magnitude it is important to break them down into smaller chunks that can be reviewed either independently or sequentially.

        I have never rejected a PR before because no matter how bad a PR is, it always is technically necessary for the feature.

        Define bad? If the PR contains lots of unnecessary changes such as formatting or renaming simply tell the person to roll them back and come again unless they have very good reason to do so.

        If the code quality is bad, well, that’s why you are doing the review. If all that matters was “Does it do what it is supposed to do most of the time?” some simple unit tests would be enough. Reviewing code means making sure it does what is supposed to do and does so in an acceptable manner. Criteria can be amongst others speed, security, ease of use or maintainability.

        • Insecure handling of inputs? Add sanitisation and resubmit.
        • Overusage of resource intensive features such as database queries? Group and optimize queries and resubmit.
        • The codes formatting is not according to the internal style guide? Configure your damn linter and resubmit.

        If you don’t want to close PRs outright you can request new commits that fix the issues you identified, reevaluate the PR and decide again.

  • skisnow@lemmy.ca
    link
    fedilink
    English
    arrow-up
    30
    ·
    10 hours ago

    We’ve had a very recent uptick in engineers submitting PRs of hundreds of lines across multiple files, for Jira tickets that only asked for a one-line change. The engineers involved have been using AI assistants for nearly two years now, but there seems to have been a change in the last month or so in how aggressive the new models are at changing code.

  • JordanZ@lemmy.world
    link
    fedilink
    arrow-up
    27
    ·
    11 hours ago

    I honestly wish for a PR this size. One of the ones that came across this week was 813 commits, +17K -2K.

    Of the 250 commits that GitHub was willing to show it had 35 other PRs merged into this massive one. Why they thought one giant PR was somehow better I’ll never know.

    Of course…high priority, please review and merge immediately. Like guys it’s gonna take me a week to make sense of this.

    • GalacticGrapefruit@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      58 minutes ago

      Jeez. Now I feel bad. I’ve been working on a project with some new people, and I’ve never used Github before. I’m still learning the etiquette.

      I made a branch, and spent a month viciously hunting every bug I could find. I don’t trust AI, so I was doing it all by hand. Dawn to dusk, I was staring at code and typing like I had a fever and the only cure was figuring out where tf that invalid scope is supposed to go.

      This is my first real project with other people, so of course I’m so proud when I send the PR and it has 40,000 lines added and 60,000 lines removed. I worked really hard on it, and it sorely needed the update.

      It was almost all bug fixes, the actual new stuff was about 1,000 or so lines. But what should I do in the future? I don’t wanna be an asshole, I wanna be helpful.

      • PolarKraken@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        44 minutes ago

        Generally it’s more considerate to submit smaller batches of (self-contained!) work at a time. Sometimes the work or existing code is so interconnected that this can’t really be done, though. You mentioned spending a month, that’s also a long time in most environments to be off working on bulk changes for later review. A week is probably long enough in most cases, some orgs even prefer to push (if not review) code daily.

        Don’t agonize over it though, wanting to improve your impact on others while working is the right direction to point, keep walking that way and you’ll do awesome, let it develop over time. As in, don’t let your desire for politeness slow down your work or growth too much (I do this lol, why I’m mentioning).

    • ragas@lemmy.ml
      link
      fedilink
      arrow-up
      7
      ·
      10 hours ago

      Lol nothing bigger than 250 lines of code goes through at our company without complaints.

      • Pup Biru@aussie.zone
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        9 hours ago

        i’d say it’s a balance… you’re totally right that individual requests for review should be relatively small (mostly so that they can all fit in your head at once), but imo equally valid is that everything in main should be a complete feature/fix: if you were to be gone immediately after merging, would someone need to continue or revert the change? would there be unused code laying around?

        this is where merge trains and a decent UI around them comes in handy: your main work is on a branch many small PRs each reviewed individually merge into that branch, and then when you’re done pretty much just automated integration tests, lint, and you’re good to merge the whole

        but equally some people prefer to solve this with things like gitflow, or just not at all and accept that main is always in flux

        reflector to support a new feature is also tricky: does it belong with the feature because it’s unnecessary abstraction without it? or is it its own PR because it stands in its own? and if it’s its own PR then how do you base your own feature branch on it before someone reviews and merges? how do you know you’re done without finishing? what if your assumptions are wrong and you need to try something new - just a lot of unnecessary churn and review?

        dev is messy and as always LOC is a pretty useless metric… keeping things understandable is key, and somethings a 17k line PR is the cleanest way to proceed

        • ragas@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          4 hours ago

          Oh I totally agree with you. However I tried pitching the whole integration branch idea to my team and they didn’t really like it that much for whatever reason. We now just stack small feature branches on top of each other (to build the whole feature) and integrate the parts directly to master.

    • BlackRoseAmongThorns@slrpnk.net
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      9 hours ago

      The review process is all wrong if something like this is ever on the table as a single PR*.

      Big changes like this were made before, and knowing how to split the work (or at least trying to work it out) used to be part of the job.

      Hopefully, strong unions and worker involvement can remedy this, given we change our work culture to be closer to what projects like SQLITE and FFMPEG have (noting, of course, the fact these are FOSS, and made by volunteers, yet are very dependable), slower and stable development cycle that prioritizes high quality work that people can actually depend on and trust.

      • As in one single PR you’re expected to read, instead of one backed by tests and the like.
          • SleeplessCityLights@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            2 hours ago

            When you have ownership of the project you care.

            We go by description of the PR. If you can briefly describe the changes you want to merge, We will consider accepting it. If you have two paragraph or more, insta close. If someone has made large changes, there is no way they can have a short description, either break it down to smaller PRs or admit you don’t know what you are doing and are trying to merge garbage.

    • ZILtoid1991@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      3 hours ago

      The goal of AI providers is to make humans unable to maintain code, so you have to rely on their expensive subscriptions and tokens.

    • okamiueru@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      3 hours ago

      I’m not sure if you’re suggesting to use LLMs to review bad PRs, or that the author should redo them. Latter, for sure. Former, sounds horrible.

    • Supercrunchy@programming.dev
      link
      fedilink
      arrow-up
      13
      ·
      10 hours ago

      I fully expect this to become the new normal being pushed by management.

      “We identified PR reviews to be blocking our newfound AI-powered efficiency, so we are now mandating all the reviews to done by AI. Also we figured all the developers are now useless since all you do is ask Claude to solve tickets, so you are all fired”

      I wonder how long it takes for the first high profile disaster happening because of a policy like that.

        • ThirdConsul@lemmy.zip
          link
          fedilink
          arrow-up
          7
          ·
          edit-2
          9 hours ago

          Actually I think it’s doing well? The language to language rewrite is actually a strong suit of LLMs, as long as there is extensive years worth of tests to check rewrite behaviours.

          I don’t have practical use cases for that strong suit though.

          Oh, and bun seems to be dead now with 2.5k open PRs.

          And merge to main takes over an hour.

          And the total rewrite cost was significantly higher than the headline (multiple Prs by Anthropic employees, rough count 20% of total LoC of rewrite)

          And there is still no release in sight on Github - but Claude is shipping with rust bun afaik.

          • Eager Eagle@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            7 hours ago

            It was higher sure, but anthropic also has some of the most expensive models out there. That cost could be 5x-10x less just by going with cheaper model providers (if one were to pay the API costs, not the case for bun).

            bun 1.4 was released 3 weeks ago, btw

            • ThirdConsul@lemmy.zip
              link
              fedilink
              arrow-up
              1
              ·
              7 hours ago

              That cost could be 5x-10x less just by

              My point was that it was cost of model rewrite by agents + 3 months worth of coding by lots of people.

              5k open PRs atm + 3.5k open issues. I have no idea what is the state of Bun right now, but I am not confident in it.

              • Eager Eagle@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                arrow-down
                1
                ·
                6 hours ago

                I don’t think there was a lot of people working on the rewrite. Most PRs are from bots. Original estimates for a manual rewrite were a small team working for a year or so, which puts total costs over $1M. Even doubling the token cost estimates, it was still cheaper than doing it manually by a factor of 2x-3x

      • ThirdConsul@lemmy.zip
        link
        fedilink
        arrow-up
        2
        ·
        9 hours ago

        This is literally how corpo I work for wants us to work. They call it… Outcome baded review. But no bugs on prod lol.

    • besbin@lemmygrad.ml
      link
      fedilink
      arrow-up
      1
      ·
      10 hours ago

      This is the exact thing that majority of “AI” companies are doing. Shit in, shit out, nobody knows why or how things work

    • chris@l.roofo.cc
      link
      fedilink
      arrow-up
      6
      ·
      7 hours ago

      Same. I don’t care too much about you using Ai but I will not tolerate your bad code and bad coding practices. I don’t care if it’s human or machine made. If you don’t make a fully sanctioned rewrite then this goes straight to the bin.

  • SubArcticTundra@lemmy.ml
    link
    fedilink
    arrow-up
    76
    arrow-down
    2
    ·
    18 hours ago

    The problem with Claude is that it doesn’t write code to be modular & reusable. Every tiny change requires a complete rewrite.

    • veryblandusername@fedinsfw.app
      link
      fedilink
      English
      arrow-up
      63
      ·
      17 hours ago

      I’ve completely banned any code that can’t be explained. I’ve had my CTO send me code at 3 AM to implement and when I ask him what I’m looking at he just says it doesn’t need review, just push it.

      Uhh, no sir, I’m not doing shit because you’ve handed me GCC and we’re MSVC.

      After I bitched endlessly to the CEO about that he said I have final say on what goes into the project.

      • Noxy@pawb.social
        link
        fedilink
        English
        arrow-up
        21
        ·
        15 hours ago

        I’ve had my CTO send me code at 3 AM

        I hope you don’t even respond until your next normal working hours!

        • veryblandusername@fedinsfw.app
          link
          fedilink
          English
          arrow-up
          15
          arrow-down
          1
          ·
          14 hours ago

          I love my job, even when I have to deal with nonsense like that and I’m compensated very well to be on call 24/7.

          • NocturnalMorning@lemmy.world
            link
            fedilink
            arrow-up
            6
            ·
            10 hours ago

            No amount of money would make me put my health at risk like that. Been there at a job before where I was always working. No thanks.

          • Noxy@pawb.social
            link
            fedilink
            English
            arrow-up
            4
            arrow-down
            1
            ·
            11 hours ago

            that sets a really bad example. you shouldn’t do that to yourself and you shouldn’t allow it to happen to anyone else.

            • calcopiritus@lemmy.world
              link
              fedilink
              arrow-up
              7
              ·
              11 hours ago

              He knows best what’s best for him. If he’s explicitly paid extra to be on call 24/7, and he’s happy with that extra. Let him be om-call 24/7.

              There are situations and jobs where 24/7 availability is needed. Someone has to do it. And if that someone believes he’s getting enough of a compensation for it, there’s nothing wrong with it.

              • dethmetaljeff@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                3 hours ago

                Yup, I was on call 24/7… compensated very well and now I’m retired at 43. So, yea I’m going to have to go with letting the dude make his own choice as far as what’s best for him.

          • Axolotl@feddit.it
            link
            fedilink
            arrow-up
            6
            ·
            edit-2
            4 hours ago

            Unironically Claude (or whatever you use) will almost always deliver code that is shit, it’s just less shit if you prompt it better, LLMs are good to make short snippets if you get stuck tho; And remember to fucking check what the code is and rewrite bad shit

            • Eager Eagle@lemmy.world
              link
              fedilink
              English
              arrow-up
              3
              arrow-down
              5
              ·
              7 hours ago

              I’ve seen plenty of code in my life, from humans and AI.

              For the past year or so, these agents can code just fine most of the time, as long as they are given enough context (or have the tools to get it). Regardless of how many downvotes I get here, they really are capable of generating decent code. I’m sorry you couldn’t make it work yet.

              • takeda@lemmy.dbzer0.com
                link
                fedilink
                arrow-up
                1
                ·
                7 minutes ago

                I’ve seen too as I have to review it. AI produces very professionally looking bad code.

                It is so weird to explain, but that’s basically what I see.

                Before LLM I could immediately tell someone’s code is crap, now I have to spend a lot of time trying to understand what it does to reach the same conclusion.

              • Eheran@lemmy.world
                link
                fedilink
                arrow-up
                4
                arrow-down
                4
                ·
                5 hours ago

                But AI bad and human code is so awesome! Better downvote. But seriously, there are people here saying that LLMs can not add anything of value in any way. About as delusional as Republicans.

      • Nalivai@lemmy.world
        link
        fedilink
        arrow-up
        11
        arrow-down
        2
        ·
        14 hours ago

        With enough seniour developer’s time and dedication you can spend days and enough water to flood a town, so you can badly maybe do something that a junior dev can do already (your shit will still be worse). If that’s not an achievement of a modern technology I don’t know what is.

      • veryblandusername@fedinsfw.app
        link
        fedilink
        English
        arrow-up
        5
        arrow-down
        1
        ·
        14 hours ago

        It can but I’m not looking to make things even more complicated. We have enough unexplained non-sense in the project as is, having to link it correctly is just endless pain that I don’t want to deal with.

  • Solemarc@lemmy.world
    link
    fedilink
    arrow-up
    88
    ·
    18 hours ago

    I struggle to review a 1k line change. When people give me such big changes I normally don’t believe they’ve reviewed them either.

    • Jesus_666@lemmy.world
      link
      fedilink
      arrow-up
      13
      ·
      15 hours ago

      Try working on a codebase that’s all event-driven hexagonal CQRS with hand-crafted SQL for persistence. Add additional buzzwordy methodologies to taste.

      Adding a single property to your product means you now have to update an aggregate class, several DTOs, and several event classes and handlers before you can even think about touching the UI.

      And that’s in your main solution. There’s also at least one facade service you’ll need to make compatible and you also need to update the event simulator used for testing. The latter night involve having to touch every single line in a 2000 lines long SQL script.

      Having to go though three separate 600-2000 LOC PRs for one PBI isn’t that exotic.

    • Saganaki@lemmy.zip
      link
      fedilink
      arrow-up
      7
      arrow-down
      1
      ·
      16 hours ago

      Occasionally I do that…but only because 500 of those lines are my comments explaining everything.

        • Saganaki@lemmy.zip
          link
          fedilink
          arrow-up
          2
          ·
          3 hours ago

          I’m aware. Not always feasible. For example, had to add a custom video capture solution that captures the last 30 seconds of a process for crash handling purposes.

          You most definitely need to do add that much comments explaining the mp4 box format along with the box “hierarchy” of what is being written. Add to that MFT (h264 encode) code…

          Basically, if anything, the comments are for me for when I look back at that code.

          • MonkderVierte@lemmy.zip
            link
            fedilink
            arrow-up
            1
            ·
            2 hours ago

            had to add a custom video capture solution that captures the last 30 seconds of a process for crash handling purposes.

            Commanded from above? This smells like a noob idea.

              • Jaycifer@piefed.social
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 hour ago

                This is my attempt to translate: You had to add a feature like that ? Must have been an order from your boss. That seems like a feature someone rather inexperienced and unknowledgeable would request.

                • Saganaki@lemmy.zip
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  51 minutes ago
                  1. Legal has issues with using existing libraries (including MIT). Definitely idiotic, but I can’t control that.
                  2. Idea was mine.
                  3. Subprocess that captures parent process active video with a rolling buffer for crash handling purposes is absolutely necessary when trying to reproduce issues in development (Gamedev editor). If you think associating the last 15s prior to a crash with a mindump isn’t helpful for debugging, I don’t know what to tell you.
    • kubica@fedia.io
      link
      fedilink
      arrow-up
      108
      arrow-down
      1
      ·
      19 hours ago

      // Here I'm not using that other thing that is now completely irrelevant, but I'll leave a comment to the non-existing thing anyway because I'm avoiding it.

        • _stranger_@lemmy.world
          link
          fedilink
          arrow-up
          13
          ·
          11 hours ago

          The comment:

          # This code does exactly what you asked: Never change state, only fetch the state and return the difference

          the code: hallucinated database table drops

          • FishFace@piefed.social
            link
            fedilink
            English
            arrow-up
            3
            arrow-down
            1
            ·
            7 hours ago

            This one I’ve not seen. It seems fairly ok at not going completely batshit like that. But the design, layout and comments tend to be awful. It’s pretty good at solving isolated tasks though.

    • luciferofastora@feddit.org
      link
      fedilink
      arrow-up
      7
      ·
      9 hours ago

      It’s a summary of code changes. The green + indicates how many lines were added, the red - how many were removed (though changed or moved lines are counted twice, once as removal for the old and once as addition for the new).

      The OP is supposedly being asked to read and review thousands of lines of new code written by claude. Depending on the language and claude’s writing style, those lines may be very dense and hard to read, but even if they aren’t, reading code you haven’t written is always more difficult than reading your own.

    • khannie@lemmy.world
      link
      fedilink
      English
      arrow-up
      22
      arrow-down
      1
      ·
      12 hours ago

      It’s basically saying “insert one ass loads of code in one go, all written by AI”.