Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
44 changes: 44 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -717,3 +717,47 @@ jobs:
firmware/build/${{ matrix.target }}/bootloader/bootloader.bin
firmware/build/${{ matrix.target }}/partition_table/partition-table.bin
if-no-files-found: error

build-rp2:
# Real, isolated RP2350 Arm build. Both host tools and every selected
# nested source are pinned; no ambient/Homebrew picotool is admitted.
needs: [no-leak, spdx, sha-drift, patches, firmware-host]
runs-on: macos-15
timeout-minutes: 60
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Require the reviewed Apple Silicon host
run: |
test "$(uname -s)" = "Darwin"
test "$(uname -m)" = "arm64"
- name: Initialize only the pinned RP2 source graph
run: |
git submodule update --init --depth 1 -- firmware/upstream/micropython
git -C firmware/upstream/micropython submodule update --init --depth 1 -- \
lib/btstack \
lib/cyw43-driver \
lib/lwip \
lib/mbedtls \
lib/micropython-lib \
lib/pico-sdk \
lib/tinyusb
- name: Install pinned ARM GNU toolchain
run: firmware/scripts/install_arm_toolchain.sh
- name: Install pinned official picotool distribution
run: firmware/scripts/install_picotool.sh
- name: Build rpi-pico2-w from retained inputs
run: firmware/scripts/build_rp2.sh rpi-pico2-w
- name: Retain RP2 build and provenance
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: pyble-rpi-pico2-w
path: |
firmware/build/rpi-pico2-w/firmware.uf2
firmware/build/rpi-pico2-w/firmware.bin
firmware/build/rpi-pico2-w/firmware.elf
firmware/build/rpi-pico2-w/firmware.elf.map
firmware/build/rpi-pico2-w/pyble-build-provenance.json
if-no-files-found: error
retention-days: 14
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@ firmware/.esp-idf/
# [arm_gnu_toolchain] by firmware/scripts/install_arm_toolchain.sh (X-13).
firmware/.arm-gnu/
.arm-gnu/
# Official picotool distribution retained from versions.lock [picotool]. Only
# this exact firmware-local install root is excluded; authored lookalikes stay
# visible to source gates and Git.
firmware/.picotool/
# firmware/upstream/micropython/ is now a tracked git submodule (see .gitmodules);
# its working tree is managed by git-submodule, not ignored here.

Expand Down
15 changes: 9 additions & 6 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ the project’s conformance and hardware-validation gates.
5. Third-party dependencies remain under their own licenses and must be
recorded in the relevant dependency and notice files.

The pinned, gitignored compiler trees at `firmware/.esp-idf` and
`firmware/.arm-gnu` are third-party build inputs, not shippable source. Source
gates prune those exact roots while continuing to scan similarly named
authored directories.
The pinned, gitignored compiler/tool trees at `firmware/.esp-idf`,
`firmware/.arm-gnu`, and `firmware/.picotool` are third-party build inputs,
not shippable source. Source gates prune those exact roots while continuing to
scan similarly named authored directories.

## Spec-driven and test-driven development

Expand Down Expand Up @@ -68,8 +68,11 @@ CHANGELOG.md CITATION.cff AGENTS.md CLAUDE.md .gitignore .gitmodules
```

Put specifications and decisions under `docs/`, scripts under `tools/` or
`firmware/scripts/`, and examples under `examples/`. Keep screenshots, signing
material, builds, assistant state, and local notes out of Git.
`firmware/scripts/`, and examples under `examples/`. Keep raw or unreviewed
screenshots, signing material, builds, assistant state, and local notes out of
Git. A deliberately reviewed, provenance-recorded image used by the public
website may live below `tools/web/public/`; its raw capture must remain in an
ignored workspace.

## Naming

Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,15 @@ The current compatible app feature set now targets `0.2.0`; build `5` was
handed off through Transporter for TestFlight. This candidate identity improves
test and evidence traceability but does not designate a qualified store release
or claim App Store Connect processing, beta-review approval, or availability.
The next prepared Android open-testing candidate is `0.2.0 (8)`; its bundle
and submission packet do not claim Play submission, approval, or rollout.

### App source

- Added a full offline Privacy policy route from About, with the published
policy, effective date and privacy contact. Reading it preserves the live
board session, editor, Blocks and console state, including at large text
sizes. Advanced the shared app candidate identity to `0.2.0+8`.
- Added Python syntax highlighting and synchronized one-based line numbers to
the editor while retaining the plain-field fallback, offline boundary,
smart-punctuation protection, and safe external-keyboard Tab behavior.
Expand Down Expand Up @@ -71,6 +77,10 @@ or claim App Store Connect processing, beta-review approval, or availability.

### Website and repository source

- Prepared Google Play open-testing listing text, reviewer hardware setup,
tester instructions, data-use assessment, and reproducible store artwork
with authentic screenshot provenance. Store availability remains a separate
Console handoff.
- Added a static `/learn` center with ten ordered, accessible tutorials covering
exact five-profile setup, the first BLE program, Files and multi-delete,
pinned public GitHub import, Blocks, the complete 32-example development
Expand Down
Loading
Loading