Showing with 16,007 additions and 4,587 deletions.
  1. +0 −43 .bumpversion.cfg
  2. +0 −30 .github/workflows/bumpversion.yml
  3. +7 −8 .github/workflows/checkbox-core-snap-beta-release.yml
  4. +7 −9 .github/workflows/checkbox-core-snap-daily-builds.yml
  5. +7 −8 .github/workflows/checkbox-snap-beta-release.yml
  6. +7 −9 .github/workflows/checkbox-snap-daily-builds.yml
  7. +1 −0 .github/workflows/deb-beta-release.yml
  8. +2 −1 .github/workflows/deb-daily-builds.yml
  9. +5 −3 .github/workflows/documentation-check.yml
  10. +7 −6 .github/workflows/metabox.yaml
  11. +32 −0 .github/workflows/tox-provider-iiotg.yaml
  12. +6 −0 .readthedocs.yaml
  13. +1 −1 CONTRIBUTING.md
  14. +147 −0 checkbox-core-snap/README.md
  15. +1 −1 checkbox-core-snap/common_files/config/wrapper_common
  16. +1 −1 checkbox-core-snap/common_files/config/wrapper_common_classic
  17. +15 −0 checkbox-core-snap/prepare.sh
  18. +67 −25 checkbox-core-snap/series16/snap/snapcraft.yaml
  19. +0 −1 checkbox-core-snap/series18/.gitignore
  20. +60 −24 checkbox-core-snap/series18/snap/snapcraft.yaml
  21. +0 −1 checkbox-core-snap/series20/.gitignore
  22. +40 −26 checkbox-core-snap/series20/snap/snapcraft.yaml
  23. +0 −1 checkbox-core-snap/series22/.gitignore
  24. +35 −23 checkbox-core-snap/series22/snap/snapcraft.yaml
  25. +8 −1 checkbox-ng/HACKING.md
  26. +1 −0 checkbox-ng/MANIFEST.in
  27. +94 −42 checkbox-ng/checkbox_ng/config.py
  28. +29 −31 checkbox-ng/checkbox_ng/launcher/check_config.py
  29. +67 −44 checkbox-ng/checkbox_ng/launcher/checkbox_cli.py
  30. +248 −163 checkbox-ng/checkbox_ng/launcher/master.py
  31. +384 −230 checkbox-ng/checkbox_ng/launcher/stages.py
  32. +586 −366 checkbox-ng/checkbox_ng/launcher/subcommands.py
  33. +74 −0 checkbox-ng/checkbox_ng/launcher/test_subcommands.py
  34. +1 −1 checkbox-ng/checkbox_ng/urwid_ui.py
  35. +0 −93 checkbox-ng/checkbox_ng/version.py
  36. +2 −0 checkbox-ng/debian/control
  37. +1 −4 checkbox-ng/debian/rules
  38. +1 −1 checkbox-ng/mk-venv
  39. +2 −2 checkbox-ng/plainbox/impl/__init__.py
  40. +7 −23 checkbox-ng/plainbox/impl/applogic.py
  41. +4 −4 checkbox-ng/plainbox/impl/clitools.py
  42. +1 −1 checkbox-ng/plainbox/impl/commands/__init__.py
  43. +475 −0 checkbox-ng/plainbox/impl/config.py
  44. +71 −41 checkbox-ng/plainbox/impl/ctrl.py
  45. +0 −258 checkbox-ng/plainbox/impl/launcher.py
  46. +1 −1 checkbox-ng/plainbox/impl/providers/__init__.py
  47. +1 −1 checkbox-ng/plainbox/impl/resource.py
  48. +13 −8 checkbox-ng/plainbox/impl/runner.py
  49. +0 −608 checkbox-ng/plainbox/impl/secure/test_config.py
  50. +381 −255 checkbox-ng/plainbox/impl/session/assistant.py
  51. +1 −1 checkbox-ng/plainbox/impl/session/jobs.py
  52. +208 −161 checkbox-ng/plainbox/impl/session/remote_assistant.py
  53. +131 −0 checkbox-ng/plainbox/impl/test_config.py
  54. +0 −136 checkbox-ng/plainbox/impl/test_launcher.py
  55. +210 −130 checkbox-ng/plainbox/impl/unit/unit.py
  56. +0 −1 checkbox-ng/po/POTFILES.in
  57. +81 −0 checkbox-ng/pyproject.toml
  58. +46 −1 checkbox-ng/setup.cfg
  59. +0 −128 checkbox-ng/setup.py
  60. +10 −9 checkbox-ng/tox.ini
  61. +15 −2 checkbox-snap/prepare_classic.sh
  62. +15 −2 checkbox-snap/prepare_uc.sh
  63. +15 −10 checkbox-snap/series_classic16/launchers/configure
  64. +1 −1 checkbox-snap/series_classic16/launchers/wrapper_local
  65. +6 −3 checkbox-snap/series_classic16/snap/hooks/configure
  66. +10 −1 checkbox-snap/series_classic16/snap/snapcraft.yaml
  67. +10 −1 checkbox-snap/series_classic18/snap/snapcraft.yaml
  68. +10 −1 checkbox-snap/series_classic20/snap/snapcraft.yaml
  69. +10 −1 checkbox-snap/series_classic22/snap/snapcraft.yaml
  70. +10 −1 checkbox-snap/series_uc16/snap/snapcraft.yaml
  71. +10 −1 checkbox-snap/series_uc18/snap/snapcraft.yaml
  72. +10 −1 checkbox-snap/series_uc20/snap/snapcraft.yaml
  73. +10 −1 checkbox-snap/series_uc22/snap/snapcraft.yaml
  74. +5 −2 checkbox-support/MANIFEST.in
  75. +10 −5 checkbox-support/checkbox_support/parsers/tests/test_udevadm.py
  76. +9,311 −0 checkbox-support/checkbox_support/parsers/tests/udevadm_data/ELEMENT_BIOSCIENCES_INSTRUMENT.txt
  77. +1 −1 checkbox-support/checkbox_support/parsers/udevadm.py
  78. +6 −4 checkbox-support/checkbox_support/snap_utils/snapd.py
  79. +1 −1 checkbox-support/debian/compat
  80. +2 −0 checkbox-support/debian/control
  81. +48 −0 checkbox-support/pyproject.toml
  82. +35 −0 checkbox-support/setup.cfg
  83. +0 −98 checkbox-support/setup.py
  84. +11 −3 checkbox-support/tox.ini
  85. +1 −1 docs/.sphinx/requirements.txt
  86. +37 −32 docs/.sphinx/wordslist.txt
  87. +1 −1 docs/Makefile
  88. BIN docs/_images/cc2.png
  89. BIN docs/_images/cc3.png
  90. +1 −1 docs/community/bugs.rst
  91. +1 −1 docs/community/contributing.rst
  92. +5 −6 docs/conf.py
  93. +20 −14 docs/explanation/configs.rst
  94. +57 −46 docs/explanation/remote.rst
  95. +6 −6 docs/explanation/understanding.rst
  96. +72 −0 docs/how-to/agent-service.rst
  97. 0 docs/{tutorial → how-to}/custom-app.rst
  98. +2 −2 docs/how-to/index.rst
  99. +0 −95 docs/how-to/slave-daemon.rst
  100. +0 −267 docs/how-to/using.rst
  101. +19 −11 docs/reference/glossary.rst
  102. +25 −18 docs/reference/launcher.rst
  103. +1 −1 docs/reference/stack.rst
  104. +2 −2 docs/reference/units/category.rst
  105. +2 −0 docs/reference/units/resource.rst
  106. +21 −2 docs/reference/units/template.rst
  107. +2 −2 docs/tutorial/index.rst
  108. +1 −1 docs/tutorial/tutorial.rst
  109. +255 −0 docs/tutorial/using-checkbox/basic-launcher.rst
  110. +197 −0 docs/tutorial/using-checkbox/basic-remote.rst
  111. +307 −0 docs/tutorial/using-checkbox/checkbox-commands.rst
  112. +121 −0 docs/tutorial/using-checkbox/test-output.rst
  113. +129 −0 docs/tutorial/using-checkbox/test-report.rst
  114. +46 −39 metabox/metabox/core/configuration.py
  115. +56 −41 metabox/metabox/core/lxd_execute.py
  116. +62 −17 metabox/metabox/core/lxd_provider.py
  117. +219 −147 metabox/metabox/core/machine.py
  118. +175 −95 metabox/metabox/core/runner.py
  119. +66 −45 metabox/metabox/core/scenario.py
  120. +9 −7 metabox/metabox/core/utils.py
  121. +35 −19 metabox/metabox/main.py
  122. +5 −0 metabox/metabox/metabox-provider/units/basic-jobs.pxu
  123. +1 −0 metabox/metabox/metabox-provider/units/basic-tps.pxu
  124. +57 −0 metabox/metabox/scenarios/config/chains.py
  125. 0 metabox/metabox/scenarios/config/config_files/chains/__init__.py
  126. +10 −0 metabox/metabox/scenarios/config/config_files/chains/etc_checkbox.conf
  127. +11 −0 metabox/metabox/scenarios/config/config_files/chains/etc_checkbox_includes.conf
  128. +5 −0 metabox/metabox/scenarios/config/config_files/chains/etc_checkbox_includes_includes.conf
  129. +2 −0 metabox/metabox/scenarios/config/config_files/chains/home_checkbox.conf
  130. +6 −0 metabox/metabox/scenarios/config/config_files/chains/home_checkbox_includes.conf
  131. 0 metabox/metabox/scenarios/config/config_files/test_manifest/__init__.py
  132. +25 −0 metabox/metabox/scenarios/config/environment.py
  133. +43 −0 metabox/metabox/scenarios/config/exporters.py
  134. +10 −32 metabox/metabox/scenarios/desktop_env/launcher.py
  135. +2 −2 providers/base/bin/accelerometer_test.py
  136. +4 −0 providers/base/bin/bt_a2dp.py
  137. +1 −1 providers/base/bin/cpuid.py
  138. +107 −8 providers/base/bin/edid_cycle.py
  139. +1 −1 providers/base/bin/frequency_governors_test.py
  140. +1 −1 providers/base/bin/hotkey_tests.py
  141. +254 −0 providers/base/bin/kernel_snap_test.py
  142. +1 −1 providers/base/bin/key_test.py
  143. +4 −4 providers/base/bin/monitor_hotplug.py
  144. +1 −1 providers/base/bin/network_device_info.py
  145. +72 −80 providers/base/tests/test_fan_reaction.py
  146. +7 −3 providers/base/tox.ini
  147. +78 −0 providers/base/units/ubuntucore/jobs.pxu
  148. +6 −0 providers/base/units/ubuntucore/test-plan.pxu
  149. +6 −2 providers/certification-client/tox.ini
  150. +6 −10 providers/certification-server/debian/canonical-certification-server.lintian-overrides
  151. +30 −25 providers/certification-server/debian/canonical-certification-server.rst
  152. +0 −19 providers/certification-server/launcher/certify-18.04
  153. +0 −19 providers/certification-server/launcher/certify-soc-18.04
  154. +0 −19 providers/certification-server/launcher/certify-vm-18.04
  155. +0 −19 providers/certification-server/launcher/test-functional-18.04
  156. +2 −2 providers/certification-server/tools/canonical-certification-server
  157. +6 −2 providers/certification-server/tox.ini
  158. +0 −35 providers/certification-server/units/server-full-18.04.pxu
  159. +0 −42 providers/certification-server/units/server-functional-18.04.pxu
  160. +0 −42 providers/certification-server/units/server-soc-cert-18.04.pxu
  161. +0 −40 providers/certification-server/units/virtual-machine-full-18.04.pxu
  162. +6 −2 providers/docker/tox.ini
  163. +6 −2 providers/gpgpu/tox.ini
  164. +76 −0 providers/iiotg/tox.ini
  165. +0 −16 providers/iiotg/units/tsn/jobs.psu
  166. +7 −3 providers/resource/tox.ini
  167. +6 −2 providers/sru/tox.ini
  168. +6 −2 providers/tpm2/tox.ini
  169. +4 −2 tools/daily-builds/deb_daily_builds.py
  170. +0 −85 tools/daily-builds/lp-recipe-build.py
  171. +24 −15 tools/release/README.md
  172. +0 −22 tools/release/bumpversion.sh
  173. +6 −1 tools/release/lp-recipe-update-build.py
43 changes: 0 additions & 43 deletions .bumpversion.cfg

This file was deleted.

30 changes: 0 additions & 30 deletions .github/workflows/bumpversion.yml

This file was deleted.

15 changes: 7 additions & 8 deletions .github/workflows/checkbox-core-snap-beta-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,13 @@ jobs:
name: Checkbox core snap for series${{ matrix.releases }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Copy over the common files for series${{ matrix.releases }}
run: |
cd checkbox-core-snap/
sudo apt update && sudo apt install -qq -y python3-setuptools-scm
./prepare.sh $SERIES
- name: Remove '.dev' suffix from the version name
run: |
cd checkbox-core-snap
# in the following sed onliner the '0,/^version/' bit specifies the range
# of lines it should act upon, this way only the first occurence of '^version'
# is getting affected.
sed -i '0,/^version/s/\(^version\:.*\).dev/\1/' $SERIES/snap/snapcraft.yaml
- name: add LP credentials
run: |
mkdir -p ~/.local/share/snapcraft/provider/launchpad/
Expand All @@ -44,9 +40,12 @@ jobs:
snapcraft-channel: 7.x/stable
snapcraft-args: remote-build --build-on amd64,arm64,armhf,i386 --launchpad-accept-public-upload
- uses: actions/upload-artifact@v3
if: failure()
with:
name: snapcraft-log-series${{ matrix.releases }}
path: /home/runner/.cache/snapcraft/log
path: |
/home/runner/.cache/snapcraft/log/
/home/runner/.local/state/snapcraft/log/
- uses: actions/upload-artifact@v3
with:
name: series${{ matrix.releases }}
Expand Down
16 changes: 7 additions & 9 deletions .github/workflows/checkbox-core-snap-daily-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,13 @@ jobs:
name: Checkbox Core snap for series ${{ matrix.releases }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Copy over the common files for series ${{ matrix.releases }}
run: |
cd checkbox-core-snap/
sudo apt update && sudo apt install -qq -y python3-setuptools-scm
./prepare.sh $SERIES
- name: Add git short sha suffix to the version name
run: |
cd checkbox-core-snap
# in the following sed onliner the '0,/^version/' bit specifies the range
# of lines it should act upon, this way only the first occurence of '^version'
# is getting affected.
sed -i '0,/^version/s/\(^version\:.*\).dev/\1/' $SERIES/snap/snapcraft.yaml
sed -i "0,/^version/s/\(^version\:.*\)'/\1+git$(git rev-parse --short HEAD)'/" $SERIES/snap/snapcraft.yaml
- name: add LP credentials
run: |
mkdir -p ~/.local/share/snapcraft/provider/launchpad/
Expand All @@ -65,9 +60,12 @@ jobs:
snapcraft-channel: 7.x/stable
snapcraft-args: remote-build --build-on amd64,arm64,armhf,i386 --launchpad-accept-public-upload
- uses: actions/upload-artifact@v3
if: failure()
with:
name: snapcraft-log-series${{ matrix.releases }}
path: /home/runner/.cache/snapcraft/log
path: |
/home/runner/.cache/snapcraft/log/
/home/runner/.local/state/snapcraft/log/
- uses: actions/upload-artifact@v3
with:
name: series${{ matrix.releases }}
Expand Down
15 changes: 7 additions & 8 deletions .github/workflows/checkbox-snap-beta-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,13 @@ jobs:
name: Checkbox snap for series ${{ matrix.type }}${{ matrix.releases }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Copy over the common files for series ${{ matrix.type }}${{ matrix.releases }}
run: |
cd checkbox-snap/
sudo apt update && sudo apt install -qq -y python3-setuptools-scm
./prepare_${{ matrix.type }}.sh $SERIES
- name: Remove '.dev' suffix from the version name
run: |
cd checkbox-snap
# in the following sed onliner the '0,/^version/' bit specifies the range
# of lines it should act upon, this way only the first occurence of '^version'
# is getting affected.
sed -i '0,/^version/s/\(^version\:.*\).dev/\1/' $SERIES/snap/snapcraft.yaml
- name: add LP credentials
run: |
mkdir -p ~/.local/share/snapcraft/provider/launchpad/
Expand All @@ -45,9 +41,12 @@ jobs:
snapcraft-channel: 7.x/stable
snapcraft-args: remote-build --build-on amd64,arm64,armhf,i386 --launchpad-accept-public-upload
- uses: actions/upload-artifact@v3
if: failure()
with:
name: snapcraft-log-series-${{ matrix.type }}${{ matrix.releases }}
path: /home/runner/.cache/snapcraft/log
path: |
/home/runner/.cache/snapcraft/log/
/home/runner/.local/state/snapcraft/log/
- uses: actions/upload-artifact@v3
with:
name: series_${{ matrix.type }}${{ matrix.releases }}
Expand Down
16 changes: 7 additions & 9 deletions .github/workflows/checkbox-snap-daily-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,13 @@ jobs:
name: Checkbox snap for series ${{ matrix.type }}${{ matrix.releases }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Copy over the common files for series ${{ matrix.type }}${{ matrix.releases }}
run: |
cd checkbox-snap/
sudo apt update && sudo apt install -qq -y python3-setuptools-scm
./prepare_${{ matrix.type }}.sh $SERIES
- name: Add git short sha suffix to the version name
run: |
cd checkbox-snap
# in the following sed onliner the '0,/^version/' bit specifies the range
# of lines it should act upon, this way only the first occurence of '^version'
# is getting affected.
sed -i '0,/^version/s/\(^version\:.*\).dev/\1/' $SERIES/snap/snapcraft.yaml
sed -i "0,/^version/s/\(^version\:.*\)'/\1+git$(git rev-parse --short HEAD)'/" $SERIES/snap/snapcraft.yaml
- name: add LP credentials
run: |
mkdir -p ~/.local/share/snapcraft/provider/launchpad/
Expand All @@ -66,9 +61,12 @@ jobs:
snapcraft-channel: 7.x/stable
snapcraft-args: remote-build --build-on amd64,arm64,armhf,i386 --launchpad-accept-public-upload
- uses: actions/upload-artifact@v3
if: failure()
with:
name: snapcraft-log-series-${{ matrix.type }}${{ matrix.releases }}
path: /home/runner/.cache/snapcraft/log
path: |
/home/runner/.cache/snapcraft/log/
/home/runner/.local/state/snapcraft/log/
- uses: actions/upload-artifact@v3
with:
name: series_${{ matrix.type }}${{ matrix.releases }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deb-beta-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LP_CREDENTIALS: ${{ secrets.LP_CREDS }}
CHECKBOX_REPO: ${{ github.repository }}
PYTHONUNBUFFERED: 1
run: |
gh release create $(git describe --tags --abbrev=0 --match v*) -d --generate-notes
tools/release/release_deb_monorepo.py
3 changes: 2 additions & 1 deletion .github/workflows/deb-daily-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
- name: Install dependencies
run: |
sudo apt update -qq
sudo apt install -qq -y python3-launchpadlib
sudo apt install -qq -y python3-launchpadlib python3-setuptools-scm
git clone -b main https://git.launchpad.net/~hook25/ppa-dev-tools /tmp/ppa-dev-tools
- name: Checkout checkbox monorepo
uses: actions/checkout@v3
Expand All @@ -22,5 +22,6 @@ jobs:
- name: Check for new commits, push build and wait result
env:
LP_CREDENTIALS: ${{ secrets.LP_CREDS }}
PYTHONUNBUFFERED: 1
run: |
tools/daily-builds/deb_daily_builds.py
8 changes: 5 additions & 3 deletions .github/workflows/documentation-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,18 @@ jobs:
sudo apt-get install aspell aspell-en
- name: Install the doc framework
working-directory: docs/
run: |
make install
- name: Build docs and run spelling checker
working-directory: docs/
run: |
make spelling
woke:
name: Inclusive language check
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout
uses: actions/checkout@v3
Expand All @@ -48,6 +47,7 @@ jobs:
with:
# Cause the check to fail on any broke rules
fail-on-error: true
workdir: docs/
woke-args: "*.rst **/*.rst -c https://github.com/canonical-web-and-design/Inclusive-naming/raw/main/config.yml"

linkcheck:
Expand All @@ -61,9 +61,11 @@ jobs:
uses: actions/checkout@v3

- name: Install the doc framework
working-directory: docs/
run: |
make install
- name: Run linkchecker
working-directory: docs/
run: |
make linkcheck
13 changes: 7 additions & 6 deletions .github/workflows/metabox.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,17 @@ jobs:
metabox_run_required:
runs-on: ubuntu-latest
name: Check for changes in metabox and checkbox-ng dirs
outputs:
required_run: ${{ steps.check_diff.outputs.required_run }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Use git diff to see if there are any changes in the metabox and checkbox-ng directories
id: check_diff
continue-on-error: true
run: |
git diff --exit-code HEAD origin/main -- checkbox-ng metabox
if [[ $? -eq 0 ]]
DIFF_LENGTH=`git diff HEAD origin/main -- checkbox-ng metabox | wc -l`
if [[ $DIFF_LENGTH -eq 0 ]]
then
echo "No Metabox run required."
echo "required_run=false" >> $GITHUB_OUTPUT
Expand All @@ -29,7 +30,7 @@ jobs:
fi
Metabox:
if: (github.event.review.state == 'approved' && needs.metabox_run_required.outputs.required_run == 'true') || github.event_name == 'workflow_dispatch'
if: (github.event.review.state == 'approved' && true == fromJSON(needs.metabox_run_required.outputs.required_run)) || github.event_name == 'workflow_dispatch'
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -60,8 +61,8 @@ jobs:
lxc profile device add default root disk path=/ pool=metabox${{ matrix.os }}
lxc storage list
- name: Install dependencies
run: python3 -m pip install --upgrade pyopenssl
run: python3 -m pip install --upgrade pyopenssl pip setuptools
- name: Install Metabox
run: python3 -m pip install -e .
- name: Run Metabox scenarios
run: metabox configs/${{ matrix.mode }}-source-${{ matrix.os }}.py --log TRACE
run: metabox configs/${{ matrix.mode }}-source-${{ matrix.os }}.py
32 changes: 32 additions & 0 deletions .github/workflows/tox-provider-iiotg.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Test Intel IOTG provider with tox

on:
push:
branches: [ main ]
paths:
- providers/iiotg/**
pull_request:
branches: [ main ]
paths:
- providers/iiotg/**
workflow_dispatch:

jobs:
build:
defaults:
run:
working-directory: providers/iiotg
runs-on: ubuntu-20.04
strategy:
matrix:
python: ["3.5", "3.6", "3.8", "3.10"]
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install tox
run: pip install tox
- name: Run tox
run: tox
6 changes: 6 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ build:
os: ubuntu-22.04
tools:
python: "3.11"
jobs:
post_checkout:
- git fetch --unshallow || true
post_create_environment:
- pip install --upgrade pip
- pip install checkbox-ng/

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Install the Checkbox support library in the virtual environment:

``` bash
(venv) $ cd ~/checkbox/checkbox-support
(venv) $ ./setup.py install
(venv) $ python3 -m pip install -e .
```

You should now be able to run checkbox, select a test plan and run it:
Expand Down
Loading