From 797c700078f86b7364cca53ea22488003c60e444 Mon Sep 17 00:00:00 2001 From: jaenrig-ifx Date: Tue, 22 Jul 2025 10:10:21 +0200 Subject: [PATCH 1/8] docs: Added arduino-packager docs. Signed-off-by: jaenrig-ifx --- docs/compile-examples/getting-started.rst | 2 +- docs/scripts/arduino-packager.rst | 226 +++++++++++++++++++++- 2 files changed, 225 insertions(+), 3 deletions(-) diff --git a/docs/compile-examples/getting-started.rst b/docs/compile-examples/getting-started.rst index 42c07f3..cd41660 100644 --- a/docs/compile-examples/getting-started.rst +++ b/docs/compile-examples/getting-started.rst @@ -12,7 +12,7 @@ Before you start, make sure you satisfy the following prerequisites: - Your Arduino asset (library or core) is hosted in a GitHub repository. - GitHub Actions is enabled in your repository. Check the `GitHub docs `_ to learn how to enable it. -- If your asset is an Arduino core, first you need to `configure the repository `_ to be able to generate the core package with the ``core-packager.py`` tool. +- If your asset is an Arduino core, first you need to :doc:`configure the repository <../scripts/arduino-packager>` to be able to generate the core package with the ``core-packager.py`` tool. Enabling the reusable workflow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/scripts/arduino-packager.rst b/docs/scripts/arduino-packager.rst index a6ad3be..c10ee6c 100644 --- a/docs/scripts/arduino-packager.rst +++ b/docs/scripts/arduino-packager.rst @@ -1,5 +1,227 @@ arduino-packager ================ -In the case of Arduino cores, it also takes care of packaging the core assets, which includes the sources and -the `package index manifest `_ with the core metadata, to be able to be installed by the Arduino IDE or CLI. \ No newline at end of file +The ``arduino-packager`` script generates the package assets for Arduino cores installation. +These include: + +- The archive *.zip* file with the core `required sources and metafiles `_. +- The `package index manifest `_ file, which contains the information required by Arduino (IDE and CLI) to install the core. + +It requires two files for the asset generation: + +- **The core packager YAML file** + + This file is used by the ``arduino-packager`` in both the creation of the sources archive and the package index JSON file. + It specifies which files need to be included in the package, and provides some of the field values of the package index JSON. + See section `Packager config YAML specification`_ to check all the configurable parameters. + +- **The package index manifest template** + + It includes the JSON schema that needs to be filled in for every release. Some of the keys are already pre-filled. These are constant for every release. + + The rest of the empty keys will be added by the ``arduino-packager.py`` script based on the core sources archive and the provided packager configuration YAML. + + +.. note:: + + Please locate these 2 files inside the ``package`` directory of the core root path. This is the default location where the tool will look for them. + + +Additionally, the script will also include all the previous releases (``platforms`` key) based on the JSON package index manifest of the previous release. +This way, the user will have access to all the existing versions of the core. + +Packager config YAML specification +---------------------------------- + +The YAML file supports the following keys: + + - package-name: + The name of the core package archive. + + - include: + List of files and directories to include in the core package + archive. + + - index-name: + The name of the index file without the ".json" extension. + + - server: + The server information for uploading the package. + This is open to different specifications and approaches + for the package sources archive and package index file hosting. + Currently, the only one supported is: + + **GitHub** + + The GitHub server should have the following keys: + + - type: + github + - owner: + The owner of the repository (user name or organization) + - repo: + The repository name + + From this information, we can generate: + + - The URL to download the package. + - The URL of the package index JSON file. + + + Optional keys: + + - exclude: + Specific files or subdirectories to exclude from any of the + directories in the include list. + + This exclude list will be processed after the include list. + Therefore, if a file is in both the exclude and + include lists, it will be excluded. + + - index-template: + The template for the package index file. + If not provided, the expected default value is: + "package/.template.json" + + Reference example YAML file: + + .. code:: yaml + + package-name: arduino-core-vendor-product + include: + - cores + - libraries + - variants + - boards.txt + - platform.txt + - LICENSE.md + - README.md + - post_install.sh + index-name: package_vendor_product_index + server: + type: github + owner: vendor-owner + repo: arduino-core-repo-name + + .. note:: + + Most of the configuration data in the YAML file can have a default value and/or can be auto-discovered. + Future versions of the scripts will try to provide such features. + This will simplify the configuration as much as possible, while providing alternatives through the YAML file to override the defaults. + +Package index manifest template +-------------------------------- + +The package index manifest template is a JSON file that contains the schema for the package index manifest. +Find the description of each field in the `Arduino CLI package index JSON specification `_. +This is the schema with the pre-filled keys containing dummy values, which can be fixed for every release: + +.. code:: json + + { + "packages": [ + { + "name": "company_vendor", + "maintainer": "company_or_person_maintainer", + "websiteURL": "url_to_the_documentation", + "email": "contact_email@email.com", + "platforms": [ + { + "name": " Boards", + "architecture": "", + "version": "", + "category": "Contributed", + "url": "", + "archiveFileName": "", + "checksum": "", + "size": "", + "help": { + "online": "" + }, + "boards": [ + { + "name": "board_a_name" + }, + { + "name": "board_b_name" + } + ], + "toolsDependencies": [ + { + "packager": "vendor", + "name": "tool_x", + "version": "x.y.z" + }, + { + "packager": "company", + "name": "tool_a", + "version": "a.b.c" + } + ] + } + ], + "tools": [ + { + "name": "tool_x", + "version": "x.y.z", + "systems": [ + { + "host": "i686-mingw32", + "archiveFileName": "tool_x-x.y.z-windows.zip", + "url": "https://url-to-package/tool_x-x.y.z-windows.zip", + "checksum": "SHA-256:a96002b4aebbd89b1ace6a2da3f591d27d168fe56c1decd401bfb7a88d509260", + "size": "305588533" + }, + { + "host": "x86_64-pc-linux-gnu", + "archiveFileName": "tool_x-x.y.z-linux.tar.gz", + "url": "https://url-to-package/tool_x-x.y.z-linux.tar.gz", + "checksum": "SHA-256:76fb2d76080c3c2966983d8d8053cb7082416b83d8f5f6caa3d69bc8287d7846", + "size": "212727150" + }, + { + "host": "x86_64-apple-darwin", + "archiveFileName": "tool_x-x.y.z-macosx.tar.gz", + "url": "https://url-to-package/tool_x-x.y.z-macosx.tar.gz", + "checksum": "SHA-256:081417273428cd7c929e8206c823c8681e53c84ee86f8ce95f71e726702e7d75", + "size": "206451774" + } + ] + }, + { + "name": "tool_a", + "version": "a.b.c", + "systems": [ + { + "host": "i686-mingw32", + "archiveFileName": "tool_a-a.b.c-windows.zip", + "url": "https://url-to-package/tool_a-a.b.c-windows.zip", + "checksum": "SHA-256:858d7370ea29bd70f22a017976248c7df82076d401a05420b1a479ebadb1f7b2", + "size": "4932550" + }, + { + "host": "x86_64-pc-linux-gnu", + "archiveFileName": "tool_a-a.b.c-linux.tar.gz", + "url": "https://url-to-package/tool_a-a.b.c-linux.tar.gz", + "checksum": "SHA-256:2ea4721039cbfd3859ddac87eda8c3a10284c7404a77fdcb69e9a96378ea880b", + "size": "4620637" + }, + { + "host": "x86_64-apple-darwin", + "archiveFileName": "tool_a-a.b.c-macos.zip", + "url": "https://url-to-package/tool_a-a.b.c-macos.zip", + "checksum": "SHA-256:563dd0ad0dfabc05a8832c068e85b330d93248cc907978b29c3d3d95710dc077", + "size": "4901567" + } + ] + } + ] + } + ] + } + +By default, the template will be searched in the ``package`` directory of the core root path, with the name ``.template.json``. + +You can override this by providing the ``index-template`` key in the packager YAML file. + + From 51c46e3b6174c37a05d82d59787382ac6ce77d60 Mon Sep 17 00:00:00 2001 From: jaenrig-ifx Date: Tue, 22 Jul 2025 10:16:15 +0200 Subject: [PATCH 2/8] docs: Added arduino-cli-install.py docs. Signed-off-by: jaenrig-ifx --- docs/scripts/arduino-cli-install.rst | 68 +++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/docs/scripts/arduino-cli-install.rst b/docs/scripts/arduino-cli-install.rst index 97696ca..0482bca 100644 --- a/docs/scripts/arduino-cli-install.rst +++ b/docs/scripts/arduino-cli-install.rst @@ -1,2 +1,68 @@ arduino-cli-install -=================== \ No newline at end of file +=================== + +The ``arduino-cli-install`` script is a cross-platform Python utility that automates the installation of the `Arduino CLI `_ tool on Linux, macOS, and Windows systems. + +Arduino CLI is a command-line interface that provides all the functionality of the Arduino IDE in a scriptable and automatable way. It's particularly useful for continuous integration (CI) workflows, automated testing, and batch operations. + +Features +-------- + +- **Cross-platform support**: Works on Linux, macOS, and Windows +- **Version-specific installation**: Install any specific version of Arduino CLI +- **Automated download and setup**: Handles downloading, extracting, and placing the executable in the system PATH +- **Error handling**: Provides clear error messages if installation fails + +Usage +----- + +Basic usage: + +.. code:: bash + + python arduino-cli-install.py + +Where ```` is the specific version of Arduino CLI you want to install. + +Examples +^^^^^^^^ + +Install a specific version: + +.. code:: bash + + python arduino-cli-install.py 0.34.2 + +Installation process +-------------------- + +The script performs the following steps based on your operating system: + +**Linux and macOS:** + +1. Downloads the appropriate tar.gz archive from the Arduino CLI releases +2. Extracts the archive +3. Moves the executable to ``/usr/local/bin/`` (requires sudo privileges) +4. Cleans up temporary files + +**Windows:** + +1. Downloads the Windows zip archive using PowerShell +2. Extracts the archive +3. Moves the executable to ``C:\Windows\System32\`` (requires administrator privileges) +4. Cleans up temporary files + +Prerequisites +------------- + +- Python 3.x installed on your system +- Internet connection to download Arduino CLI +- Administrator/sudo privileges for system-wide installation +- On Linux/macOS: ``curl`` and ``tar`` commands available +- On Windows: PowerShell available + +.. note:: + The script installs Arduino CLI system-wide, making it available from any directory in your terminal or command prompt. + +.. warning:: + This script requires elevated privileges (sudo on Linux/macOS, administrator on Windows) to install Arduino CLI in system directories. Make sure you trust the source before running with elevated privileges. \ No newline at end of file From 50c9605b80dae8f54520b668bbf33b91d06da153 Mon Sep 17 00:00:00 2001 From: jaenrig-ifx Date: Tue, 22 Jul 2025 11:37:55 +0200 Subject: [PATCH 3/8] docs: Added pckg-install-local.py docs. Signed-off-by: jaenrig-ifx --- docs/scripts/pckg-install-local.rst | 179 +++++++++++++++++++++++++++- 1 file changed, 178 insertions(+), 1 deletion(-) diff --git a/docs/scripts/pckg-install-local.rst b/docs/scripts/pckg-install-local.rst index b6a7f8e..351fa9a 100644 --- a/docs/scripts/pckg-install-local.rst +++ b/docs/scripts/pckg-install-local.rst @@ -1,2 +1,179 @@ pckg-install-local -================== \ No newline at end of file +================== + +The ``pckg-install-local`` script is a Python utility that enables local installation and testing of Arduino core packages during development. + +It allows to install an Arduino core without publishing it to a remote repository, from a local directory. +The `arduino-cli` can only install cores which are hosted in a remote server. +In CI/CD this is convenient for two use cases: + +- Working with the commit triggering the CI/CD pipeline for an Arduino core. +- Prevent the CI/CD downloads to increase the download statistics of the core package by installing it from a published release, which will skew the real user download statistics. + +Overview +-------- + +When developing an Arduino core, you typically need to test your changes before publishing. This script automates the process of: + +1. Starting a local HTTP server to host your package files (as arduino-cli cannot install from a local directory) +2. Creating a modified package index file with local URLs +3. Uninstalling any existing version of the core +4. Installing the core from your local development files +5. Cleaning up temporary files + +This tool can be used for cores generated by the :doc:`arduino-packager` tool. + +Features +-------- + +- **Local HTTP server**: Automatically starts a local server on a random port (8000-8200 range) +- **Package index modification**: Creates a local version of your package index with localhost URLs +- **Clean installation**: Removes existing installations and staging files before installing +- **Arduino CLI integration**: Uses Arduino CLI commands for proper core management +- **Verbose logging**: Optional detailed output for debugging +- **Cross-platform support**: Works on Linux, macOS, and Windows + +Usage +----- + +Basic usage: + +.. code:: bash + + python pckg-install-local.py + +With options: + +.. code:: bash + + python pckg-install-local.py --pckg-dir /path/to/package --verbose + +Command line options +^^^^^^^^^^^^^^^^^^^^ + +``--pckg-dir `` + Path to the package directory containing the Arduino core package files. + + **Default**: Current working directory + + **Example**: ``--pckg-dir ./build/`` + +``--verbose`` + Enable verbose logging output to see detailed information about the installation process. + + **Example**: ``--verbose`` + +``-v, --version`` + Display the version of the pckg-install-local tool. + + **Example**: ``--version`` + +Package directory structure +--------------------------- + +The package directory must contain: + +1. **Package index file**: A ``.json`` file (e.g., ``package_mycore_index.json``) +2. **Core archive**: A ``.zip`` file containing the Arduino core (e.g., ``arduino-core-mycore-1.0.0.zip``) + +Example directory structure: + +.. code:: text + + package/ + ├── package_mycore_index.json # Package index manifest + └── arduino-core-mycore-1.0.0.zip # Arduino core archive + +Installation process +-------------------- + +The script performs the following steps: + +1. **Server setup** + + - Starts a local HTTP server on a random port (8000-8200) + - Serves files from the specified package directory + +2. **Package index modification** + + - Locates the package index JSON file in the directory + - Creates a local copy with ``_local`` suffix (e.g., ``package_mycore_index_local.json``) + - Updates the package URL to point to the local server + +3. **Core cleanup** + + - Uninstalls any existing version of the core using ``arduino-cli core uninstall`` + - Removes staging files from Arduino's installation directory + - Cleans up previous local package index files + +4. **Core installation** + + - Updates Arduino CLI core index + - Installs the core using the local package index URL + - Lists installed cores to verify installation + +Prerequisites +------------- + +- **Python 3.x** installed on your system +- **Arduino CLI** installed and available in your system PATH +- **Package files** generated by the arduino-packager tool or manually created +- **Network access** for Arduino CLI to update its index (internet connection) + +.. note:: + The script requires Arduino CLI to be properly installed and configured. You can install it using the :doc:`arduino-cli-install` script. + +Examples +-------- + +**Install from current directory:** + +.. code:: bash + + python pckg-install-local.py + +**Install with verbose output:** + +.. code:: bash + + python pckg-install-local.py --verbose + +**Install from specific package directory:** + +.. code:: bash + + python pckg-install-local.py --pckg-dir ./build/package --verbose + +**Check version:** + +.. code:: bash + + python pckg-install-local.py --version + +Troubleshooting +--------------- + +**"Package index file not found" error:** + Ensure your package directory contains a ``.json`` file (package index manifest). + +**"Package archive file not found" error:** + Ensure your package directory contains a ``.zip`` file (Arduino core archive). + +**"Server could not start" error:** + The script tries random ports between 8000-8200. If all ports are busy, try closing other applications or restart your system. + +**Arduino CLI command fails:** + Verify that Arduino CLI is properly installed and accessible from the command line: + + .. code:: bash + + arduino-cli version + +**Core installation fails:** + Check that your package index file is valid JSON and contains the required Arduino core package structure. + +.. warning:: + This script modifies Arduino CLI's core installations. Make sure to backup any important Arduino configurations before running it. + +.. tip:: + Use the ``--verbose`` flag to see detailed logging output when troubleshooting installation issues. \ No newline at end of file From 0cd211dffb2aa7a320949eef7d91ce0c9c2889ab Mon Sep 17 00:00:00 2001 From: jaenrig-ifx Date: Tue, 22 Jul 2025 11:38:15 +0200 Subject: [PATCH 4/8] docs: Added arduino-release.py docs. Signed-off-by: jaenrig-ifx --- docs/scripts/arduino-release.rst | 376 ++++++++++++++++++++++++++++++- 1 file changed, 375 insertions(+), 1 deletion(-) diff --git a/docs/scripts/arduino-release.rst b/docs/scripts/arduino-release.rst index c1b55ca..5edf66e 100644 --- a/docs/scripts/arduino-release.rst +++ b/docs/scripts/arduino-release.rst @@ -1,2 +1,376 @@ arduino-release -=============== \ No newline at end of file +=============== + +The ``arduino-release`` script is an utility for managing semantic versioning releases of Arduino assets (libraries and cores). It supports with the automation of the entire release process including version validation, CI workflow verification, git tagging, and library.properties file management. + +Overview +-------- + +This tool provides a complete solution for releasing Arduino projects following semantic versioning (semver) best practices. It integrates with GitHub Actions to ensure all CI workflows pass before creating releases, maintains proper version consistency across different files, and automates git operations. + +The script supports both **Arduino libraries** and **Arduino cores**, automatically detecting the asset type and applying the appropriate release workflow. + +Features +-------- + +- **Semantic versioning support**: Full semver compliance with validation +- **CI/CD integration**: Verifies GitHub Actions workflows before release +- **Automatic version bumping**: Supports major, minor, and patch increments +- **library.properties management**: Automatically updates version for libraries +- **Git automation**: Handles tagging, committing, and pushing +- **Branch protection**: Ensures releases only from main/master branches +- **Release verification**: Post-release validation capabilities +- **Asset type detection**: Automatically identifies libraries vs cores + +Supported asset types +--------------------- + +**Arduino libraries:** + - Detected by presence of ``library.properties`` file + - Automatically updates version field in ``library.properties`` + - Creates commit for version change before tagging + +**Arduino cores:** + - Detected by presence of ``platform.txt``, ``boards.txt``, ``cores/``, and ``variants/`` + - Only performs git tagging (no file modifications needed) + +Usage +----- + +The script provides three main subcommands: + +.. code:: bash + + python arduino-release.py [options] + +Commands +^^^^^^^^ + +**new** + Create a new release with version validation and CI checks. + +**verify** + Verify that all requirements are met for an existing release. + +**info** + Display information about the current repository state. + +Basic examples +^^^^^^^^^^^^^^ + +Create a new patch release: + +.. code:: bash + + python arduino-release.py new patch + +Create a new minor release: + +.. code:: bash + + python arduino-release.py new minor + +Create a new major release: + +.. code:: bash + + python arduino-release.py new major + +Create a specific version release: + +.. code:: bash + + python arduino-release.py new 2.1.0 + +Verify an existing release: + +.. code:: bash + + python arduino-release.py verify + +Get repository information: + +.. code:: bash + + python arduino-release.py info head-tag + python arduino-release.py info repo-name + python arduino-release.py info asset-type + +Detailed command reference +-------------------------- + +new +^^^ + +Creates a new release for the specified version. + +**Syntax:** + +.. code:: bash + + python arduino-release.py new [options] + +**Arguments:** + +``version`` + The new version to create. Can be: + + - **Bump type**: ``major``, ``minor``, or ``patch`` + - **Specific version**: Semver format like ``1.2.3``, ``2.0.0-rc.1`` + +**Options:** + +``--root-path `` + Path to the Arduino asset root directory. + + **Default**: Current working directory + +``--any-branch`` + Allow releases from any branch (bypasses main/master requirement). + + **Default**: false (releases only from main/master) + +**Process flow:** + +1. **Branch validation**: Ensures HEAD is on main/master branch +2. **CI verification**: Waits for and validates all GitHub Actions workflows +3. **Tag check**: Ensures HEAD is not already tagged +4. **Version calculation**: Determines new version from current tags +5. **Version validation**: Validates semver compliance and proper increment +6. **File updates**: For libraries, updates ``library.properties`` +7. **Git operations**: Creates commit (if needed), tag, and pushes to remote + +**Example process output:** + +.. code:: text + + --> Checking if repo HEAD in the default branch... [OK] + --> Waiting for all ci workflows completion for HEAD... [OK] + --> Checking if HEAD is not already tagged... [OK] + --> Previous last version: 1.2.0 + --> New bumped version: 1.3.0 + --> Updating "library.properties" file with new version... [OK] + --> Committing changes to library.properties file... [OK] + --> Creating new git tag... [OK] + --> Pushing new git tag... [OK] + +verify +^^^^^^ + +Verifies that all requirements are met for an existing release. + +**Syntax:** + +.. code:: bash + + python arduino-release.py verify [options] + +**Validation checks:** + +1. **CI workflows**: All GitHub Actions workflows must be successful +2. **Version validity**: Current tag must be valid semver increment from previous +3. **File consistency**: For libraries, ``library.properties`` version must match git tag + +**Use cases:** +- Post-release validation in CI/CD pipelines +- Troubleshooting release issues +- Ensuring release integrity + +info +^^^^ + +Displays information about the current repository state. + +**Syntax:** + +.. code:: bash + + python arduino-release.py info [options] + +**Available keys:** + +``head-tag`` + Shows the git tag of the current HEAD commit. + +``repo-name`` + Shows the repository name (without owner). + +``asset-type`` + Shows whether the asset is a "library" or "core". + +**Examples:** + +.. code:: bash + + $ python arduino-release.py info head-tag + 1.2.3 + + $ python arduino-release.py info asset-type + library + +Version management +------------------ + +Semantic versioning rules +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The script enforces strict semantic versioning rules: + +**Major version (X.0.0):** +- Breaking changes +- Minor and patch must be 0 +- Can only increment by 1 + +**Minor version (0.X.0):** +- New features, backward compatible +- Patch must be 0 +- Major stays the same, minor increments by 1 + +**Patch version (0.0.X):** +- Bug fixes, backward compatible +- Major and minor stay the same, patch increments by 1 + +**Pre-release support:** +- Supports release candidates: ``1.0.0-rc.1`` +- Can release final version from RC: ``1.0.0-rc.1`` → ``1.0.0`` + +Version bump examples +^^^^^^^^^^^^^^^^^^^^^ + +.. code:: bash + + # From 1.2.3 to 1.2.4 (patch) + python arduino-release.py new patch + + # From 1.2.3 to 1.3.0 (minor) + python arduino-release.py new minor + + # From 1.2.3 to 2.0.0 (major) + python arduino-release.py new major + + # Specific version + python arduino-release.py new 1.5.0 + +CI/CD integration +----------------- + +GitHub actions integration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The script integrates deeply with GitHub Actions: + +1. **Workflow Detection**: Automatically finds all workflows for the HEAD commit +2. **Status monitoring**: Waits for in-progress workflows to complete +3. **Success validation**: Ensures all workflows pass before proceeding +4. **Release workflow Skip**: Ignores workflows containing "release" in the name + +**Workflow status handling:** + +- ``in_progress`` / ``requested``: Waits with progress animation +- ``success``: Continues with release process +- ``failure``: Stops and exits with error + +**API requirements:** + +- Uses GitHub REST API (no authentication required for public repos) +- Requires internet connection +- Works with both public and private repositories + +Prerequisites +------------- + +**System requirements:** +- Python 3.x with required packages: ``requests``, ``semver`` +- Git installed and configured +- Internet connection for GitHub API access + +**Repository requirements:** +- Git repository with GitHub remote (https or ssh) +- At least one existing commit +- For libraries: valid ``library.properties`` file +- For cores: valid ``platform.txt``, ``boards.txt``, ``cores/``, ``variants/`` + +**Git configuration:** +- Git user.name and user.email configured (or will be set to GitHub Actions bot) +- Push permissions to the remote repository +- Proper authentication for git push operations + +Error handling +-------------- + +The script provides comprehensive error handling with detailed messages: + +**Common errors:** + +``Release is allowed only from permanent branches`` + Solution: Switch to main/master branch or use ``--any-branch`` + +``This HEAD is already tagged`` + Solution: Make new commits or use existing tag for verification + +``The new version is not a valid semver increment`` + Solution: Check version rules and use proper semver increments + +``All CI workflows must be successful`` + Solution: Fix failing workflows before creating release + +``Package index file not found`` + Solution: Ensure proper Arduino asset structure + +**Exit codes:** +- ``0``: Success +- ``1``: Error occurred (check error message for details) + +Advanced usage +-------------- + +**Release from feature branch:** + +.. code:: bash + + # Allow releases from any branch (use with caution) + python arduino-release.py new patch --any-branch + +**Custom root directory:** + +.. code:: bash + + # Release from specific directory + python arduino-release.py new minor --root-path /path/to/arduino/project + +**CI/CD pipeline integration:** + +.. code:: yaml + + # GitHub Actions workflow example + - name: Create Release + run: | + python arduino-release.py new patch + + - name: Verify Release + run: | + python arduino-release.py verify + +**Batch operations:** + +.. code:: bash + + # Get current version for other scripts + CURRENT_VERSION=$(python arduino-release.py info head-tag) + echo "Current version: $CURRENT_VERSION" + +Best practices +-------------- + +1. **Always run from main/master**: Use default branch protection unless absolutely necessary +2. **Verify CI first**: Ensure all tests pass before creating releases +3. **Use semantic versioning**: Follow semver rules for version increments +4. **Test releases**: Use the verify command to validate releases +5. **Automate in CI**: Integrate into GitHub Actions for consistent releases +6. **Backup important work**: Script modifies git history and files + +.. warning:: + This script performs git operations including creating commits, tags, and pushing to remote repositories. Always ensure your work is backed up and you have proper permissions before running. + +.. tip:: + Use the ``--any-branch`` flag carefully in development environments. For production releases, always use the default main/master branch requirement. \ No newline at end of file From 227b5fde5283a54b761a63309e527dea79951341 Mon Sep 17 00:00:00 2001 From: jaenrig-ifx Date: Tue, 22 Jul 2025 17:13:26 +0200 Subject: [PATCH 5/8] docs/overview: Changed format of headers. Signed-off-by: jaenrig-ifx --- docs/overview/motivation.rst | 6 +++--- docs/overview/usage.rst | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/overview/motivation.rst b/docs/overview/motivation.rst index 1550d05..9eaa5cb 100644 --- a/docs/overview/motivation.rst +++ b/docs/overview/motivation.rst @@ -11,12 +11,12 @@ Background The introduction of `arduino-cli `_ has been a significant step forward in enabling programmatic handling of the Arduino toolchain and processes. This has opened up possibilities for automation via scripts and command line interfaces, making it easier to integrate tasks like build verification and testing into continuous integration servers. -Current State and Objectives +Current state and objectives ---------------------------- While existing DevOps solutions, such as `compile-sketches action `_, provide some functionality, they do not fully meet our requirements. This project aims to fill this gap by providing a collection of utilities that solve specific DevOps use cases for managing Arduino assets. The scope of this project is intentionally open-ended, allowing it to evolve and adapt to emerging needs. -Key Features and Design Principles +Key features and design principles ---------------------------------- The project's features are designed to be used via command line interface, making it easy to integrate with any non-GUI CI/CD framework and environment. Python is the language of choice, ensuring cross-platform compatibility. Although our primary development and testing platform is Linux, we strive to ensure platform independence. @@ -25,7 +25,7 @@ When applicable, the features presented rely on the Arduino `platform `_. This allows for easy deployment and upgrading of workflows with minimal effort. Given GitHub's popularity among Arduino developers, we have chosen to focus on GitHub Actions initially. However, we believe it should be straightforward to port the workflows to other CI/CD frameworks, such as GitLab, Jenkins, or Travis. -Community Engagement and Contributions +Community engagement and contributions -------------------------------------- We believe these tools can be of general interest and applicability to any Arduino library or core developer. We encourage users to try them out, provide feedback, and contribute to making them more extensible and adaptable to various use cases. \ No newline at end of file diff --git a/docs/overview/usage.rst b/docs/overview/usage.rst index 6266058..76d3ff2 100644 --- a/docs/overview/usage.rst +++ b/docs/overview/usage.rst @@ -5,7 +5,7 @@ This repository is designed to automate DevOps processes for Arduino libraries a Thus, we recommend starting by adding the available `reusable workflows `_ to your GitHub-hosted library or core. Before running the workflows, you'll need to configure them with some minimal settings. -Step-by-Step Enablement +Step-by-step enablement ----------------------- To begin, we recommend following our Getting Started guides, which will walk you through the process of enabling the workflows: @@ -13,12 +13,12 @@ To begin, we recommend following our Getting Started guides, which will walk you - :ref:`Getting started with compile-examples ` workflow enablement. Learn how to set up the compile-examples workflow and start automating your build processes. - :ref:`Getting started with release ` workflow enablement. Discover how to enable the release workflow and streamline your library or core releases. -Advanced Customizations and Local Usage +Advanced customizations and local usage --------------------------------------- As you become more familiar with the workflows and scripts, you might need advanced customizations to tailor them to your needs. You can also use the scripts locally on your development machine. -Running Scripts Locally +Running scripts locally ~~~~~~~~~~~~~~~~~~~~~~~ To run the scripts locally, first ensure you have the required dependencies installed (see :ref:`Requirements `). From b299604c984a7fc75fe3f18a96b2af67c6fddb8c Mon Sep 17 00:00:00 2001 From: jaenrig-ifx Date: Tue, 22 Jul 2025 17:13:46 +0200 Subject: [PATCH 6/8] docs/img: Added additional imgs. Signed-off-by: jaenrig-ifx --- docs/img/release-from-ga-select-version.png | Bin 0 -> 19109 bytes docs/img/release-from-ga-wflow.png | Bin 0 -> 27702 bytes docs/img/release-from-release-new-release.png | Bin 0 -> 38508 bytes docs/img/release-from-release-tag.png | Bin 0 -> 29441 bytes docs/img/release-wflow-success.png | Bin 0 -> 75010 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/release-from-ga-select-version.png create mode 100644 docs/img/release-from-ga-wflow.png create mode 100644 docs/img/release-from-release-new-release.png create mode 100644 docs/img/release-from-release-tag.png create mode 100644 docs/img/release-wflow-success.png diff --git a/docs/img/release-from-ga-select-version.png b/docs/img/release-from-ga-select-version.png new file mode 100644 index 0000000000000000000000000000000000000000..819c3f6e098465a3b091cb4d9976d1fb0048ed58 GIT binary patch literal 19109 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 F0RUC$xq<)y literal 0 HcmV?d00001 diff --git a/docs/img/release-from-ga-wflow.png b/docs/img/release-from-ga-wflow.png new file mode 100644 index 0000000000000000000000000000000000000000..701def330285b77da0c485da4d09389188fdd154 GIT binary patch literal 27702 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 Ag8%>k literal 0 HcmV?d00001 diff --git a/docs/img/release-from-release-new-release.png b/docs/img/release-from-release-new-release.png new file mode 100644 index 0000000000000000000000000000000000000000..633d21fe18a950de71cbb5eb050aae8694f06b38 GIT binary patch literal 38508 zcmeFYXH-*L7&eG{u_IS$R}i?$MFd2oO9?25NbewBL201TX1mvF~z}gtormx_MXMFh1~4FV}TZW+8i~QD{JhHKY;g)?{RR{C!afX zepDwm>_TqfooVi~2a%M$!_bXAo!sO(!JpQVV>%Z3NKmS)xeE%udmrGDp>@LM~xZtJ2?>XY&Fxyi+ z4Vw9hRB-k+R&z%Dm|ei#XhDqEr3f~yuHL-o3wjn&do4s`*$5_-bOl3LJ2_fu`C9Eg z+V&u<6?2K*L4k+1wl=N?dJ1(KRN0%Db0_en0(rbLRqaF6BgUTHT*%gTZmTtLcBP3z zbf5;l$yNlB208z{Az_+VrwKn$tBcB?!+IrlH}MmW^o_Ay7F>cV%`wWbnt<%Hk^LfVaXUFke3@fxp`4xA^ag+Bq-K1{b49egD+7v%X zM4jj_~o1_V;R(YcK!x*Kxo{Y{tR6ENu3{U=}uS1&AWLIy|GE za#c|vOV)$rz{tWMR9N9YAG+fA8QXao!h?1W8m~Kt)X!H%Vi3$ z4t3(H8K~?~Va&2QtLhCAtc+4|7=QiILU6yE!F$y0fk@+Xh^nM(5KS|KNB*PyW|NK3&EQ zOL9C5*tVowXNqM<+0`(|j81Tv&0TCd#=iVc@w97Bj^w0=K}*)K@ADNg5-~S;oP&cV z@Nf4o6sigjn{oUzTWOctMDX6|3!r&jz45GJt_o{}eKS7U|4QL0k?aD{TT@bsi_y5L zpGfJqZzdQ)j;i8&56KsBUg^joSWa&Jr~L&tN|5&{;Fpw;)wEfMl-e_(^uy%!RXm+^ zDiO&nX41PjF&)(U+^z@eZa9@&?g^Kkbmvx%%6|~!RT;^uD5ihiA;j(^!z9^HJq}K& zy;DIZT1|V;$97z&_s#yz6jOf`o}~1A`DD_8`WCrX0ahv4M$tuU)#rD#ZAg7190`+= ztBI44qnVpPk0D3EPhBP{BQoC8&v^Y&^?<*Akj#s?KbXwapQMI?HZ2tbixK#lGbNqg zX^Eriq9IOYIewkG#xc=B`_DQr2y0ZZt?@>+wX~Ag_(QVh(L+NP%@n2q9-S-_yr$

%M^?7&S6GkC9{=C%9D&4K)4Ka{(g%@SqGhhNouo>3AYu5Pr>1F`5zR;x~DKHs@pUcAe& zAn>glj5S1c!MQbON?~!);~S%QW*BiQihDJufr;7sts))h{A+^3!$9d-T-&>d@QwGc zY*F(}8lB-!(J#;j+-kLIKH3T9%hf1U#cILJ^B#`p3gnHADX=OeE|sqh_)d-2vbYuJ zB~;WM#=rW>g!#mm@pE7IRM@s9St~fD7I0M*lOBC<(niy^W9X#{{_8Qmw9qu9$H*~e zP`W~+Mw$;i%MPA)S=3tApfRlIDO=TP1eP~co0X)xYQ#A^%fn@D_UQZ5zT}xcxJx$a z4S4zleiKgq^!=pT^D6pEXL$jA#cw04H3SF#@l;3n)=FoWAPgSqYAq|{hFLRpK@Cg0 zsElnEk>-S&i8m(8z)|>5jM--%27unqiq^e7%ZHzp(V8S>fKzezfowgv&ycz{5_y%_ z+EVLx1XI|~eek_$3+Xwj%@e7q&n2WhzFrQLV%13_X-XvgNLw{_$$lR*WnfzCA$h+2 zse@1{V7CLW)_6SWgKveHhE@#tj*oXqpG4E>#J4dBb?C~BZ&Z^IX#Y({c91)d?n%2; z-SYI-g_g+e!;5GjKjX|4mB*2|OVo_NafpA7ZPcidEy};( z@9pMSsEBa-#Tn*u03lAXp>=tB)`-xWDJnfaA9ZE?Re!Ew>(t5K%V(zMfnJj(g(SSD z(dR_Onpk++E}@T43xGp8jzAU@!`i4UutkMkUZZ|xR!Tfs*rp+WmPc_fixD)Vi_zSY zN8b2p4>(Mk>|FjGoh!Odq5y@jGYQTUvD9)@T=s;up+Ka7W3kyUqgTGM>gT8E9xjP_ z?nC>ODSA*S&>dme*je{gs_5XBOxrv^(=Rld|6Q`>O7PXQ@^)(@Hxc3CvAsi0_`s&k zr(aN5S%=z-&W$jrs--x6?X#BY2tsSM`p<1<&xfuBCje{J3ca+)KV8#GWla;kV6*l! zCOZCgO^uk!A32JEDAph7joIs4Cjn}-$i%j5U%;3+MBq`o>IzRbYEicbjKlz2z?vRR z(II^N*GDMz_hl~Jc?ItHn*_9KA@`*kLN`lUeP>ZK&X@k!RL=Id<^2^B z(}rxYk=7_YthE5t^q5Wruiaq&4B7L3XltuG7p>EtMxV#h$jwf;aJ|D_W5At?Mk30` z%Tyqu(L_>VgD^(TsXWaU=F=u3JUU?SXPmtN-4Y;c96jN;X`yDH4Vu_xopgqii4W9TnmWt|p&|pNKM8QSlROrDbYcTm=<4L;-DA5Gk~_a=9*>z5*t^2Raq7OSs>IH;RuTzOYa*>tmF4k{D;V*EOuQ|#umAp< zY2K)V;RSN5vF_->J;>n(f4t%V*1yPa=qzeErZ~H9u|-+byTFf`P2SVGeJ;my*J%i> za|#qrH)rc4km>cX z>+J2Y%rTOtWJe?^};dJ*Z~+2QjL*AV5OCaF+xLWojTRVh@0oej4YU4M>>YK~fH z#~)fjJxmWsHM29?=_pNItVBnJuEQ4JDDC8ox_e7w$N3>T$aAjSey;|cD|~R4^cVb8 zIdjl%!n6xYS7|HGN6qcAipujGsNFtx zA<|EHD1S<6PnDfxa7yeD0Rhhs?48z7i zA66(d?}CLR6Of;*mv%}~2l$;B!5=pRUmN)%cR2}LmC3$1agjnxyOa0fB~s*b`SuEa zBXwuH)JUCVvD2isr1;OAaHhCwCb={GldaH_=8@_U$+ZLD^zp8crgMT?lpF;{?ygm~ z(nqSr?A>I~;V1GEdDB9)O%LTv73Q?6Tr>lX)~gdlhak-SzsAvj}F2-2@PDsE8G1$P(E z8;5YapR~GliqPrg7%d&RDM&FBLN%(a7P_90-Ldy;W;BI1D>yfyWW&>{2M(>KF2q(q zIfrhDIJP%D&G|MGPib>7)G)}KT*0^HKp5>GkHsk7&6nya-kByY<&z#0M0!5EF3+!^ zYZelOEpjdZazO*1uP_w69NItG5y0HRkESvlvByg(r_J}IHJWzASB`>Bq7~2FczH9}79Y=0 zTF)fM!(U~1xlu;V>6BMLNdh=KO12WJGyh}OfxQY@EiruT9ie2X=`>esRJ0$nYnC*6 z^}caTH8aO6-@VD(#v*ZN?d6`j>qo4HmbJr-BMzXW$co9Y+$*$76lyZ$wqLj^J!^LK zV+yyleOYjS1PqDN)^cx!6EZ9?svk+Yr7iGb$ehF;bF&YMg?yD*9dU)?7K(Po_m=Ad zr;p)}j-FDm8p%5C$PIKeE$B(S(L0MQD8Z_Ly_7!dp(tO1jY3|;mn_SsmU}ULdr>h; z(rc2!gWm&|ZSJ9}QXn>OcXC(!TYJ)Ws_KT6^QB-J4RB|=YLY3+*tCWj>XHz`XJ$H! zyN8CCLTvoOuo$~VXrB1CVI`=xra}&jeGKz$q_oK)XkPgb`Umb54diKg3WepS-Mk3Xs(Qke>RA+=RsThm$*jm{k7krT@HwZ0!KTXtLfLuIW&qKNUg zqMC&Pw%^o!raJGY5R4i^T)%ei6n=;UZ%vp=^vr7Mrc&cAjY`hUG^DFBpU)^^ozcDj z7LZ7prE;ghU~gMoU)7_qf=Yf07rtoy$BQ(GhJvfZD-q~|?@R#bp1$X@ijPnY(Dt8I zQquu3E29jYA6dXdIJ5}aX$ZdjqE6$)udO@S2vjcyhZ{%AW|<{-HQ z>wbVf>TBM44ZzB{v>(CB5Ru)=YmJ1Xie?S3h06!+v$#{{ji~wNdasbsOwC7VlY9iA z5FQoQ4ha|88~sVgF`K>3<}h9YPo3tHdLa85_h}WLa}K$01y2V}ctHN5Oi@n-bC<*o ztX}y{!N~1ZIJNK6$Eq)$6sev;bu;D?mzZE_^tZVM6s>M%%1Dm;5s3L_mzYfpiC%5p_A=zOGP76<~ zy5$|kz_aPT^3BRze2wtC352lo!7WSVSMtV}$sSxdL?M<=Ht}qX2ICI!Q3c7c(P`k; z&VYCy-+G!)AgJV9@N4_j?ArXpqZdamBuPF+WYWwSZ#sO{v45&b*;4RKPz9=@2ujcujY8rtU?Mf1yi(}vN@(A!i$i%6tYkgU zwcMnrKWb}x`ZP`%^D!#LHpr4JJb>1zuIld}`8-dm<{OyK5kvX8F;Cv;ej!5gQZuTk z_{VPuYWqrl(1h3OeMDycb3ahT2f>;JMh5ar5_k=~ z@sGs(yeqYmK&ARK0DnD8=H@Z)_Ni<#=H-x*WK{}Nw0J$&63?prPapK>;Evl0@;2Y~ z71EJEWO}APmrtFSnR$#Dxn>{I$uu2;F>{>_p|)-v_{(0tdxiW%c|~%2Mk8tPYwm6D zCvsXxP=B#&N-MdsRnr1{A$zCRI)_}_7PfDrH;om9Z&fp{I*bJ~cjCUTWz$C4wjbY2 zi*sm`Uj3v7V0jkx`z9T2Gi!Dy)OK;xul``}z7|lNe-f_$+VN#FZ$M81z5Co4tpc#* z>r(T!M|<4uTM$#(HI`q4mrSZIxIPk5R;oLFl!?J|!n-XM)w6T1MYLxzPxhO=|y5Iv7zW6ScYUuFfwM=JG9 zQ=4gfK>rZ@W(Lh5yUBizN$feYFg%j)wvUQG`qd{u+v~#Oh4EWhZeqx6XH*wzgE_tO zpdzmF0Vx=pPa!jKfHIx8Q@9yLm*CK@nMfyHMomKJ_x{m7Z!Ifq9-3X&5yOpJyG$C^ zI%lqBIOt7Xos!@SDtWf-g9A=&;fQ|RLl;%;iw|uGH(gJ;i1?Q3Ug+w9tAR@IP>Q(z zqD;;@a&xsezuR3g3im%Hi_FLjdhx*aFX#iK$F+8%Bt~5 zYROt%VQVBSby+Yn56RqSzlQ!OK_d?XC8MSwZiIh~quf)s1i=>Trh4A@S11sbp`^L^ zA?DITHp{Li8k;=wK1HRn)R_arLVE&74BL>t$K5 ze^*{lSz9$w<`~h6!GRw)4mFIi0VX|< zL4)X)Hp}zS$`^h6*@f3g6)wVi6BkLa(}DHjbc3^9HFu|KVZpaZ!O_~rj&|2)VNklu zI#~M_`kt8Ix&-1GIM_@ff%fZ_Kzf_Bi?M7x?#;frV1SO6?iHflD7*4&MUj8$Sj7A1p@P=Bkio{;^j&hTi&1X1LlmSvGPK)lCTRO%V$?6! z@HV?f4=*-^6U%y9BB;D$B#O-&?0H+`e0K&W^De_eiuAWDWjpx$?LFmU-wYLx{l7xlXlk zijq1nWEsqTL>%Xo+&UG*%X7J8A!p^rM%-KXlEas}6Ks6TtgC~dr6(uinj>6C;TqK@ z14l0V2*%fO(eC-i`uYtyAkE?~2nQ|xx+pxTT98`qX#Dr@YW8Na|Cl(Sn6}h}fNawU zr>9@Yhen7FtjvPc08Km0no< z&f_(jcB%N&dF^YjQLnMDuUdY1e= zWM6)Fi89x0%f|7nbiDKnF33|$|AU-P?NTj6IjEsb7#Mr z2Kf+mL#e(FEL#(YIa36P)Xndf64q9aR&TNq(z3)RWnUuc3&sh&_|28v*w$w^Kl*nG zI8Kn2S)$+fh|@*cnJWin9TS^~tJBp3p7An_SqSHAU62Ekrk_o$fsw=XkvoNW1*Z-GVI4 zpX^bUkt({dUU$DVJ>e3Zgh_CqdUn+MyA=Ngsb927)$z5SA({=GCb9?1zJ=2R_}hP5 z9Cu&*r;+TfW7@w>@wfbO`ai^ugX7P?U-|yG@Bb4ga%tO#+@ZX))zANUg!!FHvE`ZH z)cd1)X5;@rDcO7ct;BwF4%qU42fhDahWY>h6Msh^w){V&OZ>kykDxzC+qyx(D|Z1r zmo8PYNfL0~hyQ~l@$V>5OKhL3_94Ia1Y=K9OADLj5M9SrQGV^3y5!AjRKs2*e0o|( zEo}Z38}j}w;~CeDbL{8(93(rs5Ab`NF>L9;(dV^vg6My@g-&f`zB>8p1+u1-n?cKkq|G&E{ga$)`ww-1Y z|F2V6{$E;?|1+A+`;%7@>bb$a$Hq@UpU}N^=zW;qYzX#iQ{HvsY|ll+CTV2Bf}K8m z%gfBkfwO8tZS%{@r^bLERzkoA|AuEaS*AZ*$-m6OPZ;51%0&3Jg_Q`ufJtV$jMxIg zcSk#+45aspN%-x)uFc+@@w%UriS7TB`(q}4-IFmnu}PX)c`mFO@kkEJAlI~0Wp26K zOxedGkx{oow`=JG9jd!^KgWWUKtwBmm<-$LkS| zHuP}BekNkz2CY@&f#DJAkvE}4)%zr#`=n##sxz9hiTAaKTf^~mI@t)O5ipuZDD!oA z{ra_JAl472W?k{+ODdh9B|!dk#N6E?-dAF?uYQYF)*0f)!6Y;Y#R-G+z)OW&g=XUZQ}KqNi`~d%GNNmhJV>j z&y-tYnzq%0$4{{w5YCx2^M?=L%(^i1YFd>|!otEJe!F98!RsFzds<^Y{Ev82f&Aey z6tsu!oxC>{zcjG3F&gE)k$_#>uXk(PZMzpdyt_3m;0^Fp5TArNKCe_*$_F)5`X?sr zW!!B={wI?vP4dp2M_P=@JK*)d3RyQ@%5d=6#+97m0V~R&R&H&WEV>{@Rdx4}$je}z z^s+ki1on3shCd+db;nB2N1w}81=?_RH?hmQ{iDlio0y$eH^+W{_sEo@0F2@bYP)Bm zeuPs3e`igJzKY~%*1znpIbiT`Fcqq%bxpfc+IAHx;i&-QI}F`7t|{=vB&Y@bDgbmf z32Q|<8t0sx6sPo$R#{6kfS=zUXRKsB_^!-Bix&<8y7O@Zudh=}Ua<}>-|l^tEQ`vW zkCHR29f}Xk_|0|sw3iAT_Rww`XVuiLFi!fap7QEyHf=ua&|m=B02Fg9|4(36_>2PL zLacAi=<~|PTz!r^WRVdtASO3J?4fzg2L3eg?58YV#JJQc(59vQsnl`c&a59flx!=h3hH>Gt`0wGv67SaeydV` zu>J;$P13uPcW)}2`v_<&s`TUu9fm3x`i2eR^t@Vlb=NdXTSw=2!YihibSDsVlWj?N zU(2VjFx1r;hBD6|9Lv2t(iQ6D9em4nw40rfUoLx$JwJVE`kK+tnI}(~Oxr-T#3~8} z-&vPEydr($Vd2aZJ}o6(>e0#>&XQd6k3Ym~Wfwvd5eqQU(usU~a`mBEE%O@D&dhQo z-qdI$I~@yh^l6EPwX&zL_f3v}eM}RQg}{$Su?F%8&20XG;ugR9FUUcuf++Ix!NI{U zHe)Hxhh0#OJaUC;LWx;{9&Gn__q7N4r&g)dm~aclkT6|xA9(yOgj$J-q(wwY03Rp?CE;31 zqP&JO2hxK~*Rxv7t;g%^bd=g}-Y?Yht8LnQaN|$_#;bYoMM3LPpHiR7iYulsSAgxS zj$2kyMh(MB1HKL@pS3PZSlRulH~H_zUE392sjAhn22c6Mve_D~xQ9C3Y5AFK%MbgV z+*I5f1Xe{P*~B65)2=A>c{`^mxc^swet!MkDEa9>dNPj=;R$GS6+~qwnO1T(EV6=-9HQw$Dd^-{L{Ff8eh5;p$dLvOBeyaJ@EcH=ufZ zuU+f!yZ@8uR2gVms@cWSX*=(M7&Y89pB1l7dg?vaC!L<1U3PwZ4}SnvT0Mp49aFdO zV~yzs@HoM(VW8rG^xiNVVXbudJ3jW?TZlr?4MhVTf6?NrGlr4e`kX{Xsy$a$Q(soi zS*^at-OPj8D}e1M4Ij8e#>ARgjv+Hwil1SvlS-u5=7nhQ6zn8Vl&_+`%C(V-ZgZ*x zFCT0jgs&KRk2ln3bDg%_9&o7oksu~D0d_3!lpe0^upIr~_)B)oSg<0%(@jZJ_TfEP z3}2A`Ibr5bT@qr*`ll;7mxE(Jk2Kks`Cu+Gj{k@$4DI~MLt}pCV0um@2II^vizq&v zzOiQ}%MKw`PAHtyJjOESB-c*+TGTLJwsUxHb|22hio+spx%aiOiH4V@#Px2-f4N*% zDp@<_nfzeT@Oaxi_=Cc_cxtWO*tw@=M*AMJ+dRn2sRRe_*AJxqsuj9dFZ#u~6{6=g zh(cMFAN}x0`1W157Dg*)op>U7lc%P%Rh<@Xv<$NySifb8!Ifvsz^|M1P& zmr(p7y-zH5=kYU}Mk^@JU0F%LEGVF2u&oll>%&*FdeOAP-nfU$X!y_k0vWLbXD2Y@ zym&b!Mbi+ckm^7F22|M}jITqz8F>%Fgt~*N@Xne3GenHM<@0LFMAGQnYm_KW%T~i( z^8RwS8u-WJd*}ku=xtM1 zZqFrOzqsTpHmrCt+tDbKlK=nuZfxTltr+Qu2l(_zKPpmtv3 zXUPWTrc|{XwnDa{e^~I;BIu&MJOpVSSCUf8KmQn#gi1Rom;29g$x14zz-yKA3WFM1 z^^$^K(anqAN|UH@&8|sM>)FIa+YbP@jt_D64*o7b0!#vVSwY#Txko*WwU)wvJlm}{ zw{x@DX+x}gpDgS=h}*gzeT>D`3(6WfxJx=n&>r@mQ%6IZ@Sr%0e9N$%HN#J0MOg#Lh`hBl z-|Tm5DW6#piuK1Q<%s8B5TxvqAnc#mTc0!FiT>5iyP~CkN$?5@fSBKNGkr5NgjDX> z7lwiGqV+ZIet`-@U3_uUqlYOP$|h*-!1Uc%)3<7jj?xP$vr!WdN`0=fbI$_hcSgT% zxi`sLW2f7P)fdlJNXAn(oT_A?8^?jueGCQUsPy4kORIHbOei1nmqwm=xanoLI;{0f8A=pQ-{vd4wH*!AzhbU$PvUv$hpiyfHbSxHx`6 zcjlI;B$osMuVvBv@qD28+Ds{{3H~0>mvFS1G;5-7LyEFZ6Fg$%FJ&`#jNGA2RO4=z zz^}TYw5|R@1GCyhaoqh>HV4Bul^0m$zN{-bduG9cnZ^%4-!27e?yMQcq&*&(Dj5%} z`SVs4)yR7}w1;-qa<R;A-JneJOW=pL7Q6*UjDZKJOO_*xBR4U=MB&0y7T%V~yJ)ZF#_+2xYI=)OBpsfSasZcDEY}0|hY?Cv0%6;>w@8w{%jKQv@ zS`V!q@$}bT_`qIE4{prZZLu*^nt3jtY!53ck#fw0B;yw|r9(A0Uy@4euEBW2Sv(Nm zpK-I;f%EDJZwCe&r3gw5c`Gbhvx0W?R^G7c^-HE8!c#YU$_Hu8*|0cNliOcEHy5YxeKdh>(u@zFVkCHlzd914d^DOEHhchlEN$8s4&2he zcuH#=&AlGcW(_D)D>MQ8Wr2x0UwoB8lY_F}W@bxt%U7hMZcliGBqAO$*&k?7KWY6C zW;S%;=b$LuL{cdv9rq61S`!-u`*S$_nL*hkBgjc-4IEK3ur95tQ`qU-d5ne$1++sF z@Fo9v4ua+4)wGO0Yrd9=c6cS(z%m1D9ZHpAstmfq@jy9o-M3=Jyrfy6*+*^k+2cW@ zZzM9wPHcXCJsy%L4iG#gxpU~5`0%iNbcN83o&52KjQz)=S1BWBWjl}Y2RgCyD}N{3 zp1rX%Nk^)d$>%G791Pmm3>oGRzrkRliI1Huw}{pTd1?;=nCf9#vSQ!bn!f$Tb$E#R~Dw8lL7#6#3496l~#+U^18Ivq%yWE&) z`Q?i#YWd)dper<~V^*bmnxG8h6&8a31+xCI7it=ijToRz|=G!pys8Qvo5Zli;6>doPsRyQ!4w639Bw{DMC`65HwuF9RLVZ6Hv7|(C9i?SYtjm)|{H#}pp|3k73 zi!%WNE+Q7o`=raz3Tv6I`HegFS-OeyY5SrQcd8cmT83xccGkb7J=e}6C3FPl;X4$a z>r*sA`tD$nTEc9eduIF=$*#fZUVMjNJbxJmxp80IdLEY0!Dd-OAn%F>qShRVeV)@} zs6ed*B@utLG+(~yuY-VWjk!7W8*2;FfFNP6@ya7UTz}(R%P(ECh*5?^_4ePoVUfWX zJiLo(-D%S~?K@*1ED}6!mrBCzEylUq*UoT<#YuUlJ`JqtkP3!0U3LJ0vNfPD<>MI+ z&zMQZFu=WlVEr!79*MFWOzr@Y(!=NJ8HzS<+jGA|`ghbIih!We9ur z-?2Z539h`IZ*tCtVbygdr^u?-te>xUi2`OdZUnopw8CH7JWaAtS(ZZDBGp1)dDZ-h zQA>9I*;6{>!;_lsF(iv~&LyZCTQtnLYDb$Y$&nM@)8abjqU!TP5l-64pSWl)FB`NR zs(_a^hW`wCi-GHbwxrkkHJ7TNG-~QK8`pQv+WzxMhb7x~D7&#)D=j(OSblGy($T#` z#YLY-WV9Rq{@1#NFA>=J_M~J7lzAY}Lky{SGWAF-?6SQF#6XdddfQ>3>7c2dx27fh zQf`3%0>4JN8~|D~NpvAeD>yP5V@qr;V2p)AX!Z5OfQVMy9k|aABeb$_MMPlJ!km3q zR04J-0I+S+CJ!~~6SvWi$|`EvMu$ApP?*7`KHb~}_5T9Z16mlK#`#WJEr?50$CW>Z zU{}hYC69fZY8v+I?zfIVFz7LLS%qHkeWG-bCHWGaFLEu)2bwq7Zc(SVMjf=#R^5|t znesG-Ep4wcdSsQpz!CMw-8)qrQsXkx29vHp;%IjE6+43(!XbDmb9HQQN7q8ludt}0 z6?NZ2T6iz*Nb_(!qBMhU^yo--nr^&sm0%Ctl`7TLx~Bt)%S^LZGy)m4m#jW7l{Kn} zxJ@qBsr1TTN*`_R$S1Ej+jPh4w~ zhY7THD~E12H{)wWxBe2V4e@=9rUQV zH1ak6s?10+WcdnvP`>qv!7{SV2yxIxym9|I)X|;Y^SJ4&xk_^kZg*Q6ZjmBR>6z?C zJ}V8k;#Ml97=e^5(WpfY9^TGKtILV}?M(rv{KS1v9;4}fZU$wmmnA%jO#;7G!9-9D zET4Z#ge(e=4ZVrOj0paGmr)t^?uikoAlj!CEw8_6+y15ftNRqJ$`+OunhXSS8QzQi zKt)>xH0Q|fo%w^+M-V*wV&tMcQ4`ZLMN$h7%b%@W-y zG}U}DIjZtiyg{b*K1M%T1KL~!FcHJj{fD^%xWkaHC_Rv@{R-`ywman2;Ah+OI5Ct} zo6JOqv?|EpN>J$oqmP9L&U^CaAXQ9!QpLRmv}TkWJ!JdrU&&FsReoq_><6ttkH7Lu z?ek0H6u-31b&mKUG;;O{;Cw72Jc3{$?&uBe)XRE5K|9L6O|5A$RC?-BwHw+gA1qWQ z@?~M?>%;uVv&p}X7HB>Ov}ljH>}H_Fa#7~asCT9NA2`43_nit3{4+KX$j&qIUWL)J zNmfOK5s$M`YX(j!6Zou}l4HVrN-Fk0p}A{bpsL|l1LNw2^KLoh+XS~7cEP70)-`8s z{ZqNHf+b>VjKTE~Wn20!)~Qt8`s z&rc3#?LPBelWo-`xSqs9CmA6wsohYcxr4hiD*8I~B#Zg8z|mynTWQpHcu>w*jDOg= zms?re*s~sqn`YUSTS#f+Kq}gN!AO4`lY9f;$aRgJ@RWWo#H(R$d!hvR08p$*JuFKa zupteqD|T5~*8&V8!qFiPrZPlnuL6aQH(l`BkjHhh)^CeFGXE%a9%SlURoNn%pXtt- zCC*-CUcRHNqY?gE(bZ^6M^Fy^PL|ouFZDA{1#;*|DGAVew|U`}a#vOR^|X=35)`xB zjX$(2@ZLyUKQ19;QYvC4Z}`2mM$N**Hs^*T#?QSgHX0?b^TV%;n#YHIy3ExAu-~nq z&0UDX9S<2YKa^gZ6|W$MjF~0xm4d{8CH7t`lN!&xt3%%BrIwYb_tFnET72kZ!h+A) z9HkR^+TD&n9qu(L%WU6ZHv6PDK#x~_IynTqyCRp(_$&orJaer4P&^yWs~Q@e=hWu- zb_r}_$*tIW`w?gRaf@5SUEB6IO8UW>P$i3BoHFATl?ryp0s+fy>_BpZe4*gOuH;^Y zf<0%SR%GQm$s~lfRpXJ@>}&|kuvO}}_Cn2mbF6K32gC087w_&{4RKL6-Vq}NpV zS64{%a%MA9_L%3Wa>z?Ks5F1L!#mSonPsg!aErF(TQpi*r(6!L zREd6EnHmjdYG7{-C01@XGRGwj*rsuKLRSJ-{^L6S@S=I!wN9AQsFA>7zy0ngXTx^G zH=DK}uSFk`?YEt&#orvJ_d4peMG|dxay+zbtM;bP;lA85C+G=${E}rZFtx32YnD6Z znB01cJ^k#$t!5FQ%Jb+;K&|pt$$|82dZBVutL5c(9$ts6-bM5y7h)zRxYtl9ASL8u zPy~a1*6=k^7&gwswx}CJmt_$}zvOLFoQ0*=M|OLbI8$zc$WVyh`E#kZKkp4$RRNXg z@+Yav(xok!*;3C2mBZrbAJ{$sdi;Ci`|l|fgOKJ%yQC6XbnWDhyeBqHrkk}!fLbgz!$F`j1w}bp%h`doF1b*KdtFMsO~YQc z^!y*o)b#D*8Hg{9KdZOJB?qAE_F%T;YW+w&X;!~bCYsj~LA*2Be{;n!JT#E{K~^FO z2UjcNJG)Nfy|D)cA~mLtkElNZb^6*Zi9A|;XZ?Y?hyAiJyJDB&4;9?@AFGV!C_N0R z@xaN*pmqTC{htkPlLnJYI^3pqtCnp8qjw(uL@y|Mc*Wy=97|hM{iK93Ni~E#_vP0-)T!U!c*;@$M^ObD!#(_^i4&uB=00dRraXLTwe$^xstW zD~LG9p675Px&LwZI*=Udmtr!g0)uc$B2C{55?L?3ORg7kf$4W&Zsk2= z7VDZXOHPKX+Et{wz|0D53n+1|B7sgE96xgPCQjZBXf)!ETHqrLwaW!IFX&aviq37A zr=PpJ=sr;Hz&WlwhsT-PVKJ8xnMqd&XMp22kN&oFE;X`-u2eJJW~o)@!Pd(~>=3tr~(_#ATRr_qG)=&lM!hwss>s@S z1DmvrW#x5cU|yxcC`%yoI+t}?Zs9vF2|jsbGJUX1+bI%1c(YRNKkxcUmHj2}9RgQg z`Pyb4;E?YIqp=in{pZygrE#3I*?5oBcq7%D_$X0%>bUQH2iD7i^7Ue{%Ab{;e{bhBddl%o4rFU*0mIE?H+pNvZoE*esB~ z>Vxt$*7!;2Zex(U&rJ*XXY;eQUiA+X{?iCH3;UC*-&fyRfV0P~R$DopKB=|z*9OeN zEIUJG(Vbgy79#=@^9Ob?8vo+&(n{)sO)tZ)3o#HWI`R z(r|q=zDJFb@uJ@*IIQ`JZT5$JLHJc@`)bvxl^ZkgOndSH*Ol4;Oei}cV|j#U%6ng| zT&>!@KsU*j*GO=;K_=H*bJZL^oLQI&c7B=$!obhN6gMtW!`~mcr`yY?HQAzwArhPf z3+rVC%Hk}KS45sEb7xBtRB~NF2^`z&HBs_5`=d*+gh}N$dSKHU?5Ee7{n*ksNxrHq z``t4ZVyUB@`Nc63Izh8cfg2^|lX~Y~A5|3_jl~)Ffvx+5qQ~n3QcRY^`OnE%6@H&r zdnNVt%9v84(K2KZ%tq1J#Fmwo2~6Hk>zdta+2XkGpXK7W3YW9?Z;ojd7gIAKF3q+Tmgle@1Oq!!e{Q^H z-%#}vY)c^01HJ+*INXl!y56tuiJ5*xD>z`5YOV;EPUySm(mv_&k|z_$mBt3)HSw^! z9r=YmwZWf?cwvuBDm0(PKk4|=<>>CuR-CNV_GIabM%#ptrS=Lq1i-g&e#DEg{eHLR zPRW;q>hN7FS*PK}x(n)Xq7Ag%zf0NzE>vSil~At&VUAHEBb$?u@64>Cy+s9(0C#lj z=voXHj?^SQzET?57IfE5*wG7+IpiTB5#(vzWP-e7YHmuie9CDZJVg6QX2aTl`<(c3 z)yNfg2pvhV938)hx1Hh0X|>2fcY4N3Z*1}=Zrgq+*$zc#SbZP05_N~1Iw$iaXv{}T z&YF70K=2~PXdHm;NMD8ur|8gp`u{l4S}+mJ{7`TQJ8H_AgY@y>5}FOkS)Q75|M*1I zp%kc>cJX{rr~X^kLHUPVeMw`5+3j2Ld=al{MnDFrZq5T8xUCm{s*o|7b|?YtXq(L{ zR?__ZA#6otjbcRSL&(WSRp^Qf@ProDXTO)9rJ~<-Y=gzQwmY$tYv<6>C33Q*o*S^G zSBjjwtn@QdH565IJ z!8JkMKZ=Z;f4oFTCj-9zFb z7rdQ%F!l2Euh&G0lQ*VSsRwZq{VYc*ng7{fvg71ez2zdN?o$p;L>pQL>(;7{h{a*a zR5d8QN*~o}y2eo?s|meY5ER2V^d;@`ZI_Y|ji`e>DPiR6thJg_lSKc5&TxNo*!8Y~ z+bMJ_S+!z#5-T}lre)J8K_A;PBxq6bv=Xd+r&7f>KuW(|y3puBA>@PU*|x{q8oawy z{8xFPVp|Vi6Mg?D;5>B~8SVBB#%zD3SgD8I$ZQo8Guv&Om(0%bHvHKUqyqgkxN}Aj zI^*H%jR;NI$A6ik`1~!XmSTvy&sjf6GJ4RfN!Jex5|#%^}pDN z-tr!1D~Mj&c;U1%xXbmq#`i<4Zm2Q;cwZ?2^4HGQ?z=)dy<7E8^&XmYHQWIYJlFzq z2l9%?;5l%5NK`(1N4C;-LZ4!RtL2K%o;G*==Z=*hSmpYw%;IGW`lZQ?EcGw+J~Mc` z`+8h7dcO2RmnK*lyPXp=1~O9$WVjd+>)W!UlFjQeoC=gwoeO^aB8O(!s>$yzK9yRr zB#Hb=W}lPq_`RPU06^5~QNEL#j{r0s5x~$%u$}-iW60RSHywz)Wo2 z6aC`?nWn8%sI>n2c3)y#_781!kU8HS@E!vD{7A_lW*V6py)gnkJ9$Obr(?HFq;4oDk~ok?gt}AS#Ovn zw>T_Q>U%$SftVFa$Mpx^^?KCQ{}}utC{;SNE6xM{g~Zwk$W2+S2-Uo~TDGwGD>TpO zr}>l76+bkcniJ}Q9h0NTU%zA8@GUR((7uIi8>!Kx`l*{u)mf~xZg5^Z%|A#xZXl-Y|!xN`0%#7~VvTLN>pm0_6`Z7STNJe4<#PooF zzOiG%pAR9=60utGzsAsCcdFIQp!bn#4u%jhB;(rLnDZa18`sdHZKCqa-MU#VzdLSxm+%@HL-O@gtu~`_5T>=1^DW2M3rlP|!D;-aBh@a{Azgr~#4Iw*pfqp5h&OQK_!8#p85D z`tY4gmV}F^J{|woycH13M!+|h?l|F=IeOGoJFxI}QLH{)IWQ@IhjCDNjwUYu?W^iM zj8$c{QYEGO?tGb&Zfn1Wpz}AblXM+O-HQ+m$MdmuT^fBdZ`=E4T6=pvL!j>?O<|gB zcj>)&M~~>}iNgbz-Oq>`QNoHGW$Q`ayu(;al9E=SOWl>XUcI35?%456)5#ZzrsD2( zgnPFewki*~&pc8H6tLl4<5mFY?IkDv(JNoR34lnO+?6#1+>C7Df@F_64V_n+}fcVc{7|8v!$zX8d+V$(?4M%a6G;siq`L6`hb^zm} zq3hQMOyCyfh99nrB*{s6%>2AOd!xhf{{2yxYizQK|NY@Sw;}u2xOeaVpzc6()-KNG z=H~X88z})IFGdap(qvCVHak1J%M~YQ0oRMHay;(|deeHfFIN81U0$M2kCy<%Cj5ZlFqVT0#=(1d9c_L@CMf$&RL+FC`~4n7X|E1^H8Qfh~dgx zfBx*LKiqdgZuDx%yH32+OO~H?GHi%;tzKF?AQpS@!z)hOr5!2a02e|#JpWU|U1|oi zSee&qxQ;2h2 zx<%?2;Z6MVXh5SZ5IG%>I3Oj3Q75;bfm>I3_U`ShOZlul_fwRV9Jol*k%gR-;J$Jt zqbpef))2(#yWS~-ul4ixBfWfg1N~mVtLMk0QWE>Y`Myztyf=$0UjZuQt#00eEJSZ+ z^^9(y`2EIP$?V6!azYk%>IyD6B!m*o2JVp>w91@ri4>NR85C`uYwwU~kKk6y7cQzX z606(J=u$cK2Xgv$qCJHz*$#v$bk}(^0n^eaXv{xP)4jjOR>~S0^Jou5=|KJk+IJ;z zgut_Z5C`&%SvfgjX8SiJ?8BU^snXR*9ILSDLbCT*FUh4IeYiKT;=48KjTp4{7F1Rq z!x$0k0|R;a_=IF-hlc-sZ3cn(icV=`JI_rro;*~XSw~-1utwlP#8OBkAm;Y0$kM>z zNqM{dDJkO;>P+irT9tj`2hplWep}0UVBj1$2{%j^t_FrMqH$}?Bw;OBVB}i_0-ebX|HC(>et0XJ zJ3)Ex0p#tZlgz|@SY6H5WcB`c{ms6xv+isGrA0Y(uiA|O&e8d?oNoD&ElYRBZoiLRB^Ti{FE0E8YC7{i9u`(Pfug&M-p~Ix9Zr;vVSD?sy3bjFCdW3#5mnA1l`)& zKIv|HrO}~vViAFQJIV3327Q$NwabSQ^_yjKLdYcZE84C-7CMMYwl?aFhLTF`K3G3P z-^vbMV6*X0w{3|Seg)ubMF3MccSl5|M3r;#NkmD~VnW-n?}fOXJRDbzL1W>1 zfp9J67*2g+fI*6hq^O-4{|#-JsorJM)KLXUe06lYYvb7E0F>@~{ArktXkN49xo+u6 zD|n$?`}Gws5rJ5-@f$@@XjN@7NZbC)x+Ny*3H^9x)f8*W@Mbau{zmEt5Ave^Vl=#^^BQfDl0_pbUl9mj&`%_vD__UE+QDU zqSGqXKWD*CMa%K_RM{Ag_C2?QyDWnc4=Q4OH~;C!BZ6xy_=Ll zl8SCCE_H8)pA1MimXTO&OM8(D*mf8a3fv}Om-I4cxN*aLZ;UAOTVJH>f1eQ zWs3&bi8j_HYmiYC?Ase&r3haKrHSj2ec(5qTdU02X=LP>;{Mu&Mk`W`D|Uabc7>Zm zdPHJjE$$rHZMylVkoPq$U)~|e&Mtpsi zc_Z*}E6~dl(2A0DBSb5W;oz3mepIY4VC@HvOmQ86=N^WnVz)rj#tm)Os9ro_7}!;{ z;jx`uilAbS8R9(lxyHM5iW6md*K6_1#RG%iv9PS(E_r=$ku*4&Bf3dG=WME0(_pWv z&9>=nsoDt9E(Zg`xtL^AJ)F9p53 zT)ncisk2Snsz0>u?d@e^WGvpY&5uklf&;cWnYJ?SQZ&dvr-j7&dAn^6lw9Z=)d!=H zVt<>~{kXoW)We@$zqvynivPVXA&K+en;bDt5*N7uaQL`ZE8qT?$#IX%aQbU! zkbQw!5usmS1+6VsYhniWLB-xN&j5B}URv5W^LBh)VxBXUASNVK@^3fq!Lit zY}CS!?VDRN3We6;UM$^%Z! z26Lll)6L;tQpWw74dVy2a-;i+eyPj0$KM5n^fY6D4LYCdokFtvKq12+!*Rno!!o}IGvEOgJWss* z+qWwAyLll90ICn&x4i$I5nvn!3Jf0~$@fO506&fRH1W5iX4t7!9uJUc#84-M)PJ+% z?u{BvL$gwJ9@+a|M7Q2MVv_>b%au34N&fqnPFVei3-W)K*pzi7TbYymONc@c(URG7 z_yX`n{2_Yp8;pZ@9jF|&)l1_-LPG9yr*iX@|Jldh+_!}sQB(olFnG#19(E0eC;#x>h!Ig1w6LvPFlpje4I4rUwfD_fn4);N7`el9~Za_UFvt#1LI{h zQUglHV2|sUZO<|=6u8tMkX^@oh&7I%^-?ijn4FVadWIv#vk3{3W_iLA_`O5t-bj)i zxe-oJmQs8eLHMC?Yh#$1F=0KDwavjNTzzCfTf+>~KiDNycPoV7q3z4bsDP?RWB2wrlOpV zdHhhNCm+wrdMK)adv(#?g@U53v6b6!w9<=o(O=~y|4iH;mHA6Uo7=C+qC5V#H928o z7~X*ESIYr;R%Q7*l+JZ}+AZOsquJpSEvyyDjY$r~O0TL)?fyk6s7d%Yk&JK)o{mpu z<|$Z9tSWp!v@ag>9@`Bg+jf6Q$o##Qa^G_V16sh3-)yRsw~JCTc`j5No-V5Fil1I9 z3KZ?r0CWx_wMFr8@31`giR;7Z;nAPbOo>(=&qcwRT-HT>clqCaxDoK-+=B6boaDco z8k=j+OVYDE8d5h=*=%<=lA51ccYuA7PAH;3V)I_XC@gbi@`ZCMXhUy31WtBCG2u-z zGYP-{iap_A=DZneFFUgk7vYGg0$g}Q;FQnJHRw!`^2pA*9TMpQ7haB#@;qrm) zKsB|{rpVcFbhBS!*?o@iu#UFl$Uo-kbr)F{y*6}BSE`X&E)*%AUXk@5H(rX*I1KgKr7%^C;?YFw!Hde7dQ#&II|5X zd+i4d(kC=_#tK7ULZByKwa1jc(2A#=&P_=j9nyDE`eiJ#H%+bba0rtCxF>)$^DsM- zyVk0@ihjixp19Ce9hlu^UA3^@EwhkZ9tE&`o{Pc8GJ==6C_=qJ1nM1kKuTdrBmWN{ zq;$H(c^*a_`cCfat?r@`M(L99u|Ra{fr94os+pkw1ftMm#`dtS)brO^!06=v)Jyhk zAK6NV8l2OSf*HL$_8z53Q=@ zd&>(pR`IDS2;1{*nT@>q%XoM9UP|ei-1h)~YcJe+`BMRvBGF`dyXQY`4|~z1>~iWpN^(;uPaVe|jjOTZc>|mP02y1l_6@ z%Dku@gorRF)?}}Jt$*s7X*_b6oa?CJ{(GB0gakJcP2MaeIVEN~Mjcz+%Lw zGp(jcYyxWuni#jEhdb_fWPL~M6N?%e9@Osa`Xh^dK4~X`sz%YS=^0P0(LJ4^(E7t6r7@{E`QU3XK0G9Ich^p8MO8oLX)$Nm=o>n`DIL4$a6yRs!S&w+a81o zItbpp*q^hx^Hv{AFR%tA4>r|I9xCilw<>Hn?BSt=viII?_7~*nEU->8oQU;EHLo4o z;cE2U{I*PX1;dIqEzd~d#ayb@U398JY{}zYV73@36Bd4*o_9k6!2n2cRX#3Dug27n zOj#o=2`T-*D#R&qB>Giu7{1IGO`}p4hoxcje zHxp=*xTxTjWl)Wqg*L5q3d!1Ybh$hBDn5#9vC91tkc=->Ggf%GzHhT`pDvG6(GRJk z>!}6jn3#C>5q+!~N%lhcQJ)4jK@LdgdwP>1%6Y`RFR!6XL@QZIy%%#~kK+HCufE1= z(dLB{22Qh+ZKe)^Cfg6g}aq0>8pN`;oTAWUBb9+`_IW5A&@S@_XYx4d{476VR@G%

    d@#&H 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 Date: Tue, 22 Jul 2025 17:16:00 +0200 Subject: [PATCH 7/8] docs/release: Added release workflow documentation. Signed-off-by: jaenrig-ifx --- docs/release/description.rst | 38 ++++++ docs/release/getting-started.rst | 204 +++++++++++++++++++++++++++++++ docs/release/index.rst | 19 ++- 3 files changed, 249 insertions(+), 12 deletions(-) create mode 100644 docs/release/description.rst create mode 100644 docs/release/getting-started.rst diff --git a/docs/release/description.rst b/docs/release/description.rst new file mode 100644 index 0000000..9cf5c21 --- /dev/null +++ b/docs/release/description.rst @@ -0,0 +1,38 @@ +Description +------------ + +The ``release`` workflow provides an automated and standardized way to create releases for Arduino cores and libraries. +It is designed to be used in CI/CD pipelines, enabling seamless integration with GitHub Actions to automate the entire release process. + +.. image:: ../img/release-wflow-success.png + :alt: Release workflow run success + :width: 60% + :align: center + +| + +The workflow integrates with the :doc:`arduino-release.py <../scripts/arduino-release>` script to handle semantic versioning, changelog generation, and GitHub release creation. +It supports both Arduino cores and libraries, automatically detecting the asset type and applying the appropriate release procedures. + +The workflow is designed as a reusable GitHub Action that can be called from other repositories, providing a consistent release process across multiple Arduino assets. + +Implementation details +^^^^^^^^^^^^^^^^^^^^^^ + +From a high level, the GitHub Action workflow implements the following functionality: + +#. **Validate inputs** and determine the asset type (core or library). +#. **Setup the environment** with required tools and dependencies using the provided setup script. +#. **Execute the release process** using the arduino-release.py script with the specified version. +#. **Create a GitHub release** with automatically generated changelog and release notes. +#. **Upload release assets** including packaged cores or library archives. + +The workflow supports: + +- **Semantic versioning** with automatic version validation +- **Changelog generation** from commit history and pull request information +- **Multi-platform compatibility** for different operating systems +- **Flexible setup scripts** to accommodate different project requirements +- **Automatic asset packaging** for both cores and libraries + +Please explore the `release.yml `_ file to find out more about the implementation details of the reusable workflow. diff --git a/docs/release/getting-started.rst b/docs/release/getting-started.rst new file mode 100644 index 0000000..42de619 --- /dev/null +++ b/docs/release/getting-started.rst @@ -0,0 +1,204 @@ +.. _release_getting_started: + +Getting started +---------------- + +This section will guide you through the steps to setup the release workflow in your Arduino asset repository. + +Prerequisites +^^^^^^^^^^^^^^ + +Before you start, make sure you satisfy the following prerequisites: + +- Your Arduino asset (library or core) is hosted in a GitHub repository. +- GitHub Actions is enabled in your repository. Check the `GitHub docs `_ to learn how to enable it. +- You have appropriate permissions to create releases in your repository. +- If your asset is an Arduino core, ensure it's properly configured for packaging with the :doc:`arduino-packager.py <../scripts/arduino-packager>` tool. + +Setting up the reusable workflow +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In your locally cloned repository, follow these steps: + +0. Create a new branch, for example ``devops/release-workflow``. + + .. note:: + This is not strictly necessary, but recommended to avoid pushing changes directly to the main branch. + +1. Create a new file in the ``.github/workflows`` directory, for example ``release.yml``. + +2. Add the following content to the file: + + .. code:: yaml + + name: Release + + on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+**' + workflow_dispatch: + inputs: + version: + description: 'Release version' + required: true + default: '' + type: choice + options: + - patch + - minor + - major + + jobs: + arduino-devops: + uses: Infineon/arduino-devops/.github/workflows/release.yml@latest + with: + version: ${{ inputs.version }} + secrets: inherit + + .. important:: + Notice the ``@latest`` at the end of the ``uses`` line. This will use the latest version of the reusable workflow. + This is particularly useful to automatically get the latest updates in the reusable workflow. + Keep in mind that this may introduce breaking changes in case of major version updates. + You can also specify a specific version, for example ``@0.4.0``, or a branch, for example ``@main``. + +3. Commit your changes and push the branch to the remote. + +Additional workflow options +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The GitHub Action reusable workflow provides some additional options often used in the release process: + +- ``setup-script`` + Add a setup script that will be executed before building the release asset. + For example: + + .. code:: yaml + + jobs: + compile-examples: + uses: Infineon/arduino-devops/.github/workflows/compile-examples.yml@latest + with: + setup-script: bash scripts/before-core-build-setup.sh + +- ``release-ssh-key`` + This is used to provide a secret SSH key from the repository secrets to the workflow. + + For example: + + .. code:: yaml + + jobs: + arduino-devops: + uses: Infineon/arduino-devops/.github/workflows/release.yml@latest + with: + version: ${{ inputs.version }} + secrets: + release-ssh-key: ${{ secrets.release_wflow_key }} + + This is required for Arduino libraries when using protection rules that prevent direct + commit to the default branch. + + As the workflow creates new commits and pushes them to the remote repository, the new + commits will be rejected. + + To avoid this, you can use the SSH key to push the changes to the remote repository. + + Follow the steps to allow GitHub Actions to push changes directly to the default (protected) branch: + + 1. Add a new `deploy key `_ to your repository with write access. + This is available in the repository settings under "Deploy keys". + 2. `Add the private key to your repository secrets `_ with the name ``release_wflow_key``. + 3. If you have any protection rules that prevent direct commits to the default branch, + `enable the bypass option `_ for deploy keys. + + More information about this approach in this `GitHub discussion `_. + +Creating a release +^^^^^^^^^^^^^^^^^^ + +Once the workflow is set up, you can create releases in different ways: + +Release via GitHub actions +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Navigate to the ``Actions`` tab of your repository in GitHub. +2. Select the ``Release`` workflow from the list. + + .. image:: ../img/release-from-ga-wflow.png + :alt: Release workflow selection + :width: 60% + :align: center + + | + +3. Click ``Run workflow`` and select the default branch (usually ``main`` or ``master``) and the version increment: major, minor, or patch. + + .. image:: ../img/release-from-ga-select-version.png + :alt: Release workflow select version + :width: 50% + :align: center + + | + +4. The workflow will automatically: + + - Validate the version format + - Generate a changelog + - Create a GitHub release + - Upload release assets + +5. Once the workflow completes, you will see all the release steps passing, and the new release will be available in the ``Releases`` section of your repository. + +Release via GitHub release section +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +1. Navigate to the ``Releases`` section of your repository. + + .. image:: ../img/release-from-release-new-release.png + :alt: Release from release section + :width: 80% + :align: center + + | + +2. Click on the ``Draft a new release`` button. + + .. image:: ../img/release-from-release-tag.png + :alt: Set new tag manually + :width: 60% + :align: center + + | + +3. Fill in the release tag (e.g., ``0.9.0``), and click on ``Create new tag: 0.9.0``. + + .. warning:: + You are going to set the tag manually. It should be a valid semantic version (semver) format, with a valid increment. + +4. This will trigger the release workflow, and it will automatically: + + - Validate the version format + - Generate a changelog + - Create a GitHub release + - Upload release assets + +5. Once the workflow completes, the new release will be updated with the corresponding title, changelog and assets. + +Release from local push +~~~~~~~~~~~~~~~~~~~~~~~ + +In your local repository, use the ``arduino-script.py`` to create a new release. Assuming that you are in the root path of your repository, and that the script is located in the ``arduino-devops`` directory: + + .. code:: bash + + python arduino-devops/arduino-script.py new + +This will automatically modify the required files, create a new tag, and push the changes to the remote repository. +The release workflow will be triggered, verifying the version and creating the release. +Check the ``release`` section of your repository to see the new release. + + .. warning:: + In case of an Arduino library, make sure that you have the necessary permissions to push modifications directly to the default (usually ``main`` or ``master``) branch of the repository. + The script will not only create a tag, but also update the `library.properties` file with the new version and push the changes to the remote repository. + The remote will reject the push if you do not have the right permissions. diff --git a/docs/release/index.rst b/docs/release/index.rst index daca443..406a06d 100644 --- a/docs/release/index.rst +++ b/docs/release/index.rst @@ -1,16 +1,11 @@ Release -======= +------- -Description ------------ +This section contains documentation for the release workflow and related scripts. -.. _release_getting_started: +.. toctree:: + :maxdepth: 2 -Getting started ----------------- - -Usage ------ - -Asset creation --------------- + description + getting-started + From 2e4e65507c5bd155e2e83152712eed7470df7ec2 Mon Sep 17 00:00:00 2001 From: jaenrig-ifx Date: Tue, 22 Jul 2025 17:32:39 +0200 Subject: [PATCH 8/8] README.md: Added links to readthedocs. Signed-off-by: jaenrig-ifx --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6c65100..6bddb81 100644 --- a/README.md +++ b/README.md @@ -27,12 +27,12 @@ Please, [let us know](https://github.com/Infineon/arduino-devops/issues) if you You can get started by enabling the following workflows for your Arduino assets: -* [Enable *compile-examples* build check for Arduino assets](tutorial) -* [Enable *release* management for Arduino assets](tutorial-release) +* [Enable *compile-examples* build check for Arduino assets](https://ifx-arduino-devops.readthedocs.io/en/latest/compile-examples/getting-started.html) +* [Enable *release* management for Arduino assets](https://ifx-arduino-devops.readthedocs.io/en/latest/release/getting-started.html) ## More information -Find the complete information in the repo [docs](docs/). +Find the complete information in the repo [docs](https://ifx-arduino-devops.readthedocs.io/en/latest). ## Contributing