pyinstaller / pyinstaller/pyinstaller

Document how to `git bisect` a bug

Open
#2,818 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:documentation
Dominant language
Python
Stars
13.1k
Forks
2k
Avg merge
1d 3h
Merged PRs (30d)
11

Description

Along this scratch:

If you know an older version – no matter if release or develop – of PyInstaller worked for you, you can "bisect" to find out which change (commit) causes the error. "Bisecting" is easy, all you need is a development setup for PyInstaller and git.

Let's assume commit 12345678 worked for you then run

git bisect start
git bisect bad            # Current version is bad
git bisect good 12345678  # 12345678 is known to be good

Git will now checkout some next version to test, you need to test you program and run git bisect good or git bisect bad, depending on if you program worked.

To automate this, you can adopt the following script to your needs, save it as run-bisect.sh and run git bisect run sh ./run-bisect.sh.

#!/usr/bin/bash
COMPILE_BOOTLOADER=
if [ -n "$COMPILE_BOOTLOADER" ] ; then
    cd bootloader
    ./waf --no-lsb all
    cd -
fi
pyinstaller --noconfirm my-app.py
dist/my-app/my-app
exit $?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing scratch text and the PyInstaller development setup described in the issue. Document the manual git bisect commands and the optional run-bisect.sh automation, including how to judge each tested version; the work is done when a user can follow the instructions to identify a problematic commit.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash, git, python
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.