Topic on Talk:Version lifecycle

Indicating LTS releases

16
FeRDNYC (talkcontribs)

Spurred by a discussion elsewhere, I was comparing the info on this page to what's shown in Template:MWReleases, and it seems like there are some inconsistencies.

This page indicates that 1.35 is a LTS release, but {{MWReleases}} gives no indication of that, and strongly implies that 1.31 is still the current LTS, rather than the "legacy LTS" (whatever that means).

In fact, the templates in Category:MediaWiki version information templates (which drive the contents of the {{MWReleases}} box), have no entries for a "current" LTS release — only the {{MW legacy lts branch number}} is represented (which is 1.31).

I'm not quite clear on how {{MW legacy lts branch number}} ages out, upon the retirement of that release. Is there always a legacy LTS release? If so I suppose 1.35 would move to that spot next month, when 1.31 is EOL'd. (Seems a bit weird for the current stable release to also be the "legacy" LTS, tho. I would think 1.35 would stay as the current LTS until there's a next LTS.)

Regardless, it seems to me like there should be a Template:MW lts branch number (and friends), and it would currently point to 1.35. Having that template would allow {{MWReleases}} to detect and indicate that 1.35 is also an LTS release, the same way this page does. Or am I misinterpreting the release cycle somehow?

Legoktm (talkcontribs)

Yes, I think we should mark 1.35 as the current LTS alongside "stable", and indicate that 1.31 is legacy LTS (which just means there's a newer released LTS available).

Once 1.31 is EOL, then 1.35 will be both the LTS and legacy LTS...it's weird but yeah (at that point 1.36 would have taken over "stable").

I'm supportive of whatever template changes it takes to get there :-)

FeRDNYC (talkcontribs)

OK, I've created {{MW lts branch number}}, and have a {{MWReleases/sandbox}} version of the version-number box with edits applied. It should work like this, with the logic I modified in bold:

  • Legacy LTS == LTS is accounted for, and will suppress the display of the (redundant) Legacy LTS
  • Legacy LTS is the first version listed, iff != current LTS
  • Same as before, if a legacy version != legacy LTS exists, it's listed after the legacy LTS
  • The current LTS is now ALWAYS displayed. If current LTS == stable, it will be marked as both "(stable; LTS)"
  • Otherwise, the stable version will be listed after the LTS, iff != current LTS
  • If {{MW beta branch number}} is something other than "—", the beta version is listed
  • Finally, the alpha/master is always listed

I also fixed the {{abbr}} transclusions for LTS, which were coming out backwards (as Long Term Support)... which I now see is due to the TemplateData for Template:Abbr having the fields reversed.

Jdforrester (WMF) (talkcontribs)

Legacy LTS is the first version listed, iff != current LTS

This seems a bit confusing. Although in practice legacy LTS releases will generally be our oldest release, it's listed first because it's old, not the other way around… Eh, it's probably OK.

FeRDNYC (talkcontribs)

I noticed that as well... the labels (legacy; LTS) next to the legacy releases are wrapped in <small></small>, but maybe the entire line(s) should be reduced / de-emphasized some... and/or, the current LTS or current stable (or both) could be enlarged and bolded, to make it clear they're the primary focus.

Or, barring that, it could go:

Stable releases

  • Current stable (if != current LTS)
  • Current LTS

Supported legacy releases

  • Legacy LTS (iff != current LTS)
  • Other legacy (if defined and != Legacy LTS)

Future releases

  • current beta (if defined)
  • current alpha/master

Though that's a lot of extra stuff to stick into what's meant to be a navbox, now that I look at it.

Jdforrester (WMF) (talkcontribs)

Yeah, let's keep things simpler and consistent?

FeRDNYC (talkcontribs)

Well, Izno rewriting the whole thing to use Template:Sidebar, in addition to just being a great idea generally, definitely helped with the consistency issues.

Something's gotta give, tho. Now that 1.36 is officially released, the sidebar shows:

Even more strongly implying that 1.31 is the current LTS, and that 1.35 is not an LTS, when in fact exactly the opposite is true for both of those things.

I'll work on porting my sandbox changes over to the new Template:sidebar version of the template, so that we can at least correctly indicate 1.35's status as an LTS release. Questions of ordering and emphasis can, I think, be addressed separately.

FeRDNYC (talkcontribs)

And I realize now I need to account for one more thing in the logic: when legacy (not stable) == current LTS (not legacy LTS).

...Now, that's really confusing: There's a legacy LTS version (1.31), and a legacy version (1.35)... but the legacy version is also an LTS version. 🤯

Jdforrester (WMF) (talkcontribs)

Yes, I suppose we've not hit that since this was all turned into "clever" templates.

FeRDNYC (talkcontribs)

I've updated Template:MWReleases/sandbox to incorporate my changes in with Izno's sandbox rewrite.

I also imported Wikipedia's Template:Hlist over here, and started using it to build the 'qualifiers' list. (Things like

  • legacy
  • stable
  • LTS

next to the version.) The main reason being that Template:Hlist will automatically collapse empty arguments, which makes it a lot easier to construct a list out of conditionally-visible items.

Originally Izno had the "Older versions" link as the first bullet item in the list. That seemed weird to me (you can see it at the live Template:MWReleases), so I made it a separate sidebar item of its own, above the bullet list. I'd be quite happy to move it to the bottom of the sidebar, though, even though it'd be "out of order". I don't think it really needs to lead off the sidebar content at all.

Anyway, review or comment appreciated. Looks like the next thing to tackle is the {{MW release status}} header, which doesn't currently support "lts" as a status, and as a result is also hiding 1.35's LTS status:

*sigh*

FeRDNYC (talkcontribs)

Also, way to ignore my class=inline there, Template:Hlist. Maybe I should've used {{=}}, to hide it from Flow.

Jonathan3 (talkcontribs)

I've just seen this topic after making a related change to the Download page: see Topic:W9y3p9bik5syyn0v.

I wasn't bold enough to create a "MW current lts release number" template (which was clearly missing). I didn't spot FeRDNYC's "MW lts branch number" template because it's named differently to the others.

Anyway, I won't make any further changes now! And apologies if I didn't get it right.

FeRDNYC (talkcontribs)

"I didn't spot FeRDNYC's "MW lts branch number" template because it's named differently to the others."

Is it? It wasn't intended to be! Or do you just mean that I was lazy and only created the single "branch number" template and not the others, since I only needed the one for MWReleases? That was entirely just me doing half a task, the rest of the template set should absolutely be created IMHO.

And thanks for updating the download page, I had noticed that was showing 1.35 as LTS but didn't realize it was a recent change.

By all means, don't stop on my account if there are any other edits you're interested in making. I work pretty much in the open, if I'm updating a template the edits will either be live or, if they're more involved, in the sandbox. Either way, the more hands and eyes the merrier.

Jonathan3 (talkcontribs)

Thanks. I might get back to this some time, though it looks like it's under control. The Lua idea sounds good, as hopefully once it's been thought through properly it won't need to be changed. The current template structure is Byzantine, especially with the translate tags and Template:Void.

I didn't find your template because there is Template:MW stable release number, Template:MW legacy release number, and Template:MW legacy lts release number. I was looking for "release number" here but yours is Template:MW lts branch number.

FeRDNYC (talkcontribs)

@Jonathan3 The templates are byzantine, and I really don't understand why they're still in use (and, what's more, what we "probably want to use" according to the Module:Version docs ) when there's a perfectly good Module:Version already, which all of those templates just call.

Seems like we could replace all of the template transclusions with direct {{#invoke:Version}} calls, and things would at least be slightly less obtuse.

Maybe it's a caching thing? I could see how perhaps the results of an #invoke aren't cached, but the transclusion result for a template is. I imagine that would make the templates significantly less expensive than direct module calls. But I have no idea if that's the reason, or even if it's true; it's just the only thing I can come up with off the top of my head.

(And it'd be nice if, whatever the reason, it was actually provided when recommending use of the templates over direct calls in Module:Version/doc. In fact, I just added a Wikipedia-style [why?] after that unexplained recommendation.)

I'll create those missing {{MW lts foo}} templates now, so at least the full set is available.

FeRDNYC (talkcontribs)
Reply to "Indicating LTS releases"