Page MenuHomePhabricator

Automate weekly branch cut
Open, NormalPublic

Subscribers
Tokens
"Barnstar" token, awarded by greg."Love" token, awarded by mmodell."The World Burns" token, awarded by hashar."Pterodactyl" token, awarded by zeljkofilipin."Love" token, awarded by Addshore.
Assigned To
None
Authored By
thcipriani, Jun 5 2018

Description

The weekly branch cut is a process handled via the make-wmf-branch script in the rMREL MediaWiki Release Tools repository. @demon also has worked to make this script better in branch.py in the tools/release repo.

The only human input is version numbers, really. We should automate this, and make the timing of branch-cut more widely known and consistent.

Related Objects

StatusAssignedTask
OpenNone
OpenNone

Event Timeline

hashar added a subscriber: hashar.Jun 11 2018, 4:29 PM

Maybe we can run it from releases1001 which is isolated from CI. Though the box is serving live traffic and the Jenkins instance is public https://releases-jenkins.wikimedia.org/

Vvjjkkii renamed this task from Automate weekly branch cut to ikbaaaaaaa.Jul 1 2018, 1:05 AM
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
thcipriani raised the priority of this task from High to Needs Triage.Jul 1 2018, 7:39 PM
thcipriani added a subscriber: Aklapper.
thcipriani updated the task description. (Show Details)Jul 1 2018, 7:39 PM
thcipriani renamed this task from ikbaaaaaaa to Automate weekly branch cut.
dduvall triaged this task as Normal priority.Oct 22 2018, 4:59 PM

@thcipriani and I went over all of the issues that were previously blockers to getting this done and we've decided that this is now officially unblocked. We should be able to do this in the near future.

1{
2 "submodules": [
3 "extensions/3D",
4 "extensions/AbuseFilter",
5 "extensions/ActiveAbstract",
6 "extensions/AdvancedSearch",
7 "extensions/AntiSpoof",
8 "extensions/ApiFeatureUsage",
9 "extensions/ArticleCreationWorkflow",
10 "extensions/ArticlePlaceholder",
11 "extensions/Babel",
12 "extensions/BetaFeatures",
13 "extensions/BounceHandler",
14 "extensions/Calendar",
15 "extensions/Campaigns",
16 "extensions/Capiunto",
17 "extensions/CategoryTree",
18 "extensions/CentralAuth",
19 "extensions/CentralNotice",
20 "extensions/CharInsert",
21 "extensions/CheckUser",
22 "extensions/CirrusSearch",
23 "extensions/Cite",
24 "extensions/CiteThisPage",
25 "extensions/Citoid",
26 "extensions/cldr",
27 "extensions/Cognate",
28 "extensions/CodeEditor",
29 "extensions/CodeMirror",
30 "extensions/CodeReview",
31 "extensions/CollaborationKit",
32 "extensions/Collection",
33 "extensions/CommonsMetadata",
34 "extensions/ConfirmEdit",
35 "extensions/CongressLookup",
36 "extensions/ContactPage",
37 "extensions/ContentTranslation",
38 "extensions/ContributionTracking",
39 "extensions/CreditsSource",
40 "extensions/Dashiki",
41 "extensions/Disambiguator",
42 "extensions/DismissableSiteNotice",
43 "extensions/DonationInterface",
44 "extensions/DoubleWiki",
45 "extensions/DynamicSidebar",
46 "extensions/EUCopyrightCampaign",
47 "extensions/Echo",
48 "extensions/Elastica",
49 "extensions/ElectronPdfService",
50 "extensions/EventBus",
51 "extensions/EventLogging",
52 "extensions/ExtensionDistributor",
53 "extensions/ExternalGuidance",
54 "extensions/FeaturedFeeds",
55 "extensions/FileExporter",
56 "extensions/FileImporter",
57 "extensions/FlaggedRevs",
58 "extensions/Flow",
59 "extensions/FundraiserLandingPage",
60 "extensions/FundraisingTranslateWorkflow",
61 "extensions/Gadgets",
62 "extensions/GeoCrumbs",
63 "extensions/GeoData",
64 "extensions/GettingStarted",
65 "extensions/GlobalBlocking",
66 "extensions/GlobalCssJs",
67 "extensions/GlobalPreferences",
68 "extensions/GlobalUsage",
69 "extensions/GlobalUserPage",
70 "extensions/GoogleNewsSitemap",
71 "extensions/Graph",
72 "extensions/GrowthExperiments",
73 "extensions/GuidedTour",
74 "extensions/GWToolset",
75 "extensions/ImageMap",
76 "extensions/InputBox",
77 "extensions/Insider",
78 "extensions/intersection",
79 "extensions/Interwiki",
80 "extensions/InterwikiSorting",
81 "extensions/JADE",
82 "extensions/Josa",
83 "extensions/JsonConfig",
84 "extensions/Kartographer",
85 "extensions/LabeledSectionTransclusion",
86 "extensions/LandingCheck",
87 "extensions/LdapAuthentication",
88 "extensions/Linter",
89 "extensions/LiquidThreads",
90 "extensions/Listings",
91 "extensions/LocalisationUpdate",
92 "extensions/LoginNotify",
93 "extensions/MapSources",
94 "extensions/MassMessage",
95 "extensions/Math",
96 "extensions/MobileApp",
97 "extensions/MobileFrontend",
98 "extensions/MultimediaViewer",
99 "extensions/NavigationTiming",
100 "extensions/Newsletter",
101 "extensions/NewUserMessage",
102 "extensions/Nuke",
103 "extensions/OATHAuth",
104 "extensions/OAuth",
105 "extensions/OpenStackManager",
106 "extensions/ORES",
107 "extensions/PageAssessments",
108 "extensions/PagedTiffHandler",
109 "extensions/PageImages",
110 "extensions/PageTriage",
111 "extensions/PageViewInfo",
112 "extensions/ParserFunctions",
113 "extensions/ParsoidBatchAPI",
114 "extensions/PdfHandler",
115 "extensions/PerformanceInspector",
116 "extensions/Petition",
117 "extensions/Poem",
118 "extensions/PoolCounter",
119 "extensions/Popups",
120 "extensions/ProofreadPage",
121 "extensions/PropertySuggester",
122 "extensions/QuickSurveys",
123 "extensions/Quiz",
124 "extensions/ReadingLists",
125 "extensions/RelatedArticles",
126 "extensions/Renameuser",
127 "extensions/RevisionSlider",
128 "extensions/RSS",
129 "extensions/SandboxLink",
130 "extensions/Score",
131 "extensions/Scribunto",
132 "extensions/SearchExtraNS",
133 "extensions/SecurePoll",
134 "extensions/Sentry",
135 "extensions/ShortUrl",
136 "extensions/SiteMatrix",
137 "extensions/SkinPerPage",
138 "extensions/SpamBlacklist",
139 "extensions/SubPageList3",
140 "extensions/SubpageSortkey",
141 "extensions/SyntaxHighlight_GeSHi",
142 "extensions/TemplateData",
143 "extensions/TemplateSandbox",
144 "extensions/TemplateStyles",
145 "extensions/TemplateWizard",
146 "extensions/TextExtracts",
147 "extensions/Thanks",
148 "extensions/TimedMediaHandler",
149 "extensions/timeline",
150 "extensions/TitleBlacklist",
151 "extensions/TocTree",
152 "extensions/TorBlock",
153 "extensions/Translate",
154 "extensions/TranslationNotifications",
155 "extensions/TrustedXFF",
156 "extensions/TwoColConflict",
157 "extensions/UniversalLanguageSelector",
158 "extensions/UploadsLink",
159 "extensions/UploadWizard",
160 "extensions/UrlShortener",
161 "extensions/UserMerge",
162 "extensions/VipsScaler",
163 "extensions/VisualEditor",
164 "extensions/Wikibase",
165 "extensions/WikibaseLexeme",
166 "extensions/WikibaseMediaInfo",
167 "extensions/WikibaseQualityConstraints",
168 "extensions/Wikidata.org",
169 "extensions/WikidataPageBanner",
170 "extensions/WikiEditor",
171 "extensions/wikihiero",
172 "extensions/WikiLove",
173 "extensions/WikimediaBadges",
174 "extensions/WikimediaEvents",
175 "extensions/WikimediaIncubator",
176 "extensions/WikimediaMaintenance",
177 "extensions/WikimediaMessages",
178 "extensions/XAnalytics",
179 "extensions/ZeroBanner",
180 "extensions/ZeroPortal",
181 "skins/CologneBlue",
182 "skins/EUCopyrightCampaignSkin",
183 "skins/MinervaNeue",
184 "skins/MonoBook",
185 "skins/Modern",
186 "skins/Nostalgia",
187 "skins/Timeless",
188 "skins/Vector",
189 "vendor"
190 ],
191 "@": "Everything in 'branch' is branched, but not not added as a top-level submodule to MediaWiki",
192 "branch": [
193 "VisualEditor/VisualEditor"
194 ]
195}

We can do almost the entire branch cut via API: either by calling https://gerrit-review.googlesource.com/Documentation/cmd-create-branch.html or the equivalent https rest api in gerrit.

itshappening

greg awarded a token.Feb 27 2019, 6:25 PM

The rest api is PUT /projects/{project-name}/branches/{branch-id} ( api docs )

The revision to branch from can be specified, or, conveniently it defaults to HEAD:

revisionoptionalThe base revision of the new branch. If not set, HEAD will be used as base revision.

That means we can quickly branch everything by calling the API in a loop without cloning each repo in order to push a new branch.

mmodell updated the task description. (Show Details)