Skip to content

Conversation

Copy link

Copilot AI commented Jan 15, 2026

Nightly Build VERSION Automation - COMPLETE ✓

Implementation Summary

Automatic VERSION setting for nightly builds using PlatformIO script pattern (following set_version.py).

Changes Made:

  • Created pio-scripts/set_nightly_version.py

    • Uses env.Append(BUILD_FLAGS=[...]) pattern from existing set_version.py
    • Calculates VERSION as yymmddb format with build number 0 (nightly)
    • Only activates when WLED_NIGHTLY_BUILD=true environment variable is set
    • Uses timezone-aware datetime (UTC) for consistency
    • Updated: Now uses -DWLED_BUILD_VERSION define (matches wled.h)
  • Modified platformio.ini

    • Added pre:pio-scripts/set_nightly_version.py to extra_scripts list
  • Modified .github/workflows/build.yml

    • Added nightly_build boolean input (optional, default: false)
    • Sets WLED_NIGHTLY_BUILD environment variable for PlatformIO script
  • Modified .github/workflows/nightly.yml

    • Passes nightly_build: true to build workflow
    • Simplified (VERSION calculation moved to Python script)
    • Fixed: Changed exclude-labels to excludeLabels for changelog generator
    • Updated: Upgraded changelog generator from v2.3 to v2.4 (fixes set-output deprecation)
    • Updated: Changed release title from "Nightly Release" to "Nightly mdev Build"
  • Modified .github/workflows/release.yml

    • Fixed: Changed exclude-labels to excludeLabels for changelog generator
    • Updated: Upgraded changelog generator from v2.3 to v2.4 (fixes set-output deprecation)
  • wled.h changes (by @softhack007)

    • Changed override mechanism to use WLED_BUILD_VERSION define
    • Avoids potential name clashes with used libraries

Verification Complete:

  • YAML syntax validated for all workflow files
  • Python script follows set_version.py pattern (new requirement)
  • VERSION last digit is 0 for nightly builds (new requirement)
  • VERSION format correct: yymmddb (e.g., 2601150)
  • Nightly builds automatically set VERSION to build date
  • Other workflows (CI, release) use default VERSION from wled.h
  • Uses UTC time for consistency across time zones
  • Uses WLED_BUILD_VERSION define (updated)
  • Changelog generator parameter fixed (excludeLabels)
  • Changelog generator updated to v2.4 (eliminates set-output deprecation warning)
  • Nightly release title updated to "Nightly mdev Build"

How It Works:

Nightly builds: nightly.yml → build.yml (nightly_build=true) → WLED_NIGHTLY_BUILD=true → set_nightly_version.py sets WLED_BUILD_VERSION → compiler uses calculated VERSION

Other builds: wled-ci.yml/release.yml → build.yml (nightly_build=false) → WLED_NIGHTLY_BUILD=false → set_nightly_version.py does nothing → compiler uses default VERSION from wled.h

Original prompt

Please improve the gihub CI nightly build script to automaticially set the build VERSION (see wled.h, line 11) to the nighly build date. Other action builds (push, commit, release, etc) should not set the version, only the nightly build.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Summary by CodeRabbit

  • Chores
    • Added CI input to opt into nightly builds and propagated it through the build pipeline.
    • Introduced a pre-build step that generates UTC date–based version codes for nightlies and the build now honors that nightly version when enabled.
    • Normalized changelog option naming and updated changelog action versions.
    • Adjusted nightly release job naming.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

📝 Walkthrough

Walkthrough

Adds an opt-in nightly build flow: a workflow input toggles WLED_NIGHTLY_BUILD, the build workflow passes that env var, PlatformIO runs a pre-build script to set a UTC-based WLED_BUILD_VERSION, source uses that macro to override VERSION; minor workflow changelog action/input name updates included.

Changes

Cohort / File(s) Change Summary
GitHub Actions: build workflow
\.github/workflows/build.yml
Adds nightly_build workflow_call input and maps it to the build step environment as WLED_NIGHTLY_BUILD ('true'/'false').
GitHub Actions: invokers & changelog
\.github/workflows/nightly.yml, \.github/workflows/release.yml
nightly.yml now passes nightly_build when invoking the build workflow; both workflows bump changelog action from v2.3v2.4 and rename exclude-labelsexcludeLabels.
PlatformIO config
platformio.ini
Adds pre:pio-scripts/set_nightly_version.py to extra_scripts so the script runs before builds.
Build script
pio-scripts/set_nightly_version.py
New pre-build script: checks WLED_NIGHTLY_BUILD=="true", computes UTC yymmdd0 version, and appends -DWLED_BUILD_VERSION=<value> to BUILD_FLAGS.
Source header
wled00/wled.h
Prefer WLED_BUILD_VERSION for VERSION when defined; otherwise keep the default 2601151.

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions
    participant BuildWF as Build Workflow
    participant PIO as PlatformIO
    participant Script as set_nightly_version.py
    participant Compiler as Compiler
    participant Header as wled.h

    GH->>BuildWF: Trigger (with nightly_build input)
    BuildWF->>PIO: Start build (env WLED_NIGHTLY_BUILD='true'/'false')
    PIO->>Script: Run pre-build script
    Script->>Script: Check WLED_NIGHTLY_BUILD
    alt nightly_build == true
        Script->>Script: Generate UTC yymmdd0 version
        Script->>PIO: Append -DWLED_BUILD_VERSION=<version> to BUILD_FLAGS
    end
    PIO->>Compiler: Compile with BUILD_FLAGS
    Compiler->>Header: wled.h uses WLED_BUILD_VERSION for VERSION if defined
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐰 I hopped through midnight's build-lined glen,
I carved the date in flags for when,
A tiny script, a whispered name,
Nightly numbers play the game,
And dawn compiles a brighter stem. ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and clearly describes the main change: automating the VERSION macro for nightly builds by deriving it from the build date, which is the core objective of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.



📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 143f892 and 649c86d.

📒 Files selected for processing (2)
  • .github/workflows/nightly.yml
  • .github/workflows/release.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release.yml
🔇 Additional comments (4)
.github/workflows/nightly.yml (4)

13-14: LGTM!

Correctly passes nightly_build: true to the reusable build workflow, which will set WLED_NIGHTLY_BUILD=true and trigger the automatic version calculation in the new pre-build script.


33-33: Correct fix for CI failures.

Changing from exclude-labels to excludeLabels fixes the input name to match the action's expected camelCase format, as confirmed by the CI error logs.


40-40: LGTM!

The updated release title "Nightly mdev Build $$" better clarifies the source branch. The $$ placeholder for the date is correctly preserved.


28-28: Line 28 already uses v2.4, which correctly addresses the set-output deprecation.

The action is currently at v2.4 (published 2023-12-05), which includes fixes for the set-output deprecation. The inputs used (token, sinceTag, excludeLabels) are compatible with this version.

Likely an incorrect or invalid review comment.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI and others added 2 commits January 15, 2026 10:08
- Modified build.yml to accept optional version input parameter
- Modified nightly.yml to calculate VERSION from build date in format yymmddb
- VERSION is passed as PLATFORMIO_BUILD_FLAGS to override default in wled.h
- Other workflows (wled-ci.yml, release.yml) unchanged and will use default VERSION

Co-authored-by: softhack007 <[email protected]>
- Created pio-scripts/set_nightly_version.py following existing set_version.py pattern
- Script sets VERSION to yymmddb format with build number 0 for nightly builds
- Modified build.yml to accept nightly_build boolean input
- Modified nightly.yml to pass nightly_build=true flag
- Added set_nightly_version.py to platformio.ini extra_scripts
- Uses WLED_NIGHTLY_BUILD environment variable to conditionally set VERSION

Co-authored-by: softhack007 <[email protected]>
Copilot AI changed the title [WIP] Improve CI script to set nightly build version Automate nightly build VERSION from build date Jan 15, 2026
Copilot AI requested a review from softhack007 January 15, 2026 10:14
avoids potential name clashes with used libraries
@softhack007
Copy link
Collaborator

@copilot i've changed the name of the override define to WLED_BUILD_VERSION. please adjust your scripts accordingly.

Changed from -DVERSION to -DWLED_BUILD_VERSION to match the updated
wled.h override mechanism.

Co-authored-by: softhack007 <[email protected]>
Copy link
Author

Copilot AI commented Jan 15, 2026

@copilot i've changed the name of the override define to WLED_BUILD_VERSION. please adjust your scripts accordingly.

Updated set_nightly_version.py to use -DWLED_BUILD_VERSION instead of -DVERSION in commit d03e3a8.

@softhack007
Copy link
Collaborator

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@softhack007 softhack007 requested a review from netmindz January 15, 2026 10:33
@softhack007 softhack007 marked this pull request as ready for review January 15, 2026 10:33
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@wled00/wled.h`:
- Around line 10-14: Preprocessor block in wled.h uses 3-space indentation for
the `#define` lines (symbols VERSION and WLED_BUILD_VERSION); change the
indentation to 2 spaces per coding guidelines so the inner `#define` lines are
indented exactly two spaces relative to their enclosing `#ifndef/`#else/#endif,
and ensure the `#else` and `#endif` lines follow the same 0/2-space pattern for
consistent formatting.
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1bda6ba and d03e3a8.

📒 Files selected for processing (5)
  • .github/workflows/build.yml
  • .github/workflows/nightly.yml
  • pio-scripts/set_nightly_version.py
  • platformio.ini
  • wled00/wled.h
🧰 Additional context used
📓 Path-based instructions (1)
wled00/**/*.{cpp,h}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Use spaces (2 per level) for C++ firmware source and headers in wled00

Files:

  • wled00/wled.h
🧠 Learnings (11)
📚 Learning: 2026-01-05T21:35:51.697Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 308
File: platformio.ini:436-436
Timestamp: 2026-01-05T21:35:51.697Z
Learning: In MoonModules/WLED-MM/platformio.ini, in the [esp32_legacy] section, pin NeoPixelBus to version 2.7.5. For V4 platform builds, use 2.7.9 or later; older V3 builds do not have the same flickering issues and do not gain from 2.7.9. This rule is specifically for the legacy build section and explains why the older version is intentional there.

Applied to files:

  • platformio.ini
📚 Learning: 2026-01-07T23:30:16.998Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 308
File: platformio.ini:560-560
Timestamp: 2026-01-07T23:30:16.998Z
Learning: In platformio.ini, ensure ESP32 environment flags related to WLED_USE_SHARED_RMT are consistent across ESP32-S2 and ESP32-S3 (e.g., enable shared RMT on both after investigation). Do not leave mismatched flags as a long-term state; add a clear comment explaining the temporary inconsistency and planned unification, and align RMTHI/RMT driver usage once the interrupt watchdog issue is understood.

Applied to files:

  • platformio.ini
📚 Learning: 2025-10-12T21:55:59.766Z
Learnt from: CR
Repo: MoonModules/WLED-MM PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-10-12T21:55:59.766Z
Learning: Applies to wled00/html_*.h : Do not edit generated embedded web header files: wled00/html_*.h

Applied to files:

  • wled00/wled.h
📚 Learning: 2025-11-02T22:07:15.689Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 0
File: :0-0
Timestamp: 2025-11-02T22:07:15.689Z
Learning: In MoonModules/WLED-MM, WLEDMM_FASTPATH will become the default code path. Code inside "#ifndef WLEDMM_FASTPATH" blocks represents deprecated paths that are being phased out and should be ignored during reviews.

Applied to files:

  • wled00/wled.h
📚 Learning: 2025-11-02T22:17:26.380Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 0
File: :0-0
Timestamp: 2025-11-02T22:17:26.380Z
Learning: In wled00/FX.cpp, the `#ifndef WLED_DISABLE_2D` guard around the Akemi 2D fallback in the `mode_oops()` function (lines 142-146) is intentionally kept. This guard is necessary because when users build with `-D WLED_DISABLE_2D` to remove all 2D effects from the build, the Akemi effect is also not compiled, so the guard prevents calling a non-existent function.

Applied to files:

  • wled00/wled.h
📚 Learning: 2025-10-12T21:55:59.766Z
Learnt from: CR
Repo: MoonModules/WLED-MM PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-10-12T21:55:59.766Z
Learning: Applies to wled00/**/*.{cpp,h} : Use spaces (2 per level) for C++ firmware source and headers in wled00

Applied to files:

  • wled00/wled.h
📚 Learning: 2026-01-05T21:35:57.030Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 308
File: platformio.ini:436-436
Timestamp: 2026-01-05T21:35:57.030Z
Learning: In MoonModules/WLED-MM platformio.ini, [esp32_legacy] section intentionally uses NeoPixelBus 2.7.5 while V4 platform builds use 2.7.9 or later. The older V3 Platform builds don't have the same flickering problems that newer versions address, and NPB 2.7.9 provides no added value over 2.7.5 for these legacy builds.

Applied to files:

  • wled00/wled.h
📚 Learning: 2025-10-22T21:50:25.839Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 270
File: usermods/usermod_v2_rotary_encoder_ui_ALT/usermod_v2_rotary_encoder_ui_ALT.h:155-157
Timestamp: 2025-10-22T21:50:25.839Z
Learning: In WLED-MM PR `#270`, only Effect (Mode) IDs are migrated to 16-bit; Palette IDs and counts remain 8-bit. Usermod code should widen mode-related indices/loops to uint16_t while keeping palette-related indices/loops as uint8_t.

Applied to files:

  • wled00/wled.h
📚 Learning: 2025-12-21T22:26:03.261Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 293
File: wled00/udp.cpp:668-669
Timestamp: 2025-12-21T22:26:03.261Z
Learning: In MoonModules/WLED-MM on 32-bit ESP32 platforms, changing pixel index variables to `int` type to align with the `setPixelColor(int, ...)` API signature is intentional and safe. Maximum pixel addresses are bounded by UINT16_MAX, and `setPixelColor()` performs internal overflow checks.

Applied to files:

  • wled00/wled.h
📚 Learning: 2025-06-30T17:53:37.232Z
Learnt from: DedeHai
Repo: MoonModules/WLED-MM PR: 248
File: usermods/audioreactive/audio_reactive.h:199-200
Timestamp: 2025-06-30T17:53:37.232Z
Learning: In WLED AudioReactive usermod, when using ArduinoFFT (enabled via UM_AUDIOREACTIVE_USE_ARDUINO_FFT), it's acceptable and necessary to redefine the global sqrt macro to sqrtf within the conditional compilation block for performance optimization. This is a specific requirement for ArduinoFFT optimization that can provide 10-50% performance improvement on ESP32.

Applied to files:

  • wled00/wled.h
📚 Learning: 2025-11-14T13:55:44.442Z
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 0
File: :0-0
Timestamp: 2025-11-14T13:55:44.442Z
Learning: In MoonModules/WLED-MM, always flag Variable Length Arrays (VLA) during code reviews, especially when they could overflow available stack space (typically 2K-4K on ESP32/ESP8266). VLAs based on dynamic parameters like segment dimensions, particle counts, or pixel buffers should be highlighted and require justification from the author. Prefer fixed-size arrays, heap allocation, or bounded VLAs with explicit maximum size constraints.

Applied to files:

  • wled00/wled.h
🪛 Ruff (0.14.11)
pio-scripts/set_nightly_version.py

1-1: Undefined name Import

(F821)


9-9: Undefined name env

(F821)

🔇 Additional comments (5)
platformio.ini (1)

227-227: LGTM!

The nightly version script is correctly added to the pre-build hooks, following the existing pattern and positioned appropriately after set_version.py.

pio-scripts/set_nightly_version.py (1)

1-10: LGTM!

The script correctly implements the nightly version generation using UTC time in the expected yymmddb format. The Import('env') syntax is standard PlatformIO SCons convention (the static analysis warnings for undefined Import and env are false positives as these are injected at runtime by PlatformIO).

.github/workflows/nightly.yml (1)

13-14: LGTM!

Correctly passes nightly_build: true to the reusable workflow, enabling the nightly version generation for scheduled and manual nightly builds.

.github/workflows/build.yml (2)

6-11: LGTM!

The nightly_build input is well-defined with appropriate description, type, and default value. This provides a clean interface for triggering nightly builds from calling workflows.


71-71: LGTM!

The conditional expression correctly converts the boolean input to a string environment variable that the PlatformIO script can consume via os.environ.get().

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@softhack007
Copy link
Collaborator

@coderabbitai i've noticed that the latest nightly release notes (https://github.com/MoonModules/WLED-MM/releases/tag/nightly) do not include #316. What could be the reason?

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash

# Get details about issue `#316`
echo "=== Issue `#316` Details ==="
gh issue view 316 --json number,title,state,createdAt,closedAt,labels,body

echo -e "\n=== Nightly Release Details ==="
# Get details about the nightly release
gh release view nightly --json tagName,name,createdAt,publishedAt,body

echo -e "\n=== Check for release-related workflows ==="
# Look for workflows that might handle release note generation
fd -e yml -e yaml . .github/workflows/ --exec cat {}

echo -e "\n=== Check recent commits and their dates ==="
# Get recent commit history to understand timing
git log --oneline --since="2 days ago" --date=iso

echo -e "\n=== Check if there are any release note generation scripts ==="
fd -e py -e sh release

Length of output: 79021


@softhack007, I've investigated the issue and found two main reasons why issue #316 is not appearing in the nightly release notes:

1. Issue #316 is very old
Issue #316 was created on 2019-11-01 and closed on 2021-10-03, which is over 4 years ago. The nightly workflow's changelog generator starts from sinceTag: v14.7.1, so issues closed that long ago would not be included in the changelog regardless of other factors.

2. The changelog appears to be from the wrong repository
The nightly release notes contain references to issues from the upstream wled/WLED repository (e.g., #5224, #4915, #5272) rather than MoonModules/WLED-MM issues. Looking at the nightly.yml workflow, the changelog generation uses:

- name: "✏️ Generate release changelog"
  id: changelog
  uses: janheinrichmerker/[email protected]
  with:
    token: ${{ secrets.GITHUB_TOKEN }}
    sinceTag: v14.7.1
    exclude-labels: 'stale,wontfix,duplicate,invalid'

The action likely defaults to generating changelogs based on the repository where it's run, but it seems to be pulling from the wrong source or the repository context isn't being properly passed to the changelog generator.

Recommendation:
You may need to verify that the changelog generator is correctly scoped to the MoonModules/WLED-MM repository and consider updating the sinceTag to a more recent tag that's appropriate for the MoonModules fork.


🧠 Learnings used
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 0
File: :0-0
Timestamp: 2025-11-02T22:07:15.689Z
Learning: In MoonModules/WLED-MM, WLEDMM_FASTPATH will become the default code path. Code inside "#ifndef WLEDMM_FASTPATH" blocks represents deprecated paths that are being phased out and should be ignored during reviews.

Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 270
File: wled00/fcn_declare.h:403-406
Timestamp: 2025-10-22T21:59:24.331Z
Learning: In MoonModules/WLED-MM PR `#270`, the out-of-bounds null-terminator write in wled00/util.cpp (extractModeSlider) is deferred and tracked in Issue `#272`; do not address it within PR `#270`.

Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 308
File: platformio.ini:436-436
Timestamp: 2026-01-05T21:35:57.030Z
Learning: In MoonModules/WLED-MM platformio.ini, [esp32_legacy] section intentionally uses NeoPixelBus 2.7.5 while V4 platform builds use 2.7.9 or later. The older V3 Platform builds don't have the same flickering problems that newer versions address, and NPB 2.7.9 provides no added value over 2.7.5 for these legacy builds.

@softhack007
Copy link
Collaborator

1. Issue #316 is very old
Issue #316 was created on 2019-11-01 and closed on 2021-10-03, which is over 4 years ago. The nightly workflow's changelog generator starts from sinceTag: v14.7.1, so issues closed that long ago would not be included in the changelog regardless of other factors.

@coderabbitai this is not true. Issue 316 from MoonModules/WLED-MM was closed yesterday.

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@softhack007, you're absolutely right - I apologize for the confusion. Let me gather the correct information about issue #316 from MoonModules/WLED-MM.


🏁 Script executed:

#!/bin/bash

# Get details about issue `#316` from MoonModules/WLED-MM repository
echo "=== MoonModules/WLED-MM Issue `#316` Details ==="
gh issue view 316 --repo MoonModules/WLED-MM --json number,title,state,createdAt,closedAt,labels,body,url

echo -e "\n=== Nightly Release Details ==="
# Get details about the nightly release
gh release view nightly --repo MoonModules/WLED-MM --json tagName,name,createdAt,publishedAt,body,url

echo -e "\n=== Recent commits to mdev branch ==="
# Check recent commits to see what's been merged
git log --oneline -20 --date=iso --pretty=format:"%h %ad %s" origin/mdev

echo -e "\n=== Check nightly workflow runs ==="
# Get recent nightly workflow runs to see when the last one executed
gh run list --repo MoonModules/WLED-MM --workflow=nightly.yml --limit 5 --json databaseId,createdAt,status,conclusion,headBranch

Length of output: 2925


@softhack007, I apologize for my earlier mistake. After checking the correct repository, I now understand the issue:

Timeline Analysis:

  • Nightly release published: Jan 14, 2026 at 03:56:02 UTC
  • Issue #316 created: Jan 14, 2026 at 11:48:13 UTC (about 8 hours later)
  • Issue #316 closed: Jan 14, 2026 at 12:31:01 UTC

The reason issue #316 is not in the nightly release notes is simple timing: The issue was created and closed several hours after the nightly release was already published.

Additional factor: The next nightly workflow run (Jan 15, 2026 at 03:43:00 UTC) failed, so no new release was generated that would include issue #316.

Expected outcome: Issue #316 should appear in the changelog of the next successful nightly release, which will pick up the commit "upgrade 'ABC WLED' and 'Athom Music' to V4 buildenvs" (5474d95) that closed the issue.


🧠 Learnings used
Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 270
File: wled00/fcn_declare.h:403-406
Timestamp: 2025-10-22T21:59:24.331Z
Learning: In MoonModules/WLED-MM PR `#270`, the out-of-bounds null-terminator write in wled00/util.cpp (extractModeSlider) is deferred and tracked in Issue `#272`; do not address it within PR `#270`.

Learnt from: softhack007
Repo: MoonModules/WLED-MM PR: 0
File: :0-0
Timestamp: 2025-11-02T22:07:15.689Z
Learning: In MoonModules/WLED-MM, WLEDMM_FASTPATH will become the default code path. Code inside "#ifndef WLEDMM_FASTPATH" blocks represents deprecated paths that are being phased out and should be ignored during reviews.

@softhack007
Copy link
Collaborator

@copilot the nightly release action failed with an error message:

Deploy nightlyUnexpected input(s) 'exclude-labels', valid inputs are ['entryPoint', 'args', 'repo', 'user', 'project', 'token', 'dateFormat', 'output', 'base', 'headerLabel', 'configureSections', 'addSections', 'frontMatter', 'issues', 'issuesWoLabels', 'pullRequests', 'prWoLabels', 'filterByMilestone', 'author', 'usernamesAsGithubLogins', 'unreleasedOnly', 'unreleased', 'unreleasedLabel', 'compareLink', 'includeLabels', 'excludeLabels', 'issueLineLabels', 'excludeTags', 'excludeTagsRegex', 'sinceTag', 'dueTag', 'maxIssues', 'releaseUrl', 'githubSite', 'githubApi', 'simpleList', 'futureRelease', 'releaseBranch', 'httpCache', 'cacheFile', 'cacheLog', 'sslCaFile', 'verbose', 'breakingLabel', 'breakingLabels', 'enhancementLabel', 'enhancementLabels', 'bugsLabel', 'bugLabels', 'deprecatedLabel', 'deprecatedLabels', 'removedLabel', 'removedLabels', 'securityLabel', 'securityLabels', 'issuesLabel', 'prLabel', 'onlyLastTag', 'stripHeaders', 'stripGeneratorNotice']

…Labels

The action janheinrichmerker/[email protected] expects
camelCase parameter names. Changed 'exclude-labels' to 'excludeLabels' in both
nightly.yml and release.yml to fix the nightly release action failure.

Co-authored-by: softhack007 <[email protected]>
Copy link
Author

Copilot AI commented Jan 15, 2026

@copilot the nightly release action failed with an error message:

Deploy nightlyUnexpected input(s) 'exclude-labels', valid inputs are ['entryPoint', 'args', 'repo', 'user', 'project', 'toke...

Fixed the nightly release action failure. The action janheinrichmerker/[email protected] expects camelCase parameter names. Changed exclude-labels to excludeLabels in both nightly.yml and release.yml in commit 143f892.

@softhack007
Copy link
Collaborator

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Collaborator

@softhack007 softhack007 left a comment

Choose a reason for hiding this comment

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

OK for me.

@softhack007
Copy link
Collaborator

@copilot the "deploy-nightly" run contains another deprecation warning. Is there a simple way to modernize our scripts to avoid this deprecated feature?

Warning: The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

… deprecation

The v2.4 release fixes the deprecated set-output command by using GITHUB_OUTPUT
environment file instead. This eliminates the deprecation warning in nightly builds.

Co-authored-by: softhack007 <[email protected]>
Copy link
Author

Copilot AI commented Jan 15, 2026

@copilot the "deploy-nightly" run contains another deprecation warning. Is there a simple way to modernize our script...

Updated the changelog generator action from v2.3 to v2.4 in commit 7dff6c7. The v2.4 release specifically fixes the set-output deprecation by using the modern GITHUB_OUTPUT environment file instead. This eliminates the deprecation warning.

@softhack007
Copy link
Collaborator

@copilot please change the title in the release notes (https://github.com/MoonModules/WLED-MM/releases/tag/nightly) from "Nightly Release ..." to "Nightly mdev Build ..."

…Build"

Updated the release name in nightly.yml to better reflect that this is a
development build (mdev) rather than a production release.

Co-authored-by: softhack007 <[email protected]>
Copy link
Author

Copilot AI commented Jan 15, 2026

@copilot please change the title in the release notes (https://github.com/MoonModules/WLED-MM/releases/tag/nightly) from "Nightly Release ..." to "Nightly mdev Build ..."

Changed the nightly release title from "Nightly Release $$" to "Nightly mdev Build $$" in commit 649c86d. This will take effect on the next nightly build.

@softhack007
Copy link
Collaborator

@coderabbitai review

during your review, please include a verification that the changelog generator action update from v2.3 to v2.4 did not introduce other incompatibilities for out action scripts.

@coderabbitai
Copy link

coderabbitai bot commented Jan 15, 2026

🧩 Analysis chain

@softhack007, I'll review the changes and verify the changelog generator action compatibility.


🌐 Web query:

janheinrichmerker action-github-changelog-generator v2.4 release notes changes

💡 Result:

Do you want me to look up the v2.4 release notes on GitHub (search repo releases/tags and changelog) now?


🏁 Script executed:

#!/bin/bash

# Get release information for v2.3 and v2.4 of the changelog generator action
echo "=== Checking v2.3 release ==="
gh release view v2.3 --repo janheinrichmerker/action-github-changelog-generator --json tagName,name,body,publishedAt 2>&1 || echo "v2.3 not found"

echo -e "\n=== Checking v2.4 release ==="
gh release view v2.4 --repo janheinrichmerker/action-github-changelog-generator --json tagName,name,body,publishedAt 2>&1 || echo "v2.4 not found"

echo -e "\n=== List all releases to find available versions ==="
gh release list --repo janheinrichmerker/action-github-changelog-generator --limit 10

echo -e "\n=== Get tags to see all versions ==="
gh api repos/janheinrichmerker/action-github-changelog-generator/tags --jq '.[].name' | head -20

echo -e "\n=== Check action.yml from v2.3 ==="
gh api repos/janheinrichmerker/action-github-changelog-generator/contents/action.yml?ref=v2.3 --jq '.content' | base64 -d | head -100

echo -e "\n=== Check action.yml from v2.4 (if exists) ==="
gh api repos/janheinrichmerker/action-github-changelog-generator/contents/action.yml?ref=v2.4 --jq '.content' | base64 -d | head -100 2>&1 || echo "v2.4 not found, checking latest"

echo -e "\n=== Compare our current usage in nightly.yml ==="
cat .github/workflows/nightly.yml | grep -A 10 "action-github-changelog-generator"

echo -e "\n=== Compare our current usage in release.yml ==="
cat .github/workflows/release.yml | grep -A 10 "action-github-changelog-generator"

Length of output: 12805


@softhack007, I've completed the verification of the changelog generator action compatibility. Great news!

Changelog Generator Action Compatibility ✅

Current Status: Both workflows are already using v2.4 (the latest version), not v2.3.

Compatibility Analysis:

  1. No Breaking Changes: I compared the action.yml inputs between v2.3 and v2.4, and they are identical. All parameters remain the same.

  2. Parameters Used in Your Workflows:

    • token
    • sinceTag
    • excludeLabels ✅ (correctly using camelCase)
    • maxIssues ✅ (in release.yml only)

    All are fully compatible with both v2.3 and v2.4.

  3. Key Improvement in v2.4: The main change is fixing the deprecated set-output command (PR #43). This actually resolves the deprecation warning you mentioned earlier!

  4. Your Parameter Fix: The change from exclude-labels (kebab-case) to excludeLabels (camelCase) was correct and necessary - the action only accepts camelCase input names.

Conclusion: No incompatibilities found. The v2.4 upgrade is beneficial as it modernizes the action to use GitHub Actions' current output format, addressing the deprecation warning you flagged.

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@softhack007 softhack007 changed the title Automate nightly build VERSION from build date Automate nightly build VERSION from build date, update Changelog generator to v2.4 Jan 15, 2026
Copy link
Collaborator

@softhack007 softhack007 left a comment

Choose a reason for hiding this comment

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

OK. We'll see if this really works in the upcoming nightly run.

@softhack007
Copy link
Collaborator

I'm curious if it works, let's merge

@softhack007 softhack007 merged commit caa8cba into mdev Jan 15, 2026
32 checks passed
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.

2 participants