Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Chris Steipp
On Thu, Feb 20, 2014 at 2:37 PM, Ryan Lane  wrote:

> Note that unless you're willing to keep up to date with WMF's relatively
> fast pace of branching, you're going to miss security updates. No matter
> what, if you use git you're going to get security updates slower, since
> they are released into the tarballs first, then merged into master, then
> branches (is this accurate?). Sometimes the current WMF branch won't even
> get the security updates since they are already merged locally onto
> Wikimedia's deployment server.
>

I've been releasing tarballs, then pushing the fixes into the release
branches and master in gerrit. It all happens within a couple of hours, but
the tarballs have a slightly narrower timeframe. I rarely push to wmfXX
branches, since those already have the patches applied on the cluster, and
the next branch cut from master will contain the fix from master.

We're potentially moving to pushing them into gerrit and having jenkins
build the tarballs, so this process might be flipped in the near future.
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Daniel Friesen
On 2014-02-20 2:50 PM, Bartosz Dziewoński wrote:
> On Thu, 20 Feb 2014 23:21:37 +0100, Greg Grossmeier
>  wrote:
>
>> 
>>> It's worth noting that WMF branches also include temporary hacks to
>>> keep current JS/CSS and cached HTML output compatible (for at least 30
>>> days), while release branches never contain them (and thus require
>>> HTML caches to be purged during the upgrade process).
>>
>> Isn't that:
 Feel free to base it off of either. There shouldn't be any
 WMF-specific
 things in those wmfXX branches. If there is, it is a commit called
 something like "Commit of various WMF live hacks". That one commit can
 be safely reverted.
>>
>> eg:
>> https://git.wikimedia.org/commit/mediawiki%2Fcore.git/a868d086b68f05e7f93727dfb992c3f59c0525cf
>>
>
> Nope, I mean different hacks (that people generally don't bother
> ops/deployers with), like the ones being removed by
> https://gerrit.wikimedia.org/r/#/c/61075/ or
> https://gerrit.wikimedia.org/r/#/c/72151/ or
> https://gerrit.wikimedia.org/r/#/c/102492/ or
> https://gerrit.wikimedia.org/r/#/c/82102/ . They are required because
> (to simplify) generated page HTML (which is cached for up to 30 days
> on our cluster) includes links to "autoupdating" JS and CSS code. Thus
> any JS/CSS changes need to be compatible with older generated HTML.
I've thought for awhile that there are better ways to deal with the
cache than this.
My thought was a sort of snapshot feature for ResourceLoader:
https://www.mediawiki.org/wiki/User:Dantman/Code_Ideas#rl-snapshot

- We start outputting &version= on the load.php requests for skin resources.
- WMF runs a script that dumps the current state of just about all
modules into a snapshot folder.
- The MediaWiki upgrade is performed.
- Some configuration makes reference to the location of the snapshot.
- When load.php sees an old &version= it serves resources from the
snapshot instead of MediaWiki, this way even if the styles, scripts,
etc... have been modified, the module has been renamed, or even entirely
deleted the module is still served to old pages.

This way we don't have to create or revert any hacks at all, we are
unrestricted in the types of CSS/JS and HTML changes we make, and WMF
doesn't get any special treatment since now any wiki large enough to
have issues resetting its entire cache can take advantage of it.

~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://danielfriesen.name/]


___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Greg Grossmeier

> Note that unless you're willing to keep up to date with WMF's relatively
> fast pace of branching, you're going to miss security updates. No matter
> what, if you use git you're going to get security updates slower, since
> they are released into the tarballs first, then merged into master, then
> branches (is this accurate?). Sometimes the current WMF branch won't even
> get the security updates since they are already merged locally onto
> Wikimedia's deployment server.

That's a good point, with one small clarification/rewording:
Someone who's following wmfXX branches will get the security fixes the
next branch after the tarball is released. That's usually with in the
working week (we tend to release tarballs on Mon/Tues, with new branches
on Thursday).

So, yes, if you're pacing behind on the wmfXX branches, you'll want to
take note of security releases and backport patches as appropriate (all
security bugs have single patches attached to the Bugzilla report, and
those are made public after the tarball is released).

Greg

-- 
| Greg GrossmeierGPG: B2FA 27B1 F7EB D327 6B8E |
| identi.ca: @gregA18D 1138 8E47 FAC8 1C7D |

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Bartosz Dziewoński

On Thu, 20 Feb 2014 23:21:37 +0100, Greg Grossmeier  wrote:




It's worth noting that WMF branches also include temporary hacks to
keep current JS/CSS and cached HTML output compatible (for at least 30
days), while release branches never contain them (and thus require
HTML caches to be purged during the upgrade process).


Isn't that:

Feel free to base it off of either. There shouldn't be any WMF-specific
things in those wmfXX branches. If there is, it is a commit called
something like "Commit of various WMF live hacks". That one commit can
be safely reverted.


eg:
https://git.wikimedia.org/commit/mediawiki%2Fcore.git/a868d086b68f05e7f93727dfb992c3f59c0525cf


Nope, I mean different hacks (that people generally don't bother ops/deployers with), 
like the ones being removed by https://gerrit.wikimedia.org/r/#/c/61075/ or 
https://gerrit.wikimedia.org/r/#/c/72151/ or https://gerrit.wikimedia.org/r/#/c/102492/ 
or https://gerrit.wikimedia.org/r/#/c/82102/ . They are required because (to simplify) 
generated page HTML (which is cached for up to 30 days on our cluster) includes links to 
"autoupdating" JS and CSS code. Thus any JS/CSS changes need to be compatible 
with older generated HTML.


--
Matma Rex

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Ryan Lane
On Thu, Feb 20, 2014 at 1:20 PM, Sumana Harihareswara  wrote:

> Reuben Smith of wikiHow asked:
> "We're having a hard time figuring out whether we should be basing our
> wikiHow code off Mediawiki's external releases (such as the latest 1.22.2),
> or off the branches that WMF uses for their internal infrastructure (latest
> looks to be wmf/1.23wmf14).
>
> Do you have any thoughts of guidance on that? We're leaning towards moving
> to using the WMF internal branches, since we use MySQL as well, but I
> wanted to hear from different people about the drawbacks."
>
>
> Greg Grossmeier responded:
>
> "The quick answer is:
> Feel free to base it off of either. There shouldn't be any WMF-specific
> things in those wmfXX branches. If there is, it is a commit called
> something like "Commit of various WMF live hacks". That one commit can
> be safely reverted.
>
> The wmfXX branches are made every week on Thursday morning (Pacific)
> before we deploy. As we get closer to the next release (1.23) the
> MediaWiki Release Managers (our outside contractors, Mark and Markus,
> not myself) will pick a wmfXX to call a Release Candidate.
>
> Going with a 1.22.x would give you stability at the loss of getting
> fixes faster and it means a bigger upgrade task when 1.23 is out.
>
> Summary: If you want to keep closer to WMF, pick a wmfXX branch (this
> assumes you'll follow at some pace behind WMF). If you don't want to be
> that bleeding edge, stick with 1.22.x.
>
>
Note that unless you're willing to keep up to date with WMF's relatively
fast pace of branching, you're going to miss security updates. No matter
what, if you use git you're going to get security updates slower, since
they are released into the tarballs first, then merged into master, then
branches (is this accurate?). Sometimes the current WMF branch won't even
get the security updates since they are already merged locally onto
Wikimedia's deployment server.

That said, due to the poor state of extension management in MediaWiki, the
only reasonable way to manage MediaWiki is to use the WMF branches since
they handle dependencies for the most popular extensions. I was hoping that
composer would make managing extensions easier, but I've been tracking it
in SMW and it's actually making things more difficult.

- Ryan
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Greg Grossmeier

> It's worth noting that WMF branches also include temporary hacks to
> keep current JS/CSS and cached HTML output compatible (for at least 30
> days), while release branches never contain them (and thus require
> HTML caches to be purged during the upgrade process).

Isn't that:
>> Feel free to base it off of either. There shouldn't be any WMF-specific
>> things in those wmfXX branches. If there is, it is a commit called
>> something like "Commit of various WMF live hacks". That one commit can
>> be safely reverted.

eg:
https://git.wikimedia.org/commit/mediawiki%2Fcore.git/a868d086b68f05e7f93727dfb992c3f59c0525cf

Greg

-- 
| Greg GrossmeierGPG: B2FA 27B1 F7EB D327 6B8E |
| identi.ca: @gregA18D 1138 8E47 FAC8 1C7D |

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Jeremy Baron
On Thu, Feb 20, 2014 at 9:53 PM, Isarra Yos  wrote:
> It would require pretty consistent maintenance of their own, but it could be
> worth it.

IOW, you need to hire a Greg Grossmeier :)

-Jeremy

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Isarra Yos

On 20/02/14 21:32, Bartosz Dziewoński wrote:
It's worth noting that WMF branches also include temporary hacks to 
keep current JS/CSS and cached HTML output compatible (for at least 30 
days), while release branches never contain them (and thus require 
HTML caches to be purged during the upgrade process).


This usually only affects changes to the Vector skin which is not the 
default there (I'm not sure if it's even available), but nevertheless 
wikiHow might prefer one of these depending on how their caching layer 
is set up.




If wikiHow's setup is sufficiently different, it might be worth 
considering making their own branches from the master - test and fix 
things from what was the current master, deploy it, move the test up to 
the new master, and repeat. This would do the same as with the wmf 
branches to avoid a lot of the usual difficulty involved in upgrading, 
but could perhaps also be tailored to be more specific to the systems 
wikiHow uses.


It would require pretty consistent maintenance of their own, but it 
could be worth it.


-I

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Re: [Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Bartosz Dziewoński

It's worth noting that WMF branches also include temporary hacks to keep 
current JS/CSS and cached HTML output compatible (for at least 30 days), while 
release branches never contain them (and thus require HTML caches to be purged 
during the upgrade process).

This usually only affects changes to the Vector skin which is not the default 
there (I'm not sure if it's even available), but nevertheless wikiHow might 
prefer one of these depending on how their caching layer is set up.

--
Matma Rex

___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

[Wikitech-l] deploying the most recent MediaWiki code: which branch?

2014-02-20 Thread Sumana Harihareswara
I got permission from Reuben Smith of wikihow and WMF release manager Greg
Grossmeier to re-post this exchange.

Sumana Harihareswara
Engineering Community Manager
Wikimedia Foundation


Reuben Smith of wikiHow asked:
"We're having a hard time figuring out whether we should be basing our
wikiHow code off Mediawiki's external releases (such as the latest 1.22.2),
or off the branches that WMF uses for their internal infrastructure (latest
looks to be wmf/1.23wmf14).

Do you have any thoughts of guidance on that? We're leaning towards moving
to using the WMF internal branches, since we use MySQL as well, but I
wanted to hear from different people about the drawbacks."


Greg Grossmeier responded:

"The quick answer is:
Feel free to base it off of either. There shouldn't be any WMF-specific
things in those wmfXX branches. If there is, it is a commit called
something like "Commit of various WMF live hacks". That one commit can
be safely reverted.

The wmfXX branches are made every week on Thursday morning (Pacific)
before we deploy. As we get closer to the next release (1.23) the
MediaWiki Release Managers (our outside contractors, Mark and Markus,
not myself) will pick a wmfXX to call a Release Candidate.

Going with a 1.22.x would give you stability at the loss of getting
fixes faster and it means a bigger upgrade task when 1.23 is out.


Summary: If you want to keep closer to WMF, pick a wmfXX branch (this
assumes you'll follow at some pace behind WMF). If you don't want to be
that bleeding edge, stick with 1.22.x.


Hope that helps,

Greg

PS: To learn more about our deploy cycle, see:
https://wikitech.wikimedia.org/wiki/Deployments/One_week
PPS: To see where we are at any given point, wrt MediaWiki, see:
https://www.mediawiki.org/wiki/MediaWiki_1.23/Roadmap#Schedule_for_the_deployments";
___
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l