[SRU] Update to maintenance release 2.1.5 in Xenial

Bug #1595358 reported by Amr Ibrahim
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
lyx (Ubuntu)
Fix Released
Low
Unassigned
Xenial
New
Low
Unassigned

Bug Description

IMPACT
-------
http://www.lyx.org/announce/2_1_5.txt

LyX 2.1.5 is the fifth, and final, maintenance release in the 2.1.x series.
You can download LyX 2.1.5 from http://www.lyx.org/Download/.

LyX 2.1.5 is the result of ongoing efforts to make our stable version
even more reliable and stable. We have fixed a number of bugs and made
a number of improvements. Many of these were minor, but there were a
few crashes we fixed, too. We strongly encourage all LyX users who wish
to continue using 2.1.x to upgrade to this version.

What's new
==========

** Updates:
***********

* USER INTERFACE

- Add \ensuremath to the list of math completions.

- The entries in the outliner are no longer truncated at 40 chars (bug 9579).

- The indentation of beamer frame contents has been decreased and unified.

- In mathed, select only current cell on double-click (bug 9747).

* DOCUMENTATION AND LOCALIZATION

- New German translation of the PDF-comment example file.

- Updated Brazilian Portuguese, French and German user interface localization.

- Updated example file for PDF-comments.

- Improved example file for the moderncv document class.

- Updated French translation of Linguistics manual.

- Revised Spanish Tutorial manual.

- Revised French UserGuide manual.

** Bug fixes:
*************

* DOCUMENT INPUT/OUTPUT

- Fixed a typo in the tutorial.

- Tex2lyx: fix bug with comments immediately folowed by some test (bug 9551).

* USER INTERFACE

- Fix crash when activating "Close All" while an export process is running in the background (bug 9711).

- Fix crash when unfolding/copying macros containing other macros (bug 9490).

- Fix crash when inserting a line in multline math environment (bug 9902).

- Fix crash when closing buffer one of whose children is also a child of other master (bug 9907).

- Fix crash when clicking to the left of a tabular inset (bug 9955).

- Fix assertion when selecting text just after loading document (bug 9912).

- Fix automatic insertion of longtable captions (bug 9692).

- Fix crash with previewed math shown in two views of the same document (bug 9957).

- Fix setting of nested minipage via the dialog (bug 8716).

- Reset cursor language when changing document-wide language (bug 9586).

- Reset cursor font when leaving an inset to the left (bug 6032).

- Reset cursor font when navigating with find or spellcheck (bug 9500).

- Reset cursor font after inset-select-all (bug 9719).

- Fix one case where cursor does not enter insets correctly (bug 9913).

- Correctly update previews when cursor leaves inset (bug 6173).

- Fix subscripts and superscripts of \overrightarrow and related macros (bug 1996).

- Fix a crash with the outliner when switching documents (bug 9754).

- Repaired selection of text and search-and-replace in the presence of math macros. The selection is no longer cleared unvolontarily (bugs 6078, 9364).

- Disable setting vertical lines when using a formal table (bug 9816).

- Disable function "layout" when the layout cannot be found (bug 8077).

- Fix two bibliography related bugs: No default style shown in bibliography dialog in certain cases, and bad enabling-disabling behavior in Document> Settings> Bibliography (bugs 9797 and 9848).

- The math command \sideset is now in the autocomplete list (bug 9810).

- Disable Apply button in InsetParams dialogs if there is no inset to apply to (bug 9386).

- Allow to insert program listings to footnotes and margin notes (fixes bug 9785, but reintroduces bug 9321).

- Do not output returns and tabs in outliner.

- Fix on-screen font of starred sections in paper text class.

- Fix category of several layouts of the foils text class (UI only).

- Correct minimal size of the view source window (bug 4430).

- Fix that changing the box type could delete the box (bug 8712).

- Fix a crash when introducing a new shortcut (bug 9869).

- Fix initialization problem with default Inset Layout.

- When a counter is stepped, reset recursively all subcounters (bug 10063).

- Erase correctly math multi-cell selections (bug 9747).

- Fix warning about Undo when an empty subscript is automatically deleted in mathed (bug 10022).

- Fix on screen narrow box when using \width as box width unit (bug 10048).

* INTERNALS

- Fix parsing problems of class and category declaration line in layout files that could break the textclass detection (bug 9746).

- Another attempt to fix NSAutoreleasePool related crashes within LinkBack driver. Now there is no global static pool used anymore (bug 8637).

- Allow quotes in PDF text properties (bug 9830).

- Avoid clogging the undo stack with useless entries when using the tabular dialog (bug 9960).

* DOCUMENTATION AND LOCALIZATION

- German UserGuide: fix many typos

- French: "Rechercher" and "Remplacer" are no longer bound to the same accelerator

- splash.lyx example file: correct a menu name

* LYXHTML

- Fix output of math sizes.

* ADVANCED FIND AND REPLACE

- Improved window geometry on Mac OS X (part of bug 9889).

* BUILD/INSTALLATION

- Update the included boost library source to 1.60.

- Work around gcc 5 bug 67557.

- Give a warning when system boost and stdlib-debug are used together (bug 9736).

- Correct Mac OS X package build script (10.11 SDK for Xcode 7 + El Capitan).

- Remove build file Resources.cpp from distribution (3.9M unpacked).

[Test case]
Open a previous .lyx file with the new version in xenial-proposed, which was written by 2.1.4, and read, modify, write changes in it then try to view it in PDF and export into other formats.

[Regression potential]
One of the main features of 2.1.5 is its ability to read and write files in the 2.2.x format. Since the conversion process back and forth usually will not leave one with an identical file, however, we do not recommend attempting to collaborate with users of 2.2.x.

Version 2.1.4 in Xenial now cannot even read or write in 2.2.x format so users of Xenial already know that they cannot collaborate with 2.2.x users. So the regression potential is low.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in lyx (Ubuntu):
status: New → Confirmed
Changed in lyx (Ubuntu):
importance: Undecided → High
status: Confirmed → Triaged
Revision history for this message
Jean-Marc Lasgouttes (jmarc) wrote :

This won't happen, if I understand correctly the rules. However, I do not have the right to set it as "won't fix".

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :

Xenial is on the 2.1.x branch. Upstream maintains stable branches only for bug fixes. 2.1.5 is a maintenance release and the last version in the 2.1.x branch.

The same happened for Trusty. It is on the 2.0.x branch, and got updated to 2.0.8.1, which is the last version in the stable 2.0.x branch.

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :
Revision history for this message
Jean-Marc Lasgouttes (jmarc) wrote :

Sorry, I missed the fact that xenial is LTS, so it is still possible to upgrade some packages.

So putting my LyX developer hat on, I see three arguments for upgrading:
 * LyX 2.1.5 fixes several crashes
 * it is able to read files from LyX 2.2.x, as found in newer Ubuntu versions.
 * we are very careful to avoid introducing new bugs in our stable series

What has to be done for that to happen?

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :

You could attach here a debdiff of 2.1.5 for Xenial.
You can find more details https://wiki.ubuntu.com/StableReleaseUpdates

I will do the paperwork.

Revision history for this message
Jean-Marc Lasgouttes (jmarc) wrote :

To be frank, I do not have any idea of how to do that. I am a LyX developer, but I know nothing about packaging. I took a look at the debian packages, and it turns our that 2.1.5 never got packaged there. How is one supposed to proceed in this case?

I am interested to make this go forward, but not if it means a too large investment...

PS: what is the deadline for getting 2.3.0 (which is not released yet) into bionic? How long before this date do we need to prepare?

Revision history for this message
Dr. Tobias Quathamer (toddy) wrote :

Dear Jean-Marc,

I just stumbled upon your last comment, and I can answer at least your last two questions.

The deadline to get LyX 2.3.0 into bionic is an upload to Debian before March 1st, see https://wiki.ubuntu.com/BionicBeaver/ReleaseSchedule.

I would think that it might be good to have a new package in Debian a few days earlier, so that the automatic migration can take place and LyX does not miss the deadline by a few hours.

Do you think that LyX has a chance to be ready in the next few weeks?

Revision history for this message
Jean-Marc Lasgouttes (jmarc) wrote :

Dear Tobias,

Sorry for not answering earlier. 2.3.0 will hopefully be released in a couple of weeks. Version 2.3.0rc2 has already been packaged in debian experimental, so that should be able to package the final version easily.

This is going to be short, but not undoable :)

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :

Hi, Tobias. In the meantime, could you prepare a debdiff of 2.1.5 for Xenial?

You can find more details about SRU here https://wiki.ubuntu.com/StableReleaseUpdates

And I will do the paperwork if you are welling and have time.

Revision history for this message
Juhani Numminen (jsonic) wrote :

Hi everyone,

I made a 2.1.5-0ubuntu0.1~ppa1 package for Xenial and uploaded it to my PPA: https://launchpad.net/~jsonic/+archive/ubuntu/ppa/+packages. The debdiff is https://launchpadlibrarian.net/388351566/lyx_2.1.4-2_2.1.5-0ubuntu0.1~ppa1.diff.gz which is 13MB in size when uncompressed.

Revision history for this message
Jean-Marc Lasgouttes (jmarc) wrote :

Thank you Juhani for doing that. I tested briefly the binary on the ppa and did not experience any problem. I was indeed able to open and typeset files from LyX 2.2.x.

I reviewed the announcement of LyX 2.1.5 and do not believe that we made changes that may affect the packaging.

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :

Hi Juhani, please attach your diff as a patch and subscribe ubuntu-sponsors.

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :

Update to maintenance release 2.2.4 in Bionic bug #1811571

description: updated
Revision history for this message
Juhani Numminen (jsonic) wrote :

Attaching debdiff for lyx 2.1.5-0ubuntu1.

Mathew Hodson (mhodson)
tags: added: upgrade-software-version
tags: added: patch
Changed in lyx (Ubuntu):
importance: High → Low
Mathew Hodson (mhodson)
Changed in lyx (Ubuntu):
status: Triaged → Fix Released
Changed in lyx (Ubuntu Xenial):
importance: Undecided → Wishlist
importance: Wishlist → Low
Revision history for this message
Simon Quigley (tsimonq2) wrote :

Thanks for your work on this!

Could you please update the bug description to follow the SRU template? That can be found here: https://wiki.ubuntu.com/StableReleaseUpdates#SRU_Bug_Template

Once that is done, please resubscribe the Ubuntu Sponsors Team.

description: updated
Revision history for this message
Simon Quigley (tsimonq2) wrote :

Uploaded with some minor changelog edits.

Thanks!

Revision history for this message
Robie Basak (racb) wrote :

This part of SRU policy is relevant here: https://wiki.ubuntu.com/StableReleaseUpdates#New_upstream_microreleases

Please could you confirm if the following are all true?

a reliable and credible test suite for assuring the quality of every commit or release,
the tests are covering both functionality and API/ABI stability,
the tests run during package build to cover all architectures,
the package has an autopkgtest to run the tests in an Ubuntu environment against the actual binary packages,

If not, this will need approval from the Ubuntu Technical Board, unless they have already granted such permission (if so, please link to that).

Revision history for this message
Jean-Marc Lasgouttes (jmarc) wrote :

I am one of the upstream developers. What I can say about this 2.1.5 version is

* we have unit tests for the code, but I would not qualify them as extensive.

* LyX 2.1.5 builds without compiler warnings on xenial, using g++ 5.4 with options -Wall and -Wextra (except for some harmless Qt-generated code that we do not control).

* as the last release of the 2.1.x series, LyX 2.1.5 has been build very conservatively, so that it would not introduce new problems. It does fix 50 bugs.

* I do not remember of any new problem introduced in 2.1.5. Inspection of the 5 bugs marked as "2.1.5" did not reveal evidence of a regression in this particular version.

* the only new feature is the possibility to read/write LyX 2.2.x files, which is very valuable in itself.

I am not sure this fulfills the SRU rules, but I want to emphasize that long term releases are the main targets of a release such as this one. We have a stable release manager whose job is to ensure that people can upgrade stable releases with low risk, and is twice as cautious (annoying?) for the last one in a series.

Steve Langasek (vorlon)
description: updated
Revision history for this message
Robie Basak (racb) wrote :

I've spent quite some time reviewing this proposed update for 16.04. This is a "soft reject" from me, pending further discussion if you'd like to address any of the comments I've made below. If there is no further discussion, I'll reject this upload from the queue when I next come past.

I appreciate the value of bumping LyX up to an upstream stable maintenance release. However, I am concerned that there doesn't seem to be enough quality assurance here to ensure that existing, happy LyX users using the packaging from 16.04 are not regressed.

16.04 has been out for three years now, and I see only a handful of bugs reported against this package since then that are still open. On balance, I question whether there's value in issuing this update wholesale now, given that most users will be moving over to 18.04 before long. I could be swayed if there appeared to be a significant number of Ubuntu users needing this update, but I don't see that. An alternative approach is to address specific fixes aimed at bugs Ubuntu 16.04 users are actually experiencing using our regular SRU process. It looks like these would be fairly easy cherry-pickable from upstream VCS and we could have far more confidence in individual testing to reduce regression risk to unaffected Ubuntu users.

Specifically:

The lyx2lyx update is presumably for the headline "ability to read and write files in the 2.2.x format" but this also appears to have no tests and landed upstream as unannotated megacommits.

As far as I can see, only four tests run during the package build.

The bugfixes in the 2.1 branch relevant to this update do not appear to come with regression tests.

The embedded version of Boost is bumped with no explanation as to why this is needed, which I find concerning because that seems counter to the idea of minimising regression risk. The use of --without-included-boost may mitigate this but needs checking that it works. Changes relating to the newer version of Boost have been made upstream, but if --without-included-boost is working, then they will apply to the build in Ubuntu without the Boost being built against having been updated.

In general, there seem to be a fairly large number of changes made upstream with little verification possible except with manual testing. I'm not sure we should be throwing these at existing Ubuntu LyX users without actually doing that testing. Accordingly, with the information I have my (quite subjective) opinion is that our regular cherry-picking SRU process would be more appropriate here.

Revision history for this message
Jean-Marc Lasgouttes (jmarc) wrote :

Thank you for taking the time to review the issue. I'll try to ask some information from an upstream point of view. Also, your remarks are interesting wrt our policy of creating the final stable release.

I will start by the end: all our stable releases 2.x.y with y>0 are a form of this cherry picking. We have a stable release manager who vets such backporting on a case-by-case basis. We do not have comprehensive regression tests for all these changes because (1) we are a small team and (2) it is more difficult with a GUI.

Since I am on the issue of tests, what we have now is
* a few unit tests
* a reasonable set of tests for tex2lyx (importation from LaTeX)
* a reasonable set of tests of all possible export cases, although in this case we mostly check that the exported LaTeX actually compiles. We do catch bugs with it, though.
* we routinely run coverity scan on master branch and backport meaningful fixes, and have a policy of having no compile warnings with -Wall -Wextra.

I understand that this is not professional-level quality insurance, but at least we do try :)

The two big chunks of interest are:
* boost
  - update included boost to 1.60: this is typically not used in a ubuntu build, which uses system
    library
  - updates to compile with boost 1.60: this is needed in general since we want LyX to be compilable on
    more modern distributions.
  I understand that these changes are not necessary for xenial.
* lyx2lyx: I am not sure what to think about that. I used to think that this was definitely the way to
  do it, but now I see your point about the amount of changes. All I can say is that reading old files,
  along with not losing work on a crash, are two things we are very careful with. This is what it takes
  to have users who trust us. Note that, thanks to lyx2lyx, LyX is still able to read and typeset files
  from the 0.7 era (1995).

I completely see your point about manual cherry-picking. However, we do not have people doing that for each distribution. What I think is that the work the we do at a global level with these stable distributions is the best we can do given our lack of manpower. We try to maintain a real difference between what goes into stable releases vs master branch.

What we want to setup soon is a service of nightly builds for at least ubuntu so that at a few users get a chance to catch bugs earlier.

I will end with another argument towards your proto-decison of rejecting the update: we do provide a ppa (lyx-devel) which provides recent lyx builds for older distributions, under our responsibility. This is not totally upd to date these days, as I have to take it over and I do not understand anything about launchpad :)

Revision history for this message
Robie Basak (racb) wrote :

Hi Jean-Marc,

Thank you for explaining that.

What do you propose we do next? In particular, do you think there are users of Ubuntu 16.04 who really need this update, and how do you think that balances against the risk to existing users of lyx on Ubuntu 16.04 who do not need the update?

Separately, have you considered shipping lyx as a snap? Then you would be able to publish directly to users - without distributions needing to be involved in your release management. This doesn't prevent us from processing this SRU, of course.

Revision history for this message
Robie Basak (racb) wrote : Proposed package upload rejected

An upload of lyx to xenial-proposed has been rejected from the upload queue for the following reason: "The conversation in the bug did not reach a conclusion; this SRU can be resurrected if it does conclude and the conclusion is to continue".

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.