Currently, you have two choices to setup bibisect environment. One is to [[#Manual setup|manually setup]] either the daily bibisect or one of the 4.0 or earlier bibisects; the other is to use a [[#Ready-to-go OVA image|ready-to-go OVA (Open Virtualization Archive) image]] which can be used with VirtualBox.
Currently, you have two choices to setup bibisect environment. One is to [[#Manual setup|manually setup]] either the daily bibisect or one of the 4.0 or earlier bibisects; the other is to use a [[#Ready-to-go OVA image|ready-to-go OVA (Open Virtualization Archive) image]] which can be used with VirtualBox.
=== Manual setup ===
=== Manual setup (download a tarball) ===
First, you have to install Linux 64 bit. Installing in virtual machine also works.
First, you have to install Linux 64 bit. Installing in virtual machine also works.
Line 146:
Line 146:
== Bibisecting a regression in LibreOffice ==
== Bibisecting a regression in LibreOffice ==
=== Bugs needing bibisect ===
Following Bugs with Whiteboard entry [[BugReport_Details#Whiteboard|bibisectrequest]] are waiting for a bibisect:
[https://bugs.freedesktop.org/buglist.cgi?list_id=145560&status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=bibisectrequest&product=LibreOffice Open this list in Bugzilla]
Select a bug to test from the bug list above, then get yourself the newest build included in the download and check if your bug it there:
Having a bug to test (the following section can give you suggestions), get the newest build included in the download and check if your bug it there:
> git checkout latest
> git checkout latest
Line 218:
Line 210:
Again, add the word '''bibisected''' to the whiteboard status so that it does not show up in the bugs that need bibisecting anymore.
Again, add the word '''bibisected''' to the whiteboard status so that it does not show up in the bugs that need bibisecting anymore.
== How to pickup bugs that are bibisected ==
== Finding bugs ==
=== Finding bugs needing bibisect ===
Following Bugs with Whiteboard entry [[BugReport_Details#Whiteboard|bibisectrequest]] are waiting for a bibisect:
[https://bugs.freedesktop.org/buglist.cgi?list_id=145560&status_whiteboard_type=allwordssubstr&query_format=advanced&status_whiteboard=bibisectrequest&product=LibreOffice Open this list in Bugzilla]
=== Finding bugs already bibisected ===
For the links to bugzilla queries, please see [[#Versions|here]].
For the links to bugzilla queries, please see [[#Versions|here]].
bibisect stands for "binary bisect" and is intended to help LibreOffice QA dealing with regressions. Regressions are a most annoying artifact that unfortunately comes with software development and QA. However, regressions are a misfeature we want to deal with quick and early as they might get harder and harder to triage and fix as time passes.
Because the way git stores its stuff, one bibisect can contain several complete Linux 64-bit office installs in a very much compressed size.
And one does not need to install them in parallel as one can switch through all of them with a quick "git checkout source-hash-XXXXXX" -- one switch costs <1 second).
Limitations
The bibisect is only possible for Bugs which are reproducible under Linux, if Linux has already been excluded (maybe bug history or comments will contain required information) bibisecting will not be possible. But of course, you can use bibisect to find out whether the bug is reproducible under Linux.
It's not promising to try to bibisect a problem that is not 100% reproducible unless you are willing to test the same version multiple times to have some security/statistics that the bug really is not visible with a particular LibO version.
Note that the bibisect4.0 version includes the 3.5 and 3.6 ranges and can be used for any bug in that range. bibisect-3.5 and bibisect-3.6 are thus of no further interest.
Currently, you have two choices to setup bibisect environment. One is to manually setup either the daily bibisect or one of the 4.0 or earlier bibisects; the other is to use a ready-to-go OVA (Open Virtualization Archive) image which can be used with VirtualBox.
Manual setup (download a tarball)
First, you have to install Linux 64 bit. Installing in virtual machine also works.
Expect your original download to be several gigabytes; updates will be smaller, depending on the number of commits to be downloaded.
Further preparations for daily bibisect
For the daily bibisect, in the untarred binrepo/ directory, you need to fix the tags latest and earliest.
To fix tag latest, start by finding the first 7 or so characters of the commit id on the first line of output from git log. For the downloaded file dated 2013-07-16, this first line is
> commit 4118d739dbd71e16057ea926ef3ef696025d3b67
Then--but substitute your own commit id--issue a command like
> git tag --force latest 4118d73
To fix tag oldest, issue a command like
> git tag --force oldest 3e7462b
The commit id here is from the first commit chronologically following creation of the repository; it should be more-or-less constant.
The following download gives you an OVA image that contains Ubuntu 12.04 x64 (username: l (the letter L lowercase), password: 12345) with following bibisect versions in ~/home:
3.5
3.6 2012-04-28
Download links, note that you can combine the links as mirrors:
If you don't have VirtualBox yet, you can download it from here.
Screenshot
Next, select File > Import Appliance, browse for the OVA downloaded, adjust new machine's properties as appropriate, and select Import to finish an import wizard.
After import finished, select Start to start the machine, now it is ready to bibisect!
Bibisecting a regression in LibreOffice
Having a bug to test (the following section can give you suggestions), get the newest build included in the download and check if your bug it there:
> git checkout latest
> ./opt/program/soffice
If the bug does not show with that version, put a comment on the bug saying "Regression does not appear in latest version of bibisect-3.5.tar.lzma and must be younger" and add the words bibisected35 and bibisected35newer to the whiteboard status. If the bug does show, continue.
Then get the oldest build included in the download and check that the regression is not there:
> git checkout oldest
> ./opt/program/soffice
If the bug is already present at this point, it is not a regression in the range that is covered by the download, but an even older bug -- put a comment on the bug saying "Regression does appear in oldest version of bibisect-3.5.tar.lzma and must be older" and add the word bibisected35 and bibisected35older to the whiteboard status. If the bug does not show, continue.
If the bug is not there it is a regression in the range covered by the download and we can corner it down very well now. Do:
> git bisect start latest oldest
to start bisecting. Then repeat these commands:
> ./opt/program/soffice
> git bisect good # if the bug is not there
> git bisect bad # if the bug is there
after some ~5 repetitions, git will tell you something like this:
9625329ea5a7e3e8475cd21c07726beec20573bd is the first bad commit
commit 9625329ea5a7e3e8475cd21c07726beec20573bd
Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Date: Thu Dec 8 12:29:59 2011 +0100
source-hash-2d19e9bb07ccff3134f855812dddfda5c07b1fe4
commit 2d19e9bb07ccff3134f855812dddfda5c07b1fe4
Author: Jan Holesovsky <kendy@suse.cz>
AuthorDate: Wed Nov 16 14:17:03 2011 +0100
Commit: Jan Holesovsky <kendy@suse.cz>
CommitDate: Wed Nov 16 14:21:33 2011 +0100
Kill one usage of chrel.sed to fix build.
Append that (the source-hash-2d19e9bb07ccff3134f855812dddfda5c07b1fe4 line is the important one) and the output of:
> git bisect log
Which should look something like this:
git bisect start 'latest' 'oldest'
# good: [2faf4bc12ab490370d2196dedbc8091f9b09d0a5] source-hash-418a35f4861e863feb39eec73f4a39a87fbcb1f3
git bisect good 2faf4bc12ab490370d2196dedbc8091f9b09d0a5
# bad: [b6fca7e58854bc617c5fc9a75d1c1720b0d7e1a4] source-hash-ce60138d339a5eb2a174a5d27063249acf2cac42
git bisect bad b6fca7e58854bc617c5fc9a75d1c1720b0d7e1a4
# good: [0a28a62d53e996cf66d86e9bfb63ddc6ade75b7e] source-hash-71cbcb62028295a98ceee60cb4c4ee425bafcd2e
git bisect good 0a28a62d53e996cf66d86e9bfb63ddc6ade75b7e
# bad: [9625329ea5a7e3e8475cd21c07726beec20573bd] source-hash-2d19e9bb07ccff3134f855812dddfda5c07b1fe4
git bisect bad 9625329ea5a7e3e8475cd21c07726beec20573bd
# good: [89d91bb6074026dc0894bcdc6aaf8f6124102da7] source-hash-fb754a0df859e30255c25af8fa19bfaa75f257e7
git bisect good 89d91bb6074026dc0894bcdc6aaf8f6124102da7
to the bug and the developers will have a very good idea where your bug is.
Again, add the word bibisected to the whiteboard status so that it does not show up in the bugs that need bibisecting anymore.
Finding bugs
Finding bugs needing bibisect
Following Bugs with Whiteboard entry bibisectrequest are waiting for a bibisect:
For the links to bugzilla queries, please see here.
With the above info added to the bug a developer knows that the regression was introduced between the commits fb754a0df859e30255c25af8fa19bfaa75f257e7 (good) and 2d19e9bb07ccff3134f855812dddfda5c07b1fe4 (bad) on master. A:
on the source repository will then show the 128 commits including the one that introduced the bug, making it a lot easier for the developer to close in on the culprit.
For more details, see:
If you can't extract files (you should get an error message). Try to rename the file from *.tar.lzma to *.tar.xz.
Installed LibreOffice became modified unexpectedly
Problem / Messages:
error: Your local changes to the following files would be overwritten by checkout:
opt/program/pythonloader.pyc
opt/program/uno.pyc
opt/program/unohelper.pyc
Please, commit your changes or stash them before you can switch branches.
Aborting
Solution:
> git checkout .
will repair the problem. Afterwards you can start the next test run as usual with
> git bisect good # or git bisect bad
LibreOffice Version does not start
Problem:
The selected version does not start. This can happen because all successful builds were integrated when the bibisect was created, but a successful build does not guarantee that the build will really work.
Solution:
> git bisect skip
will skip the current version and automatically continue with another version.
Activate your hardware virtualization in your BIOS
Problem:
After installing the OVA, when launching the virtualbox Ubuntu image the first time, you may have a message about activating Hardware virtualization VT-x/AMD-V
Solution:
On your desktop/laptop, go to BIOS and activate it (not in the Virtalbox image, obviously)
Activating this Hardware virtualization depends on your BIOS
Lenovo T520 go to Security > Virtualization
bibisect archive generation
The scripting used to generate bibisect repositories is available here: