QA/Bibisect/macOS

    From The Document Foundation Wiki
    < QA‎ | Bibisect

    This page provides information about using our Bibisect repositories on computers running macOS.

    Introduction

    Our bibisect repositories were originally built on Ubuntu 64bit machines, and most of our repositories still target GNU/Linux systems. We now have a few repositories built for macOS, and are adding more in time.

    If you're testing cross-platform and wish to test Mac bugs on a different OS, one option is to set up a virtual machine running macOS (see #VM below).

    Choosing a Bibisect repository

    As you can see in the #Versions table below, there are multiple bibisect repositories covering different commit ranges. If you find a bug in LibreOffice 4.4.4, you'll want to download the 50max repository, as it covers: "The range from 4.4 branch point to 5.0 branch point"

    It's possible that the bug in LO 4.4.4 predates the 4.4 branch point, at which point you'll want to download an additional (earlier) bibisect repository. We maintain separate bibisect repositories to both speed up the use of the repository, and to make it possible to download just one piece of the commit range.

    Don't have a bug to bibisect yet? Find documented regressions in the list here.

    Setting up Environment

    Before we download the bibisect repository, let's make sure your machine has the right software installed. If you don't have it already (which you can check by running `git` in Terminal), you need to install git.

    Cloning a Bibisect Repository

    Because we are a distributed, community project, we have created and hosted bibisect repositories on different servers. Although the exact procedures for cloning the repositories may differ slightly, most repositories may be retrieved via two main methods: a bundle download or by cloning directly.

    Click on the download link in the table to see the instructions relevant to each repository.

    Note pin.svg

    Note:
    Please be aware that the original download may be several gigabytes (commonly more than 10 GB), so please make sure you're on a fast Internet connection and have sufficient download data and disk space.

    After the initial clone, further updates to the git repository (if updated at all) should be smaller.

    Downloading a Bundle

    Many frozen repositories (i.e. for branches that have reached end of life) are offered in the form of git bundles.

    Using the lo-4.1_to_lo-4.2 repository as an example, we can download the git bundle from the TDF server, and clone in into a new git repository using the instructions found on that page.

    You can safely stop the download process of the bundle and resume later.

    Cloning Directly

    If the repository allows it, you may directly clone it as you would any other git repository. For example:

    git clone https://bibisect.libreoffice.org/mac64-7.1.git
    
    Note pin.svg

    Note:
    With this method, please check that you are unlikely to experience connection dropouts. Because of the mechanics of git repositories, if the clone is interrupted, you will have to start the clone all over again.

    Staying up to Date

    Update your repository with:

    git checkout master && git pull
    

    Bibisecting the Bug

    With a bug and test procedures in hand, and a bibisect repository ready to go, it's finally time to start bibisecting!

    Note pin.svg

    Note:
    We refer to the "latest" and "oldest" commits in these guides, these are tags that are not present in all builds. See the table of versions below.

    Note pin.svg

    Note:
    You might have to right-click and select Open in Finder to verify the app the first time you use a new bibisect repository.

    Open a terminal, cd to your git repository, and checkout the latest commit:

    git checkout latest
    open LibreOffice.app/
    

    If the bug does not appear in that version, put a comment on the bug saying "Regression does not appear in latest version of <name of bibisect repository>, e.g. bibisect-macosx-64-5.0 and must be younger" and add bibisected and bibisectedNewer to the Keywords. You've now completed your bibisection! If there is a newer bibisect repository available, please consider downloading it and testing the bug again.

    If the bug does appear in the latest version, continue.

    After testing with the latest build, we next test with the oldest build included in the repo and check that the regression is not there:

    git checkout oldest
    open LibreOffice.app/
    

    If the bug is already present at this point, it is not a regression in the range covered by the repo, but an even older bug.

    First, put a comment on the bug saying "Regression does appear in oldest version of <name of bibisect repository> and must be older"

    If you are using the lo-4.1_to_lo-4.2 repo, then:

    1. Add the word preBibisect to the Keywords, and
    2. Set the version of LibreOffice in the bug report to 4.1 All Versions

    If you are using another (newer) bibisect repo, please try downloading and testing with lo-4.1_to_lo-4.2.

    If the bug does not appear in the oldest version, this means it is a regression in the range covered by the download and we can corner it down very well (hooray!). We will now leverage one of git's built-in tools to perform a binary search:

    git bisect start latest oldest
    

    Then repeat these commands:

    open LibreOffice.app/
    git bisect good # if the bug is not there
    git bisect bad  # if the bug is there
    

    NB: From time to time, the currently check-out version of LibreOffice may fail to start. This can happen because, although the bibisect repo includes only successful builds, a successful build is not guaranteed to really work. In those cases, you'll want to skip a particular build:

    git bisect skip # if you cannot get far enough to try the bug
    

    After several repetitions, git will print out 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.
    

    We'll want to append this useful information to the bug report. (The source-hash-2d19e9bb07ccff3134f855812dddfda5c07b1fe4 line is the important piece, but please copy-in the entire message to a new comment).

    With our testing complete, please add the tag bibisected to the Keywords so that this bug will no longer appear in the list of bugs that need bibisecting.

    Virtual Machines

    Using a macOS Virtual Machine (VM) is a great way to test macOS-specific bugs if you're using Windows or GNU/Linux as your host OS.

    Suggested setup:

    • Virtualization Software: VirtualBox
    • Guest OS: macOS 10.10 or later
    • (Virtual) Hard drive: at least 40 GB (some bibisect repositories are over 10 GB each)

    Many other options exist. One way to quickly set up various VMs for a number of OS's versions is to use quickemu (and quickgui on top if you want to have a graphical interface).

    Versions

    Built on Version Maintainer Commit range from Commit range to Commits in range Number of builds Download links Download size Comments
    macOS 10.6 lo-4.1_to_lo-4.2 Norbert ? ? ? ? TDF: repo 6 GB experimental? bibisect_start and master
    macOS 10.6 lo-4.2_to_lo-4.3 Norbert ? ? ? ? TDF: repo 3.9GB experimental?
    macOS 10.13 release_lo-3.3.0_to_lo-5.4.3.2 Xisco ? ? ? ? TDF: repo 6GB experimental?
    macOS
    bibisect-macosx-64-5.0
    Norbert 2851ce5afd f3d65c5c77 9093 repo 11G
    macOS
    bibisect-macosx-64-5.1
    Norbert ab465b90f6 35d929f42b 9519 repo 8.7G
    macOS
    bibisect-macosx-64-5.2
    Norbert repo libreoffice-5-1-branch-point to libreoffice-5-1-branch-point and then libreoffice-5-2
    macOS
    bibisect-macosx-64-5.3
    Norbert 5b168b3f repo libreoffice-5-2-branch-point to libreoffice-5-2-branch-point and then libreoffice-5-3
    macOS 10.13
    bibisect-mac64-5.4-32commits
    Xisco 4136757b repo libreoffice-5-3-branch-point to libreoffice-5-4-branch-point and then libreoffice-5-4. Each build contains 32 commits.
    macOS 10.13
    bibisect-mac64-6.0-32commits
    Xisco 9feb7f70 repo libreoffice-5-4-branch-point to libreoffice-6-0-branch-point and then libreoffice-6-0. Each build contains 32 commits.
    macOS 10.13
    bibisect-mac64-6.1
    Xisco 6eeac353 repo libreoffice-6-0-branch-point to libreoffice-6-1-branch-point and then libreoffice-6-1
    macOS 10.13
    bibisect-mac64-6.2
    Xisco 3a801799 repo libreoffice-6-1-branch-point to libreoffice-6-2-branch-point and then libreoffice-6-2
    macOS 10.14
    bibisect-mac64-6.3
    Xisco 3a801799 repo libreoffice-6-2-branch-point to libreoffice-6-3-branch-point and then libreoffice-6-3
    macOS 10.14
    bibisect-mac64-6.4
    Xisco 3a801799 repo libreoffice-6-3-branch-point to libreoffice-6-4-branch-point
    macOS 10.14
    bibisect-mac64-7.0
    Xisco 9bc848cf repo libreoffice-6-4-branch-point to libreoffice-7-0-branch-point.
    macOS 10.14
    bibisect-mac64-7.1
    Xisco 574c5709 repo libreoffice-7-0-branch-point to libreoffice-7-1-branch-point.
    macOS ?
    bibisect-mac64-7.2
    Xisco ? repo libreoffice-7-1-branch-point to libreoffice-7-2-branch-point.
    macOS ?
    bibisect-mac64-7.3
    Xisco ? repo libreoffice-7-2-branch-point to libreoffice-7-3-branch-point.
    macOS 11.6
    bibisect-mac64-7.4
    Xisco ? repo libreoffice-7-3-branch-point to libreoffice-7-4-branch-point.
    macOS 11.6
    bibisect-mac64-7.5
    Xisco e15b9988 c94961c6 ? 5439 repo libreoffice-7-4-branch-point to libreoffice-7-5-branch-point.
    macOS 11.6
    bibisect-mac64-7.6
    Xisco ? repo libreoffice-7-5-branch-point to libreoffice-7-6-branch-point.
    macOS 11.6
    bibisect-mac64-24.2
    Xisco 6f227b0d repo libreoffice-7-6-branch-point to libreoffice-24-2-branch-point.
    macOS 11.6
    bibisect-mac64-24.8
    Xisco 898d5d47 repo libreoffice-24-2-branch-point to libreoffice-24-8-branch-point.
    macOS 11.6
    bibisect-mac64-25.2
    Xisco 798b43c4 repo libreoffice-24-8-branch-point to master.