diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..0a30165 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 + +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + open-pull-requests-limit: 5 + commit-message: + prefix: "chore(actions)" + groups: + actions-minor-patch: + update-types: + - "minor" + - "patch" diff --git a/.github/workflows/note-samples-arduino-ci.yml b/.github/workflows/note-samples-arduino-ci.yml new file mode 100644 index 0000000..d2a1fc8 --- /dev/null +++ b/.github/workflows/note-samples-arduino-ci.yml @@ -0,0 +1,53 @@ +name: note-samples-arduino-ci + +on: + push: + branches: [main] + paths: + - "arduino-note-array/**" + - "esp32-dfu/**" + - ".github/workflows/note-samples-arduino-ci.yml" + pull_request: + paths: + - "arduino-note-array/**" + - "esp32-dfu/**" + - ".github/workflows/note-samples-arduino-ci.yml" + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }}${{ github.ref == 'refs/heads/main' && format('-{0}', github.sha) || '' }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +permissions: + contents: read + +jobs: + esp32-dfu: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@v7 + - name: Compile esp32-dfu + uses: arduino/compile-sketches@v1 + with: + fqbn: esp32:esp32:featheresp32 + platforms: | + - name: esp32:esp32 + source-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json + libraries: | + - name: Blues Wireless Notecard + sketch-paths: | + - esp32-dfu + + arduino-note-array: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - uses: actions/checkout@v7 + - name: Set up Python + uses: actions/setup-python@v7 + with: + python-version: "3.13" + - name: Install PlatformIO + run: pip install platformio + - name: Build arduino-note-array + run: pio run -d arduino-note-array/arduino-note-array diff --git a/.github/workflows/note-samples-python-ci.yml b/.github/workflows/note-samples-python-ci.yml index 7132766..6caa28a 100644 --- a/.github/workflows/note-samples-python-ci.yml +++ b/.github/workflows/note-samples-python-ci.yml @@ -1,24 +1,37 @@ name: note-samples-python-ci -on: [push] +on: + push: + branches: [main] + pull_request: + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }}${{ github.ref == 'refs/heads/main' && format('-{0}', github.sha) || '' }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +permissions: + contents: read jobs: build: - runs-on: ubuntu-latest - continue-on-error: true + runs-on: ubuntu-24.04 + timeout-minutes: 10 strategy: + fail-fast: false matrix: - python-version: ["3.10"] # ["3.7", "3.8", "3.9", "3.10"] + python-version: ["3.11", "3.13"] sample: - "python-dfu" - "python-remote-commands-attn-rpi" - "python-route-endpoint" - "python-ota-request-manager" + - "python-large-file-upload" + - "python-softap-fix" steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v7 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -35,6 +48,7 @@ jobs: # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest + if: hashFiles(format('{0}/**/test_*.py', matrix.sample), format('{0}/**/*_test.py', matrix.sample)) != '' run: | cd ${{ matrix.sample }} pytest diff --git a/arduino-note-array/arduino-note-array/src/main.cpp b/arduino-note-array/arduino-note-array/src/main.cpp index 7511b46..52ea2ad 100644 --- a/arduino-note-array/arduino-note-array/src/main.cpp +++ b/arduino-note-array/arduino-note-array/src/main.cpp @@ -14,7 +14,7 @@ #include -#include +#include // Note that both of these definitions are optional; just prefix either line // with `//` to remove it. diff --git a/python-large-file-upload/requirements.txt b/python-large-file-upload/requirements.txt index 2869cc3..e7b0935 100644 Binary files a/python-large-file-upload/requirements.txt and b/python-large-file-upload/requirements.txt differ diff --git a/python-ota-request-manager/requirements.txt b/python-ota-request-manager/requirements.txt index a52edcf..902d632 100644 Binary files a/python-ota-request-manager/requirements.txt and b/python-ota-request-manager/requirements.txt differ diff --git a/python-remote-commands-attn-rpi/README.md b/python-remote-commands-attn-rpi/README.md index a0ea9ef..e2f3310 100644 --- a/python-remote-commands-attn-rpi/README.md +++ b/python-remote-commands-attn-rpi/README.md @@ -18,7 +18,7 @@ General workflow follows: ## Setup Hardware -Notecard connected to a Raspberry Pi with Python 3 installed +Notecard connected to a Raspberry Pi with Python 3.10 or later installed The Notecard ATTN Pin is wired to a GPIO pin on the Rasberry Pi diff --git a/python-remote-commands-attn-rpi/requirements.txt b/python-remote-commands-attn-rpi/requirements.txt index a666fe4..73d9cbb 100644 --- a/python-remote-commands-attn-rpi/requirements.txt +++ b/python-remote-commands-attn-rpi/requirements.txt @@ -1,131 +1,4 @@ -appdirs==1.4.3 -asn1crypto==0.24.0 -astroid==2.1.0 -asttokens==1.1.13 -automationhat==0.2.0 -beautifulsoup4==4.7.1 -blinker==1.4 -blinkt==0.1.2 -buttonshim==0.0.2 -Cap1xxx==0.1.3 -certifi==2018.8.24 -chardet==3.0.4 -Click==7.0 -colorama==0.3.7 -colorzero==1.1 -cookies==2.2.1 -cryptography==2.6.1 -cupshelpers==1.0 -cycler==0.10.0 -decorator==4.3.0 -docutils==0.14 -drumhat==0.1.0 -entrypoints==0.3 -envirophat==1.0.0 -ExplorerHAT==0.4.2 -filelock==3.3.2 -Flask==1.0.2 -fourletterphat==0.1.0 -gpiozero==1.5.1 -guizero==0.6.0 -html5lib==1.0.1 -idna==2.6 -ipykernel==4.9.0 -ipython==5.8.0 -ipython-genutils==0.2.0 -isort==4.3.4 -itsdangerous==0.24 -jedi==0.13.2 -Jinja2==2.10 -jupyter-client==5.2.3 -jupyter-core==4.4.0 -keyring==17.1.1 -keyrings.alt==3.1.1 -kiwisolver==1.0.1 -lazy-object-proxy==1.3.1 -logilab-common==1.4.2 -lxml==4.3.2 -MarkupSafe==1.1.0 -matplotlib==3.0.2 -mccabe==0.6.1 -microdotphat==0.2.1 -mote==0.0.4 -motephat==0.0.3 -mypy==0.670 -mypy-extensions==0.4.1 -note-python==1.4.4 -nudatus==0.0.4 -numpy==1.16.2 -oauthlib==2.1.0 -olefile==0.46 -pantilthat==0.0.7 -parso==0.3.1 -pexpect==4.6.0 -pgzero==1.2 -phatbeat==0.1.1 -pianohat==0.1.0 -picamera==1.13 -pickleshare==0.7.5 -picraft==1.0 -piglow==1.2.5 -pigpio==1.44 -Pillow==5.4.1 -prompt-toolkit==1.0.15 -psutil==5.5.1 -pycairo==1.16.2 -pycodestyle==2.4.0 -pycrypto==2.6.1 -pycups==1.9.73 -pyflakes==2.0.0 -pygame==1.9.4.post1 -Pygments==2.3.1 -PyGObject==3.30.4 -pyinotify==0.9.6 -PyJWT==1.7.0 -pylint==2.2.2 -pyOpenSSL==19.0.0 -pyparsing==2.2.0 -pyserial==3.4 -pysmbc==1.0.15.6 -python-apt==1.8.4.3 -python-dateutil==2.7.3 -python-periphery==2.3.0 -pyxdg==0.25 -pyzmq==17.1.2 -qtconsole==4.3.1 -rainbowhat==0.1.0 -reportlab==3.5.13 -requests==2.21.0 -requests-oauthlib==1.0.0 -responses==0.9.0 -roman==2.0.0 -RPi.GPIO==0.7.0 -RTIMULib==7.2.1 -scrollphat==0.0.7 -scrollphathd==1.2.1 -SecretStorage==2.3.1 -semver==2.0.1 -Send2Trash==1.5.0 -sense-emu==1.1 -sense-hat==2.2.0 -simplegeneric==0.8.1 -simplejson==3.16.0 -six==1.12.0 -skywriter==0.0.7 -sn3218==1.2.7 -soupsieve==1.8 -spidev==3.4 -ssh-import-id==5.7 -thonny==3.3.0 -tornado==5.1.1 -touchphat==0.0.1 -traitlets==4.3.2 -twython==3.7.0 -typed-ast==1.3.1 -uflash==1.2.4 -unicornhathd==0.0.4 -urllib3==1.24.1 -wcwidth==0.1.7 -webencodings==0.5.1 -Werkzeug==0.14.1 -wrapt==1.10.11 +note-python==2.5.1 +pyserial==3.5 +python-periphery==2.4.3 +RPi.GPIO==0.7.1 diff --git a/python-softap-fix/README.md b/python-softap-fix/README.md index 88c4d8c..694fce3 100644 --- a/python-softap-fix/README.md +++ b/python-softap-fix/README.md @@ -6,7 +6,7 @@ ESP32-based Wi-Fi Notecards and not Cell+WiFi or legacy Notecards. ## Requirements -- Python 3 +- Python 3.10 or later ## Usage diff --git a/python-softap-fix/requirements.txt b/python-softap-fix/requirements.txt index 5e707db..cf60fe6 100644 --- a/python-softap-fix/requirements.txt +++ b/python-softap-fix/requirements.txt @@ -2,4 +2,4 @@ note-python==1.5.0 packaging==24.2 python-periphery==2.3.0 pyserial==3.5 -requests==2.32.3 \ No newline at end of file +requests==2.34.2 \ No newline at end of file