I've partially rewritten the StableVersion extension. It now can * store multiple stable versions (someone wanted this; I can turn that off) * store multiple types (not actually supported yet, but the potential is included), e.g.: ** stable ** stable candidate (someone wanted this) ** "soft-protected" ** other "levels of stability" like "thoroughly reviewed"
And most important: When you click on the "declare this stable" link, it now caches the source *with replaced templates*, meaning the stable page will look the same even if the templates it uses were changed or deleted.
With some help *ahem* the feature could go live this year, IMHO.
Magnus
"Magnus Manske" magnus.manske@web.de wrote in message news:43A94ABB.7080901@web.de...
I've partially rewritten the StableVersion extension. It now can
- store multiple stable versions (someone wanted this; I can turn that
off)
- store multiple types (not actually supported yet, but the potential is
included), e.g.: ** stable ** stable candidate (someone wanted this) ** "soft-protected" ** other "levels of stability" like "thoroughly reviewed"
All of this looks great.
And most important: When you click on the "declare this stable" link, it now caches the source *with replaced templates*, meaning the stable page will look the same even if the templates it uses were changed or deleted.
Just one question: if a given template is updated, and it is decided that the changes should be propagated, is it possible to do this automagically, or does some poor sod have to go around "re-stabilising" a bunch of articles?
On 12/21/05, Phil Boswell phil.boswell@gmail.com wrote:
Just one question: if a given template is updated, and it is decided that the changes should be propagated, is it possible to do this automagically, or does some poor sod have to go around "re-stabilising" a bunch of articles?
Anything else would defeat the purpose. We need to provide the right tools to minimize the pain of operations like this. ... And, of course, avoid putting factual information in template pages if that is followed strictly, who cares if a 'stable' page has a somewhat outdated look and feel.
"Gregory Maxwell" gmaxwell@gmail.com wrote in message
[snip]
Anything else would defeat the purpose. We need to provide the right tools to minimize the pain of operations like this. ... And, of course, avoid putting factual information in template pages if that is followed strictly, who cares if a 'stable' page has a somewhat outdated look and feel.
That sounds really promising. I hope this decouples rippling changes from templates to articles.
If I understand this correct, this might help a lot on {{en:book reference}} [1] and {{en:web reference}} [2], as those use that unpopular {{en:qif}} [3] (BTW, qif is now protected).
It does not matter, whether an article uses an old version of book reference or not. A manual action per using article to update to a newer version of book reference would be just fine if we could in turn continue using book reference in articles (which we can't if {{qif}} is eliminated [4] without an equivalent replacement, which might possibly be AzaToth's code proposal [5]).
Templates should not be used to spread updated information onto a bunch of articles, if this harms the servers (and it obviously does, as it is implemented now).
Adrian Buehlmann [6]
References: [1] http://en.wikipedia.org/wiki/Template:Book_reference [2] http://en.wikipedia.org/wiki/Template:Web_reference [3] http://en.wikipedia.org/wiki/Template:Qif [4] http://mail.wikipedia.org/pipermail/wikitech-l/2005-December/033092.html [5] http://meta.wikimedia.org/wiki/User:AzaToth/Logic [6] http://en.wikipedia.org/wiki/User:Adrian_Buehlmann
Phil Boswell wrote:
Just one question: if a given template is updated, and it is decided that the changes should be propagated, is it possible to do this automagically, or does some poor sod have to go around "re-stabilising" a bunch of articles?
Right now: No.
My initial implementation didn't use caching, because I assumed that as templates shouldn't influence the article content, we could just protect all templates by default. IMHO that would be reasonable, as templates do influence a lot of articles.
Then someone on this list said no, we need to cache the article version *as it is at the moment of "stabelizing"*. So what I did was to partially run the parser on a version to be "stabelized", namely the template replacement (and the <nowiki> and HTML-tag orgy). That partially parsed text is then cached, and silently inserted via hook on revision loading.
Now it's "well, *some* templates should change". You can see how I am a little confused. Either an article version is good as it is, or it isn't. A template change shouldn't alter that fact. If it does, the version in question might not have been worth called stable in the first place. Implementing the "some" option means a lot of work (implementing a front-end for saying which templates should be updated, finding the articles that use it, find the *templates* that use it; if template A uses template B, and template B is changed and the changes are considered safe, should articles using template A be updates, even though template A is not considered safe? And so on).
As a site note, when (notice the *when* instead of the *if*, almighty roots!) my Tasks feature is going into production, many of the "daily management" templates will not be used anymore, which makes changes to these obsolete.
Magnus
As you know the date of the stabelized (validated) revision, why not simply include the state of the template at the same date ? (just need to search in template history to found the right one)
Aoineko / Guillaume Blanchard
Magnus Manske wrote:
Phil Boswell wrote:
Just one question: if a given template is updated, and it is decided that the changes should be propagated, is it possible to do this automagically, or does some poor sod have to go around "re-stabilising" a bunch of articles?
Right now: No.
My initial implementation didn't use caching, because I assumed that as templates shouldn't influence the article content, we could just protect all templates by default. IMHO that would be reasonable, as templates do influence a lot of articles.
Then someone on this list said no, we need to cache the article version *as it is at the moment of "stabelizing"*. So what I did was to partially run the parser on a version to be "stabelized", namely the template replacement (and the <nowiki> and HTML-tag orgy). That partially parsed text is then cached, and silently inserted via hook on revision loading.
Now it's "well, *some* templates should change". You can see how I am a little confused. Either an article version is good as it is, or it isn't. A template change shouldn't alter that fact. If it does, the version in question might not have been worth called stable in the first place. Implementing the "some" option means a lot of work (implementing a front-end for saying which templates should be updated, finding the articles that use it, find the *templates* that use it; if template A uses template B, and template B is changed and the changes are considered safe, should articles using template A be updates, even though template A is not considered safe? And so on).
As a site note, when (notice the *when* instead of the *if*, almighty roots!) my Tasks feature is going into production, many of the "daily management" templates will not be used anymore, which makes changes to these obsolete.
Magnus _______________________________________________ Wikitech-l mailing list Wikitech-l@wikimedia.org http://mail.wikipedia.org/mailman/listinfo/wikitech-l
On 12/22/05, Guillaume Blanchard blanchardg@cavia.com wrote:
As you know the date of the stabelized (validated) revision, why not simply include the state of the template at the same date ? (just need to search in template history to found the right one)
Or store the stable version with all templates subst:ed, and then just parse it normally when it is displayed.
-- Stephen Bain stephen.bain@gmail.com
Magnus, are you working with Tim on this or are you just writing code that's going to be thrown away next week?
-- brion vibber (brion @ pobox.com)
wikitech-l@lists.wikimedia.org