Skip to content

feat: publish to Arduino, PlatformIO and ESP Component registries - #50

Open
gistrec wants to merge 1 commit into
masterfrom
feat/embedded-registries
Open

gistrec wants to merge 1 commit into
masterfrom
feat/embedded-registries

Conversation

@gistrec

@gistrec gistrec commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Adds the manifests and CI needed to ship the library on the three embedded registries. Headers are unchanged apart from the version bump to 1.2.3 (registries can't backfill v1.2.2).

Arduino Library Manager (GeoUtils)

  • library.properties, limited to C++17-capable cores (esp32, esp8266, rp2040, stm32, renesas_uno)
  • src/GeoUtils.h shim: forwards to ../include/geo/geo.hpp, #error below C++17
  • examples/GeoUtils/GeoUtils.ino

PlatformIO Registry (gistrec/geo-utils-cpp)

  • library.json with an export exclude list (pio pkg pack ships only headers, shim, sketch, manifests, LICENSE/NOTICE)

ESP Component Registry (gistrec/geo-utils-cpp)

  • idf_component.yml (no version: the publish job passes the tag)
  • if(ESP_PLATFORM) idf_component_register(...) return() endif() before project() in CMakeLists.txt, same pattern as ArduinoJson

CI

  • embedded.yml: ESP-IDF 5.5 smoke project, pio ci for esp32dev + rpipico, arduino-cli for ESP32 + arduino-pico, arduino-lint in submit mode (also proves the GeoUtils name is free)
  • embedded-publish.yml: on release: published only, uploads to PlatformIO (token) and the ESP registry (OIDC)
  • Version test now also checks library.properties and library.json

Nothing changes for CMake/vcpkg/Conan/xrepo/build2/Meson consumers: the new files are not installed, not in the build2 package and not in geo.hpp. RELEASING.md and the docs are updated.

Before publishing v1.2.3, one-time setup: PLATFORMIO_AUTH_TOKEN secret, ESP trusted uploader for embedded-publish.yml. After the release: Arduino library-registry PR, then switch arduino-lint to update.

Adds library.properties + src/GeoUtils.h shim + an example sketch
(Arduino), library.json (PlatformIO), idf_component.yml + an ESP_PLATFORM
block in CMakeLists.txt (ESP-IDF). The Embedded workflow compiles the
library in all three ecosystems and runs arduino-lint; Embedded publish
uploads to PlatformIO and the ESP registry when a release is published.
Bumps the version to 1.2.3.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant