Closed Bug 1457525 Opened 7 years ago Closed 6 years ago

Support landing a series of commits

Categories

(Conduit :: Lando, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: gps, Assigned: smacleod)

References

Details

(Keywords: conduit-story, conduit-triaged)

Lando currently does not support landing multiple commits in a single operation. To land a series of commits, you have to: 1. Open the Lando page for the first differential revision you want to land (requires finding it in Phabricator first) 2. Trigger landing 3. Find the next differential revision in the series and open Lando for it 4. Wait for Autoland to land the previous revision. 5. Wait for Phabricator to pick up that commit and mark it as closed so Lando doesn't complain about an open dependent revision (this appears to take ~60s) 6. Repeat. For series of even 2 or 3 commits, it is much faster to just `hg phabimport` + `hg histedit` the commit messages to add reviewer annotations than it is to click through the UI and wait on all blocking operations to complete. The current behavior is a regression from MozReview, which allowed you to land a series as one atomic unit. I find the current behavior super annoying. It is annoying enough for me to reconsider dogfooding Phabricator :/ The behavior I'd like to see is for Lando to offer to land all open revisions in a series/stack before the revision being requested to land. Of course, if such a feature were implemented, it would likely list each revision being landed. So at the point you have a list of revisions, you might want to automatically pull down all revisions in a Phabricator stack/series and have checkboxes next to reviewed revisions so people can choose exactly which revisions to land. If this were implemented, you'd only need to open Lando for *any* revision in a series and you'd be able to perform actions on any revisions in that series. While more complicated to implement, the end-user UX feels much better.
We needed to get the single-revision story solid first, but we had planned to support this before too long. It might even be worth doing before try support...
I got surprised by this just now, and I wonder if we can show a note in the UI in the case when it squashes commits to make that more explicit?
(In reply to Axel Hecht [:Pike] from comment #2) > I got surprised by this just now, and I wonder if we can show a note in the > UI in the case when it squashes commits to make that more explicit? Lando doesn't squash commits, it currently lands the diff as-is from Phabricator. What you're probably experiencing is the default behaviour to upload multiple commits squashed into a single revision at submission time. Phabricator only stores a single diff per revision, so when we land a revision it always becomes one commit. This bug is about landing multiple Phabricator revisions together as multiple commits, if they have been linked in a dependency tree on Phabricator.
Probably worth reading/considering Bug 1344432 when implementing this.
See Also: → 1344432
Depends on: 1473127
Depends on: 1473128
Support for this has landed. Going to leave this story bug open while things are tested on dev to track any followup work.
Assignee: nobody → smacleod
Status: NEW → ASSIGNED
Depends on: 1487420
Depends on: 1487424
Depends on: 1489538
Depends on: 1489540
Depends on: 1489186
Support for landing a series of commits from a stack is now live on production Lando. Anyone who would like to test & provide feedback is welcome to start using it. A few notes to keep in mind: - We are treating this new functionality as a beta. The current UI is still present and is linked by default in Phabricator. If something is broken please file a bug and feel free to fallback to the original UI. - The new series support is found at https://lando.services.mozilla.com/D<#>/ rather than https://lando.services.mozilla.com/revisions/D<#>/<#>/. For example https://lando.services.mozilla.com/revisions/D2036/5023/ would become https://lando.services.mozilla.com/D2036/. Manually modifying the url is the only way to reach this new UI currently. - When Bug 1489186 is fixed there will be an additional Lando link added to Phabricator revisions for the new UI (marked as beta). - This is not the final UI for landing a stack. Currently only the revision provided in the url is shown, along with its open ancestors if that series is landable. The final UI which is in development will show the entire stack and allow choosing any landable series in the stack to land. This simpler UI was developed first to get stack support in front of users ASAP. - Please file bugs / ask questions in #lando if something is broken or unclear. After Bug 1489186 is deployed I will be announcing series landing support on relevant mailing lists.
Depends on: 1489613
Depends on: 1489641
Depends on: 1489642
Depends on: 1489677
Depends on: 1489680
No longer depends on: 1489680
Considering this complete. The next iteration of the UI can be tracked in Bug 1490337
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Depends on: 1490774
No longer depends on: 1490774
You need to log in before you can comment on or make changes to this bug.