9 comments

  • Kinrany5 hours ago
    Is it compatible with jujutsu?
    • joaoqalves1 hour ago
      I&#x27;m not familiar with jujutsu. Maiao is fully git-compatible and the idea is to<p>a) Not create new API&#x2F;commands on top of it. Everything works with the normal &quot;git commit&quot;.<p>b) Progressively enhance the user experience. Each commit becomes a PR stacked atop each other. It auto-rebases if the base changes, and so on.
      • phatskat2 minutes ago
        jj is a pretty nifty VCS - certainly worth looking in to. A lot of the concepts run parallel to Maiao I _think_, I&#x27;m still learning jujitsu myself.<p>A couple questions:<p>1) what&#x27;s the name about? 2) does this get wicked messy if I&#x27;m the only one on my team using Maiao?
      • adastra2219 minutes ago
        Probably worth looking into. It provides most of the machinery here on the version control side.
  • dolmen5 hours ago
    The repo seems to move from &quot;adevinta&quot; (a well known company in the EU tech) to &quot;runetes&quot;. Anyone to tell us the story?
    • opello2 hours ago
      &gt; Note: This is a community fork of adevinta&#x2F;maiao. The original maintainers are no longer at Adevinta and the upstream repository is no longer actively maintained. This fork continues development under runetes&#x2F;maiao.
    • joaoqalves1 hour ago
      Hi! One of maiao&#x27;s maintainers here, and ex-Adevinta.<p>tl;dr: Adevinta got bought by a Private Equity consortium [1]. Since then, the fund did many changes, and layoffs. All of the original creators&#x2F;maintainers don&#x27;t work there anymore.<p>Runetes is just an umbrella org for some OSS we created there.<p>1 - <a href="https:&#x2F;&#x2F;adevinta.com&#x2F;press-releases&#x2F;permira-and-blackstone-announce-voluntary-offer-for-all-outstanding-ordinary-class-a-shares-in-adevinta-at-nok-115-per-share&#x2F;" rel="nofollow">https:&#x2F;&#x2F;adevinta.com&#x2F;press-releases&#x2F;permira-and-blackstone-a...</a>
  • ppljudge2 hours ago
    This sounds intriguing. Additionally, I wanted the community to evolve our approach to providing PR feedback. One of the unintended consequences was that it became a tool for people to exploit their workers.
  • NamlchakKhandro6 hours ago
    Who is creating a separate PR for each commit on their feature&#x2F;fix branch?<p>sounds like crazy town.<p>I just dont understand why someone would operate like this.<p>Lets assume you&#x27;re squash merging your feature branchs to your local main, then you&#x27;re raising the them as prs.<p>why would you do this?
    • verall5 hours ago
      On large teams I think the &quot;cherry pick&quot; workflow (Gerrit style) beats the &quot;pull request&quot; workflow (GitHub&#x2F;gitlab style). On smaller teams it&#x27;s the other way around. I think it&#x27;s somewhere around 10-20 people actively committing that the cherry pick workflow comes out ahead.
      • danpalmer3 hours ago
        This is exactly it. When I worked in a ~10 person team I just didn&#x27;t get it, PRs worked quite well (with some basic discipline, they&#x27;re not perfect). When I moved to a... much larger company... I don&#x27;t know how PRs would work here, it would be way too unwieldy. The Gerrit style works fantastically here.
    • steveklabnik6 hours ago
      This is standard practice in the &quot;stacked diffs&quot; world: one review, one commit.
    • shubhamjain2 hours ago
      I haven’t used this project but I have used Gerrit. It has its drawbacks (like terrible UX) but its style of code reviews were the most sensible and commit of every PR might not be as bad as it sounds. GitHub’s PR reviews are atrocious and it’s unfortunate they have become the gold standard.<p>In Gerrit, you commit every review, and the author has to edit individual commits to address them (using git rebase). This may sound PITA but it makes the history absolutely clean, and makes it easier for both reviewers and authors to review and address suggestions.<p>On Github, on the other hand, reviewing a large PR is just insanely hard. Making sure comment was addressed properly is hard as well, they can get lost in a sea of suggestions. They also become separate commits instead of being part of the commit itself. The commit should always been treated as unit of work rather than the branch.
    • jsphweid6 hours ago
      1 commit == 1 reviewable unit == 1 PR == 1 CL == 1 feature == 1 fix is a perfectly reasonable way of working.<p>I used to work at companies where no one squashed their commits and the entire git logs were filled with 80% non-sense like &quot;temp&quot; or &quot;bad&quot; or &quot;working&quot; with the other 20% being coherent changes. What&#x27;s the point of doing this I ask?
      • zmmmmm1 hour ago
        there is an inbetween .... i insist people interactively rebase those commits out. In some contexts it is actually important to have traceability of iterative proof of work towards the final result.
      • datsci_est_20155 hours ago
        Well are we talking about commits pre- or post-merge? I don’t care how many commits you put into the PR &#x2F; MR as long as they squash down to a single commit upon merge.
        • steveklabnik5 hours ago
          When you work this way, each commit is expected to be able to land independently.
      • cobalt5 hours ago
        it lets you maintain version history when working, then most workflows auto squash on merge
    • what6 hours ago
      Why would you have more than one commit for a PR? That sounds like crazy town.
      • dbetteridge4 minutes ago
        A PR is a collection of commits?<p>Integration into main ideally is squashed down to a single merge commit though.<p>It shouldn&#x27;t matter how many commits a pr takes to from 0 to finished
      • chrisweekly5 hours ago
        IMHO equating commits and PRs puts undue pressure on the scope and quality of a given commit, adding potential for unnecessary stress and eliminating the benefits of an additional buffer &#x2F; layer for aggregation of changes. A PR representing a sizable feature or refactor might naturally contain a dozen commits, each dedicated to a logical area or a requisite subset of the whole. Assuming on principle a goal of keeping main in a known-good state, such intermediate and incomplete changes (fine in an unstable feature branch) would wreak havoc.<p>It&#x27;s equivalent to asking, &quot;Why would you have more than one story in an epic (or task in a story)?&quot;.
        • what5 hours ago
          If your PR has more than one commit, each one should be deployable in isolation. Which means you can split your giant PR into smaller ones that can be reviewed independently.
          • tclancy4 hours ago
            I’ve worked under both systems, but isn’t the purity you’re describing a bit of a dodge in that you wind up force pushing amended commits when you find you forgot something?
            • Orphis6 minutes ago
              People say they care about the &quot;story&quot; behind the PR. But no one cares about that story if it&#x27;s about forgetting to fix a test and a typo in a comment.<p>The extra commits are just noise that make you think the original commit is a source of truth in a blame when it has been amended 3 times more in the same PR, but the link isn&#x27;t apparent anymore.<p>Force pushing is bad to a published branch, not a feature branch (not that you really have force pushes in Gerrit anyway). There are versions of Gerrit tooling where you can have a branch as dirty as you want locally, but only the final aggregated change is visible for review of that&#x27;s what you prefer too.
            • steveklabnik4 hours ago
              Why is that a dodge? that&#x27;s the expected way to work in this system, and it should be able to show you the interdiff between those amends.
            • adastra222 hours ago
              Not once they hit master, no. You push bug fix commits.
    • IshKebab39 minutes ago
      You wouldn&#x27;t. Imagine you have more than one of what you are calling a &quot;feature&#x2F;fix branch&quot; and they depend on each other.
  • globular-toast2 hours ago
    IME juniors struggle with making single commits in the first place. What I usually see is a scatter brained approach with more &quot;fix&quot; commits than anything else. This doesn&#x27;t help with that, does it?
    • Orphis5 minutes ago
      The Juniors are also very good with AI. Having them merge bad commits into logical ones is a fine operation for them too.
    • bjackman1 hour ago
      It means you can comment on the problematic commits saying &quot;please squash this&quot;. Then (if it works as well as Gerrit) you can compare the commit between the before and after squash state.<p>Basically it lets you treat the commits as part of the thing you are reviewing instead of just a minor detail that the UI doesn&#x27;t care about very much.
    • peanball2 hours ago
      It could help in the sense that people would not accept a pile of `fix`, `fix of fix` commits in a PR anymore.<p>The current UIs don&#x27;t punish you for that as the reviewer mostly sees one final coherent change.
      • globular-toast1 hour ago
        I&#x27;m not aware of any PR&#x2F;MR UI that hides the underlying commits. Some of us do look at them.
  • jasonlotito6 hours ago
    As someone who much prefers Gerrit&#x27;s UI&#x2F;UX over GitHub&#x27;s UI, I was disappointed that this wasn&#x27;t replicating the UI for GH reviews.<p>Edit: Just to be clear, this is not a blemish on this project. More a lament and a wish someone would create such a thing for those of us forced to leave Gerrit behind for... GitHub. =&#x2F;
    • joaoqalves1 hour ago
      Hi! Maintainer here :) I think some projects already try that. The main goal of maiao is to progressively enhance GitHub with stacked PRs (1 commit = 1 PR) and create as little new API&#x2F;UI surface as possible. That&#x27;s why we don&#x27;t have a `maiao new stack` command. Everything just runs atop normal git with a bit of `git rebase` and automation around GitHub&#x27;s API. I hope it clarifies the intent.
  • esafak7 hours ago
    Does it use Github&#x27;s new stacked PR feature?<p>Edit: apparently stacked PRs on GH are older than I thought; the readme references a 2024 blog post about it.
    • joaoqalves1 hour ago
      Hi! Maintainer here.<p>In short: maiao supported stacked PRs on GH, before it existed as a feature :) Now that it&#x27;s exists (beta), it simply does &quot;progressive enhancement&quot; and adds the PRs to the native stack. But you could still perfectly function without it. That&#x27;s how maiao works on Codeberg, and Bitbucket, for instance.<p>GiLab has an interesting approach where they auto-stack up until 20 Merge Requests, if they&#x27;re chained.
    • dietr1ch7 hours ago
      It seems so, <a href="https:&#x2F;&#x2F;github.com&#x2F;runetes&#x2F;maiao#quick-example" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;runetes&#x2F;maiao#quick-example</a><p>As they say in mtg, reading the card explains the card
  • martythemaniak7 hours ago
    Gerrit. Now that&#x27;s a name I&#x27;ve not heard in a long time. A long time
  • andai1 hour ago
    Maiao is based on Gerrit<p>What&#x27;s a Gerrit? (Looks it up)<p>Gerrit is based on Rietveld<p>What&#x27;s a Rietveld? (Looks it up)<p>Rietvelt integrates with SVN<p><a href="https:&#x2F;&#x2F;xkcd.com&#x2F;178&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;178&#x2F;</a>