Skip to content

Conversation

@sensei-hacker
Copy link
Member

@sensei-hacker sensei-hacker commented Nov 30, 2025

User description

Adds comprehensive documentation for creating INAV releases, covering:

  • Version numbering and where versions are set
  • Pre-release checklist
  • SITL binary updates
  • Tagging both repositories
  • Changelog generation
  • Downloading artifacts from nightly builds and CI
  • Creating and managing GitHub releases
  • Asset naming conventions
  • Maintenance branch workflow
  • Hotfix releases
  • Post-release tasks

PR Type

Documentation


Description

  • Adds comprehensive release creation guide for INAV firmware and configurator

  • Covers version numbering, pre-release checklist, and SITL binary updates

  • Documents tagging workflow, changelog generation, and artifact management

  • Includes GitHub release creation, asset naming conventions, and hotfix procedures


Diagram Walkthrough

flowchart LR
  A["Release Readiness"] --> B["Update SITL Binaries"]
  B --> C["Create Tags"]
  C --> D["Generate Changelog"]
  D --> E["Download Artifacts"]
  E --> F["Create Draft Releases"]
  F --> G["Publish Releases"]
  G --> H["Post-Release Tasks"]
Loading

File Walkthrough

Relevant files
Documentation
release-create.md
Complete INAV release creation process documentation         

docs/development/release-create.md

  • New comprehensive guide for creating INAV firmware and configurator
    releases
  • Includes version numbering scheme and locations in CMakeLists.txt and
    package.json
  • Provides pre-release checklist covering code readiness and
    documentation requirements
  • Documents complete release workflow with step-by-step instructions for
    SITL binary updates, tagging, changelog generation, artifact
    downloads, and GitHub release creation
  • Covers asset naming conventions, maintenance branch strategy, hotfix
    procedures, and post-release tasks
  • Includes bash commands and scripts for automating parts of the release
    process
+333/-0 

@github-actions
Copy link

Branch Targeting Suggestion

You've targeted the master branch with this PR. Please consider if a version branch might be more appropriate:

  • maintenance-9.x - If your change is backward-compatible and won't create compatibility issues between INAV firmware and Configurator 9.x versions. This will allow your PR to be included in the next 9.x release.

  • maintenance-10.x - If your change introduces compatibility requirements between firmware and configurator that would break 9.x compatibility. This is for PRs which will be included in INAV 10.x

If master is the correct target for this change, no action is needed.


This is an automated suggestion to help route contributions to the appropriate branch.

@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Nov 30, 2025

You are nearing your monthly Qodo Merge usage quota. For more information, please visit here.

PR Compliance Guide 🔍

All compliance sections have been disabled in the configurations.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

High-level Suggestion

The new documentation outlines a complex manual release process. This process should be automated, for example via a GitHub Actions workflow, to improve reliability and reduce human error, using the new document as a blueprint. [High-level, importance: 9]

Solution Walkthrough:

Before:

# Manual process from docs/development/release-create.md

# 1. Manually update SITL binaries
curl -L -o /tmp/sitl-resources.zip ...
unzip ...
cp ...
git commit -m "Update SITL binaries for <version>"

# 2. Manually create tags in two repos
cd inav && git tag <version> && git push origin <version>
cd inav-configurator && git tag <version> && git push origin <version>

# 3. Manually generate changelog
gh pr list --state merged ...

# 4. Manually download, rename, and upload artifacts
gh release download <nightly-tag> ...
# ... manual renaming script ...
gh release create <version> --draft ...
gh release upload <version> *.hex

After:

# .github/workflows/create-release.yml
name: Create Release
on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Release version (e.g., 8.0.0)'
        required: true
jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run Release Automation Script
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          VERSION: ${{ github.inputs.version }}
        run: |
          ./scripts/release.sh $VERSION
          # This script would perform all steps:
          # - Update SITL binaries
          # - Tag both repositories
          # - Generate changelog
          # - Download, rename, and prepare artifacts
          # - Create draft releases on GitHub with all assets

sensei-hacker and others added 3 commits December 6, 2025 13:01
Co-authored-by: qodo-code-review[bot] <151058649+qodo-code-review[bot]@users.noreply.github.com>
Co-authored-by: qodo-code-review[bot] <151058649+qodo-code-review[bot]@users.noreply.github.com>
Co-authored-by: qodo-code-review[bot] <151058649+qodo-code-review[bot]@users.noreply.github.com>
@sensei-hacker sensei-hacker changed the base branch from master to maintenance-9.x December 6, 2025 19:02
@sensei-hacker sensei-hacker merged commit 4f56b90 into iNavFlight:maintenance-9.x Dec 6, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant