{"id":20492319,"url":"https://github.com/husarnet/husarnet-arduino-builder","last_synced_at":"2026-04-17T22:07:16.673Z","repository":{"id":250153985,"uuid":"833629256","full_name":"husarnet/husarnet-arduino-builder","owner":"husarnet","description":"Arduino/PIO Husarnet library builder","archived":false,"fork":false,"pushed_at":"2024-10-03T08:08:54.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-05T17:42:56.655Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/husarnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-25T12:38:21.000Z","updated_at":"2024-10-03T08:08:57.000Z","dependencies_parsed_at":"2024-11-15T17:33:13.346Z","dependency_job_id":"6ee513b0-79ff-4c2f-a30e-d31aac1e1972","html_url":"https://github.com/husarnet/husarnet-arduino-builder","commit_stats":null,"previous_names":["husarnet/husarnet-arduino-builder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/husarnet/husarnet-arduino-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husarnet%2Fhusarnet-arduino-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husarnet%2Fhusarnet-arduino-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husarnet%2Fhusarnet-arduino-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husarnet%2Fhusarnet-arduino-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/husarnet","download_url":"https://codeload.github.com/husarnet/husarnet-arduino-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husarnet%2Fhusarnet-arduino-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27529833,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-05T02:00:07.920Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T17:28:35.945Z","updated_at":"2025-12-05T22:02:38.841Z","avatar_url":"https://github.com/husarnet.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# husarnet-arduino-builder\n\nThis repository compiles and releases Arduino and PlatformIO Husarnet libraries. Resulting files can be found in the [husarnet-esp32-arduino](https://github.com/husarnet/husarnet-esp32-arduino) and [husarnet-esp32-platformio](https://github.com/husarnet/husarnet-esp32-platformio) repositories and in Arduino and PIO package registries.\n\n## Architecture\n\nIn the root of the repository there are 4 folders used in the build process:\n* `util/` - contains scripts used to perform all required actions in the release process\n* `esp32-arduino-lib-builder` - submodule containing ESP32 Arduino builder, used to create prebuilt Husarnet libraries\n* `husarnet-esp32-arduino` - submodule containing generated Husarnet ESP32 Arduino library\n* `husarnet-esp32-platformio` - submodule containing generated Husarnet ESP32 PlatformIO library\n\nHusarnet library is built from [the ESP-IDF component](https://github.com/husarnet/esp_husarnet/tree/master). Currently the builder selects latest stable released version on the ESP Registry. All core Husarnet code is taken from ESP-IDF port resulting in the same codebase across frameworks.\n\n## Steps\n\nThe release process is automated and involves the following steps:\n\n### Build\n\n```\nutil/build.sh full\n```\n\nThis script ensures that we have the latest version of the ESP32 Arduino Lib Builder. It optimises the `idf_component.yml` file to speed up the build and copies the output artifacts to library folders.\n\nIt can be run either in the `full` mode, which will download all components and toolchain files (very slow during first run) or in the `local_deps` mode, which will use the locally available ESP-IDF toolchain (needs to be sourced beforehand) and does not build as many unneccessary files, including the Arduino component as the full mode. Main drawback is possible incompatibility of the generated library with the Arduino IDE. Should be used for testing purposes only.\n\n### (Optionally) Edit library files\n\nChanges to the files in libraries should be done after the build step. Please note that currently `include` and `src` folders are removed and replaced with the ones from the ESP32 Arduino Lib Builder by the `util/build.sh` script.\n\n### Bump version\n\n```\nutil/version.sh get\nutil/version.sh set {arduino/pio/all} X.X.X\nutil/version.sh bump {arduino/pio/all} {major/minor/patch/prerelease}\n```\n\nThis script allows to fetch, set and bump the version of the Arduino/PlatformIO Husarnet library. It will update the version in both libraries manifest files. Usually running the `bump all patch` command is enough.\n\n### Release\n\n```\nutil/release.sh {arduino/pio/all}\n```\n\nThis script will release the Husarnet library to the PlatformIO package registry and tag new release in the Arduino library repository.\n\n\n## Requirements\n\nClone the repository:\n\n```\ngit clone --recurse-submodules\n```\n\n### Packages and libraries\n\nRun:\n\n``` \nsudo apt install python3 python3-pip jq gh\n```\n\n```\npip install -r requirements.txt\n```\n\n### PlatformIO\n\nIs only required to release the PlatformIO library.\n\nCould be installed via [pip](https://docs.platformio.org/en/latest/core/installation.html#python-package-manager) or a [installer script](https://docs.platformio.org/en/latest/core/installation.html#installer-script). Follow official instructions.\n\nAlternatively, you can run `util/release.sh` script from the CLI bundled with the full VSCode PlatformIO extension, launched via `\u003ePlatformIO: Open PlatformIO Core CLI` command.\n\n### Service login\n\nTo release the Arduino library, you need to be logged in to the GitHub CLI. Run the following command and follow the instructions:\n\n```\ngh auth login\n```\n\n\nUploading libraries to the PlatformIO registry also requires authentication. Run the following command and follow the instructions:\n```\npio account login\n```\n\n## TODO\n- [ ] Output library size optimization\n- [ ] Verify that the version has been bumped before releasing\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhusarnet%2Fhusarnet-arduino-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhusarnet%2Fhusarnet-arduino-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhusarnet%2Fhusarnet-arduino-builder/lists"}