Skip to content

Conversation

@MickLesk
Copy link
Member

@MickLesk MickLesk commented Dec 5, 2025

✍️ Description

This PR improves the GitHub workflow automation for PR labeling and changelog generation.

Autolabeler Changes

  • Removed size < 2 restriction: Template checkboxes are now always parsed, regardless of how many file-based labels were already added
  • Fixed label mappings: Documentation checkbox now correctly maps to documentation label (was maintenance)
  • Added new labels:
    • documentation for docs/** changes
    • vm as additional marker for vm/** changes
    • tools for tools/** changes
  • Expanded github label scope: Now includes README.md, SECURITY.md, LICENSE, CHANGELOG.md (not just .github/**)
  • Improved update script + json handling: When a PR has script changes + json changes + content label (bugfix/feature), the json label is skipped to avoid duplicate categorization

Changelog Config Changes

  • Added 🗑️ Deleted Scripts category: PRs with delete script label now appear in changelog
  • Added 💾 Core as main category: Core function changes (misc/*.func) get their own section (was subcategory under Maintenance)
  • Added 🧰 Tools category: For tools/** changes with subcategories
  • Added 📚 Documentation category: For docs/** changes
  • Promoted 📂 Github to main category: Was subcategory under Maintenance
  • Promoted 📡 API to main category: Was subcategory under Maintenance
  • Removed 🧰 Maintenance category: Redundant after splitting into Documentation/Github
  • Added ❔ Uncategorized fallback: PRs without matching labels go here (uses needs triage label)
  • VMs integrated into script categories: vm/** changes use new script/update script/delete script labels with additional vm marker

Changelog Workflow Changes

  • Added subcategory priority order: When PR has multiple content labels, highest priority wins
    • Priority: breaking change > bugfix > feature > refactor
  • Added fallback to Uncategorized: PRs that don't match any category are added to "Uncategorized" section

PR Template Changes

  • Improved issue linking guidance: Added clear instructions for using Fixes #123 syntax
  • Updated section title: "Related PR / Issue" → "Related Issue"

Other Cleanup

  • Removed .github/CONTRIBUTOR_AND_GUIDES/: Consolidated into docs/contribution/
  • Added docs/contribution/templates_json/: Moved JSON templates from old location
  • Updated all links in README.md: Point to new docs/contribution/ location
  • Removed obsolete references: misc/create_lxc.sh from configs (file was deleted)

🔗 Related PR / Issue

Link: #

✅ Prerequisites (X in brackets)

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected.
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.

🛠️ Type of Change (X in brackets)

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing functionality in a way that may require updates.
  • 🆕 New script – A fully functional and tested script or script set.
  • 🌍 Website update – Changes to website-related JSON files or metadata.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, AppName.md, CONTRIBUTING.md, or other docs.

- PR template: Add clear instructions for issue linking with 'Fixes #xxx'
  syntax to enable automatic issue closing on PR merge
- autolabeler-config.json: Remove non-existent misc/create_lxc.sh
- validate-filenames.yml: Remove obsolete skip check for misc/create_lxc.sh
- Remove deprecated .github/CONTRIBUTOR_AND_GUIDES/ directory
- Add missing json templates to docs/contribution/templates_json/
- Update README.md links to point to docs/contribution/
- Update docs/contribution/CONTRIBUTING.md internal links

The contribution documentation is now centralized in docs/contribution/
with all templates (ct, install, json) available there.
@github-actions github-actions bot added github maintenance Code maintenance or general upkeep of the project labels Dec 5, 2025
Autolabeler improvements:
- Always parse template checkboxes (removed size < 2 restriction)
- Better handling of update script + json + content label combinations
- Fixed documentation checkbox mapping to 'maintenance' label

Changelog config improvements:
- Added '🗑️ Deleted Scripts' category for delete script label
- Added '💾 Core' as main category (was subcategory under Maintenance)
- Renamed 'Unlabelled' to 'Uncategorized' with 'needs triage' label
- Removed Documentation subcategory (redundant with maintenance)

Changelog workflow improvements:
- Added fallback to 'Uncategorized' for PRs without matching labels

This ensures:
- PRs with ct/install + json changes + bugfix = 'update script' + 'bugfix'
- Core changes (misc/*.func) get their own changelog section
- Deleted scripts are tracked in changelog
- No PRs fall through without categorization
When a PR has multiple content-type labels, use priority order:
1. breaking change (highest)
2. bugfix
3. feature
4. refactor (lowest)

Example: PR with 'bugfix' + 'feature' + 'refactor' → categorized as 'bugfix'

This prevents PRs from appearing in multiple subcategories and ensures
the most important change type is highlighted.
Autolabeler changes:
- Separated scripts (ct/install/turnkey) from VMs (vm/)
- Added new labels: 'new vm', 'update vm', 'delete vm'
- Added 'documentation' label for docs/** changes
- 'github' label now includes README.md, SECURITY.md, LICENSE, CHANGELOG.md
- Removed misc/** from script labels (misc is for core functions)
- Added 'tools' label for tools/** directory
- Documentation checkbox now maps to 'documentation' (not 'maintenance')

Changelog changes:
- Added VM categories: New VMs, Updated VMs, Deleted VMs (with subcategories)
- Added Tools category with subcategories
- Added Documentation category (separate from Github)
- Github and API are now main categories (not under Maintenance)
- Removed Maintenance category (was redundant)

Label mapping summary:
- ct/install/turnkey → new script / update script / delete script
- vm/** → new vm / update vm / delete vm
- misc/*.func → core
- docs/** → documentation
- .github/**, README.md, etc. → github
- tools/** → tools (+ addon/pve-tool sub-labels)
- frontend/** → website
- frontend/public/json/** → json
- api/**, misc/api.func → api
VMs now use the same labels as ct/install/turnkey:
- vm/** (added) → 'new script' + 'vm'
- vm/** (modified) → 'update script' + 'vm'
- vm/** (removed) → 'delete script' + 'vm'

The 'vm' label is added as an additional marker but VMs appear
in the same changelog categories as other scripts.

Removed separate VM categories from changelog config.
Copy link
Member

@michelroegl-brunner michelroegl-brunner left a comment

Choose a reason for hiding this comment

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

lgtm, a much better approach. I am still testing on how we can use release-drafter for a better changelog.

@MickLesk MickLesk marked this pull request as ready for review December 5, 2025 21:16
@MickLesk MickLesk requested a review from a team as a code owner December 5, 2025 21:16
@tremor021 tremor021 merged commit 0c2521c into main Dec 5, 2025
2 checks passed
@tremor021 tremor021 deleted the fix/github-workflow-improvements branch December 5, 2025 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github maintenance Code maintenance or general upkeep of the project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants