Closed Bug 1929372 Opened 1 year ago Closed 8 months ago

[mozversioncontrol] Add unofficial support for Jujutsu repositories

Categories

(Firefox Build System :: General, task, P3)

task

Tracking

(firefox139 fixed)

RESOLVED FIXED
139 Branch
Tracking Status
firefox139 --- fixed

People

(Reporter: ahal, Assigned: sfink)

References

Details

Attachments

(3 files)

Many of us have started using Jujutsu for development in mozilla-central. While Jujutsu itself works really well (on top of git-cinnabar), some of our tooling can cause a few rough edges. Most (if not all) of these rough edges could be smoothed with a specialized JujutsuRepository class in mozversioncontrol.

This bug aims to add unofficial support for Jujutsu. This does not mean Jujutsu will become an officially supported way of working with Firefox. Any fixes / improvements here will need to be developers scratching their own itch.

I'm open to ideas on how best to communicate this. I'm thinking a warning that gets printed the first time the JujutsuRepository class is initiated that needs to be acknowledged.

I don't love monolithic files, this simply moves things around to
submodules without changing any logic.

Attachment #9435559 - Attachment description: WIP: Bug 1929372 - [mozversioncontrol] Refactor into vcs specific submodules, r?sheehan → Bug 1929372 - [mozversioncontrol] Refactor into vcs specific submodules, r?sheehan
Keywords: leave-open
Pushed by ahalberstadt@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3e7991b6ea82 [mozversioncontrol] Refactor into vcs specific submodules, r=sheehan
Depends on: 1930729
No longer depends on: 1930729

Sorry, I missed that shim, patch is up.

Flags: needinfo?(ahal)
Pushed by cosheehan@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1631a4d2ffc4 [mozversioncontrol] Fix missing import shim to SrcRepository, r=sheehan
Severity: -- → S3
Priority: -- → P3
Depends on: 1959786
Attachment #9477830 - Attachment description: Bug 1929372 - Implement JJRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Gated on $MOZ_ALLOW_JJ for now, to avoid incurring a maintenance burden. r=ahal → Bug 1929372 - Implement JujutsuRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Gated on $MOZ_ALLOW_JJ for now, to avoid incurring a maintenance burden. r=ahal
Attachment #9477830 - Attachment description: Bug 1929372 - Implement JujutsuRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Gated on $MOZ_ALLOW_JJ for now, to avoid incurring a maintenance burden. r=ahal → Bug 1929372 - Implement JujutsuRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Warns unless $MOZ_AVOID_JJ for now, to avoid incurring a maintenance burden. r=ahal
Attachment #9477830 - Attachment description: Bug 1929372 - Implement JujutsuRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Warns unless $MOZ_AVOID_JJ for now, to avoid incurring a maintenance burden. r=ahal → Bug 1929372 - Implement JujutsuRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Warns unless $MOZ_AVOID_JJ_VCS for now, to avoid incurring a maintenance burden. r=ahal
Pushed by sfink@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d33734cbe630 Implement JujutsuRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Warns unless $MOZ_AVOID_JJ_VCS for now, to avoid incurring a maintenance burden. r=ahal

Backed out for causing python failures.

Flags: needinfo?(ahal)
Pushed by sfink@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/39d2faeed169 Implement JujutsuRepository in mozversioncontrol.repo.jj to allow using JJ directly (on top of a git repository, whether colocated or not). Warns unless $MOZ_AVOID_JJ_VCS for now, to avoid incurring a maintenance burden. r=ahal
Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Flags: needinfo?(ahal)
Keywords: leave-open
Resolution: --- → FIXED
Regressions: 1961000

Taking the bug so regressions get blamed on the right person.

Assignee: ahal → sphink
Regressions: 1961304
Regressions: 1961305
Regressions: 1961514
Target Milestone: --- → 139 Branch

All the regressions are closed, and searching bmo for jujutsu or jj only finds moz-phab bugs and bug 1964759 (which is a generic issue with pipelint). Can we omit the MOZ_AVOID_JJ_VCS warning by default now, do we think? If not, what would it take for that to happen?

Flags: needinfo?(sphink)

The purpose of the warning was to avoid dumping bugs on the DevEx team (not sure what the official abbreviation is) with the expectation that they "should" be fixed because of it being a supported configuration. That concern was highest when (1) the support was new and untried, and (2) we were in the midst of the hg->git migration. It is still an officially unsupported configuration, though, so it's still a valid concern.

With that in mind I don't feel like I should have any say in whether the warning is removed or not, it's really for that team to decide since they'll be the ones getting support requests. (To be clear, I intend to keep fixing things that come up when I can.)

Accordingly, I'll 301 to ahochheiden.

Flags: needinfo?(sphink) → needinfo?(ahochheiden)

(In reply to Steve Fink [:sfink] [:s:] from comment #16)

The purpose of the warning was to avoid dumping bugs on the DevEx team (not sure what the official abbreviation is)

Engineering Workflow. πŸ™‚

(In reply to :Gijs (he/him) from comment #15)

Can we omit the MOZ_AVOID_JJ_VCS warning by default now, do we think? If not, what would it take for that to happen?

I think we're close, but we're still waiting on bug 1964150 for official moz-phab support. I spoke to Glob about this a while back and plan on making this an officially supported workflow, but that was a hard blocker from his perspective before we can make that distinction.

I plan to update the 'getting started' docs to reflect that once we have the official moz-phab support (Similar to how when hg was recommended there were hints that git was also supported, essentially providing bread crumbs to the jujutsu doc). I've already updated ./mach vcs-setup to support jj, and made the mozversioncontrol tests run with jj in CI. I think jj fix was broken again at some point, but maybe only on Windows (It hasn't worked for me for a while but I haven't gotten around to investigating yet).

There was also an idea floated to bootstrap jj as a toolchain (to ensure everyone is on the same version), but that's not necessarily a blocker.

I'm not sure what specifically we're waiting on in bug 1964150, I think it was regarding tests? Some sections of moz-phab that do not have test coverage were modified, so the ask was to implement tests for that section and I think that's what we're waiting on? So theoretically somebody could jump in to help push that along.

And to be clear, I'm definitely not the sole gatekeeper here, I've just kind of volunteered to give this the attention I feel it deserves.

Flags: needinfo?(ahochheiden)

As the person authoring patches for bug 1964150: the first step is to get patches for bug 1956345 landed, though I'm not sure what we're waiting on there either. I'll ping Connor Sheehan to see if there's anything on his end he'd like to see first; it's been a few weeks since I've followed up, and I haven't made any changes during that time.

ETA: https://bugzilla.mozilla.org/show_bug.cgi?id=1956345#c7

(In reply to Alex Hochheiden [:ahochheiden] from comment #17)

(In reply to Steve Fink [:sfink] [:s:] from comment #16)

The purpose of the warning was to avoid dumping bugs on the DevEx team (not sure what the official abbreviation is)

Engineering Workflow. πŸ™‚

Ah right, sorry, I should know that from the newsletter.

As for an abbreviation, I propose "EWw". 😜

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: