CI: build snap without snapcore/action-build#4527
Merged
Merged
Conversation
The action is effectively unmaintained (snapcore/action-build#1 has been open since April with no maintainer response). Replace it with a direct snapcraft invocation using --destructive-mode, which builds on the runner host instead of in LXD. Pin the job to ubuntu-24.04 so the host matches the snap's core24 base.
This step set a snap_channel output that's not consumed anywhere; the last consumer was removed in d3530f4 when snap releases stopped happening from GitHub Actions.
bjorn
added a commit
that referenced
this pull request
May 27, 2026
Replaced with a direct snapcraft invocation using --destructive-mode, which builds on the runner host instead of in LXD. Pin the job to ubuntu-24.04 so the host matches the snap's core24 base. Also dropped the dead snap_channel step, since we're not publishing the snap anymore since d3530f4. (cherry picked from commit f4fcfcf)
UltraDagon
pushed a commit
to UltraDagon/tiled
that referenced
this pull request
May 29, 2026
Replaced with a direct snapcraft invocation using --destructive-mode, which builds on the runner host instead of in LXD. Pin the job to ubuntu-24.04 so the host matches the snap's core24 base. Also dropped the dead snap_channel step, since we're not publishing the snap anymore since d3530f4.
UltraDagon
added a commit
to UltraDagon/tiled
that referenced
this pull request
May 29, 2026
border and grid over mapitem.) removed unneeded qt.quick dependency from libtiledquick.qbs; Fixed color property not updating border color Fixed bug mentioned by KodyAI: border would not update upon map resizes or color updates Created skeleton for MapGridItem class somewhat working grid, terribly unoptimized; looking into using a transform node or preferably shader to make it better Finished grid shader; updated border & grid formatting Added qtshadertools to the included qt_modeules in package.yml; added version check to tiledquick's condition to avoid crash when compiling with older qt versions added qtshadertools to appveyor's QT_MODULES Fixed small formatting issues and cleaned up debug code Some tweaks - Grid in between tiles - Fix file list order - Remove fileTags & overrideTags, relying on defaults restored old appveyor.yml formatting changed mapgriditem to use mapitem's map's tilesize for grid size calculation instead of ScreenToTileCoords Added headers, some tweaks, fixed setScale signal * Added copyright headers attributing UltraDagon * Set flags in one call * Fixed emit from MapGridItem::setScale Fix setting DirtyMaterial flag in MapBorderItem Set both flags at once in MapGridMaterial implemented requested changes Added missing copyright headers tBIN plugin: Made it compile with QT_NO_CAST_FROM_ASCII (mapeditor#4513) Fixes build errors against Qt 6.4 (Ubuntu 24.04) where QStringView comparisons with const char* literals cause compilation issues. Wrapped string literals in QLatin1String/QStringLiteral and replaced implicit const char* conversions with explicit QString::fromStdString / QLatin1Char. Fix copy/paste of list properties (mapeditor#4514) and clean up RecursiveBehavior (mapeditor#4517) Fix copy/paste of list properties and related clean-up Copying a list custom property and pasting it onto another object dropped the items, leaving them saved as `type="std::nullptr_t"` in TMX. The same bug applied to lists nested inside class properties and also affected storing list properties on projects or worlds. The clipboard, project files, and world files serialize through `propertiesToJson` / `propertiesFromJson`, which fed `QJsonValue::fromVariant` a tree containing `ExportValue` wrappers it was not programmed to handle. They now use a new `TypedListValues` `RecursiveBehavior` that produces `{type, propertytype, value}` maps for each list element (matching the JSON map format on disk) and decodes the same shape on read. A few cleanups while in the area: - Folded the JSON map converter helpers (`exportValuesToVariantMap`, `convertListValues`) into `ExportContext` so the same recursion logic is shared. - Replaced the half-baked `ListsAsExportValues` default with an explicit `NoRecursion` default. Callers that walk compound values themselves (the XML reader and writer, `PropertyTypes::toJson`) now use the default. The JSON helpers opt in to `TypedListValues`. - Made the XML writer mirror the XML reader, driving recursion through lists and class members itself, so `ExportValuesOnly` was no longer needed and was removed. - Added autotests for round-tripping list values to XML and JSON. Closes mapeditor#4514 Updated dependencies mentioned in the README.md (mapeditor#4470) * Minimum version updated to Qt 5.15.2 * Ubuntu/Debian packages updated to Qt 6 * Arch Linux packages update to Qt 6 * Homebrew packages extended with qttools, necessary for lrelease Fixed resolving of class members values in lists (mapeditor#4525) The ExportHelper forgot to recurse into list values. Also documented exportValueToJson's NoRecursion precondition and tweaked some comments in MapToVariantConverter. CI: build snap without snapcore/action-build (mapeditor#4527) Replaced with a direct snapcraft invocation using --destructive-mode, which builds on the runner host instead of in LXD. Pin the job to ubuntu-24.04 so the host matches the snap's core24 base. Also dropped the dead snap_channel step, since we're not publishing the snap anymore since d3530f4.
UltraDagon
added a commit
to UltraDagon/tiled
that referenced
this pull request
May 30, 2026
removed unneeded qt.quick dependency from libtiledquick.qbs; Fixed color property not updating border color Fixed bug mentioned by KodyAI: border would not update upon map resizes or color updates Created skeleton for MapGridItem class somewhat working grid, terribly unoptimized; looking into using a transform node or preferably shader to make it better Finished grid shader; updated border & grid formatting Added qtshadertools to the included qt_modeules in package.yml; added version check to tiledquick's condition to avoid crash when compiling with older qt versions added qtshadertools to appveyor's QT_MODULES Fixed small formatting issues and cleaned up debug code Some tweaks - Grid in between tiles - Fix file list order - Remove fileTags & overrideTags, relying on defaults restored old appveyor.yml formatting changed mapgriditem to use mapitem's map's tilesize for grid size calculation instead of ScreenToTileCoords Added headers, some tweaks, fixed setScale signal * Added copyright headers attributing UltraDagon * Set flags in one call * Fixed emit from MapGridItem::setScale Fix setting DirtyMaterial flag in MapBorderItem Set both flags at once in MapGridMaterial implemented requested changes Added missing copyright headers tBIN plugin: Made it compile with QT_NO_CAST_FROM_ASCII (mapeditor#4513) Fixes build errors against Qt 6.4 (Ubuntu 24.04) where QStringView comparisons with const char* literals cause compilation issues. Wrapped string literals in QLatin1String/QStringLiteral and replaced implicit const char* conversions with explicit QString::fromStdString / QLatin1Char. Fix copy/paste of list properties (mapeditor#4514) and clean up RecursiveBehavior (mapeditor#4517) Fix copy/paste of list properties and related clean-up Copying a list custom property and pasting it onto another object dropped the items, leaving them saved as `type="std::nullptr_t"` in TMX. The same bug applied to lists nested inside class properties and also affected storing list properties on projects or worlds. The clipboard, project files, and world files serialize through `propertiesToJson` / `propertiesFromJson`, which fed `QJsonValue::fromVariant` a tree containing `ExportValue` wrappers it was not programmed to handle. They now use a new `TypedListValues` `RecursiveBehavior` that produces `{type, propertytype, value}` maps for each list element (matching the JSON map format on disk) and decodes the same shape on read. A few cleanups while in the area: - Folded the JSON map converter helpers (`exportValuesToVariantMap`, `convertListValues`) into `ExportContext` so the same recursion logic is shared. - Replaced the half-baked `ListsAsExportValues` default with an explicit `NoRecursion` default. Callers that walk compound values themselves (the XML reader and writer, `PropertyTypes::toJson`) now use the default. The JSON helpers opt in to `TypedListValues`. - Made the XML writer mirror the XML reader, driving recursion through lists and class members itself, so `ExportValuesOnly` was no longer needed and was removed. - Added autotests for round-tripping list values to XML and JSON. Closes mapeditor#4514 Updated dependencies mentioned in the README.md (mapeditor#4470) * Minimum version updated to Qt 5.15.2 * Ubuntu/Debian packages updated to Qt 6 * Arch Linux packages update to Qt 6 * Homebrew packages extended with qttools, necessary for lrelease Fixed resolving of class members values in lists (mapeditor#4525) The ExportHelper forgot to recurse into list values. Also documented exportValueToJson's NoRecursion precondition and tweaked some comments in MapToVariantConverter. TiledQuick: Add border and grid to the map view (mapeditor#4392) Adds qtshadertools dependency. Co-authored-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl> CI: build snap without snapcore/action-build (mapeditor#4527) Replaced with a direct snapcraft invocation using --destructive-mode, which builds on the runner host instead of in LXD. Pin the job to ubuntu-24.04 so the host matches the snap's core24 base. Also dropped the dead snap_channel step, since we're not publishing the snap anymore since d3530f4.
UltraDagon
pushed a commit
to UltraDagon/tiled
that referenced
this pull request
May 30, 2026
author Thorbjørn Lindeijer <bjorn@lindeijer.nl> 1774453160 +0100 committer UltraDagon <43974011+UltraDagon@users.noreply.github.com> 1780111770 -0500 parent 7227300 author Thorbjørn Lindeijer <bjorn@lindeijer.nl> 1774453160 +0100 committer UltraDagon <43974011+UltraDagon@users.noreply.github.com> 1780111753 -0500 Fix ability to change properties after deselecting current object (mapeditor#4440) When deselecting the current object, its properties generally remain visible in the Properties view. But when changing any of the properties, the changes were only applied to "selected objects". Now, when there is still a MapObject set as the current object, changing its properties will apply to it regardless of whether it is still selected. (cherry picked from commit db0d1c4) Bump softprops/action-gh-release from 2 to 3 (mapeditor#4500) Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](softprops/action-gh-release@v2...v3) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit fa62547) docs: Add pixi-tiledmap support details to documentation (mapeditor#4499) Added information about pixi-tiledmap as a loader and renderer for Tiled Maps in Pixi.JS. (cherry picked from commit 1fb0747) Fix point object bounding box in multi-object selections (mapeditor#4401) The objectBounds() function was using renderer->shape(object) for Point objects, which returns the visual pin shape rather than the actual point position. This caused the selection bounding box to be larger than expected, affecting snapping and rotation behavior. Fix by returning a zero-size rect at the point's screen position, consistent with how Point objects are treated geometrically. Fixes mapeditor#3784 (cherry picked from commit 7144155) Added whitespace trimming for custom property names (mapeditor#4486) This also prevents whitespaces-only property names. Co-authored-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl> (cherry picked from commit 725993a) fix(ci): replace third-party action with native brew bump-cask-pr command (mapeditor#4478) The `eugenesvk/action-homebrew-bump-cask` action had failed on the first test, see: mapeditor#4391 (comment) (cherry picked from commit e48776a) Made indexes in the TilesetModel without tiles invalid (mapeditor#4512) This way, those indexes can't be navigated to using the keyboard nor selected using the mouse. I've also added rendering of the focused tile in TileDelegate, which helps a little bit to give additional context in some cases like multi-selection or when toggling selection. Closes mapeditor#3498 (cherry picked from commit 77fc9a2) Bump timheuer/base64-to-file from 1 to 2 (mapeditor#4516) Bumps [timheuer/base64-to-file](https://github.com/timheuer/base64-to-file) from 1 to 2. - [Release notes](https://github.com/timheuer/base64-to-file/releases) - [Commits](timheuer/base64-to-file@v1...v2) --- updated-dependencies: - dependency-name: timheuer/base64-to-file dependency-version: '2' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit f511930) tBIN plugin: Made it compile with QT_NO_CAST_FROM_ASCII (mapeditor#4513) Fixes build errors against Qt 6.4 (Ubuntu 24.04) where QStringView comparisons with const char* literals cause compilation issues. Wrapped string literals in QLatin1String/QStringLiteral and replaced implicit const char* conversions with explicit QString::fromStdString / QLatin1Char. (cherry picked from commit d6417e4) Fix copy/paste of list properties (mapeditor#4514) and clean up RecursiveBehavior (mapeditor#4517) Fix copy/paste of list properties and related clean-up Copying a list custom property and pasting it onto another object dropped the items, leaving them saved as `type="std::nullptr_t"` in TMX. The same bug applied to lists nested inside class properties and also affected storing list properties on projects or worlds. The clipboard, project files, and world files serialize through `propertiesToJson` / `propertiesFromJson`, which fed `QJsonValue::fromVariant` a tree containing `ExportValue` wrappers it was not programmed to handle. They now use a new `TypedListValues` `RecursiveBehavior` that produces `{type, propertytype, value}` maps for each list element (matching the JSON map format on disk) and decodes the same shape on read. A few cleanups while in the area: - Folded the JSON map converter helpers (`exportValuesToVariantMap`, `convertListValues`) into `ExportContext` so the same recursion logic is shared. - Replaced the half-baked `ListsAsExportValues` default with an explicit `NoRecursion` default. Callers that walk compound values themselves (the XML reader and writer, `PropertyTypes::toJson`) now use the default. The JSON helpers opt in to `TypedListValues`. - Made the XML writer mirror the XML reader, driving recursion through lists and class members itself, so `ExportValuesOnly` was no longer needed and was removed. - Added autotests for round-tripping list values to XML and JSON. Closes mapeditor#4514 (cherry picked from commit c9ad67b) Updated dependencies mentioned in the README.md (mapeditor#4470) * Minimum version updated to Qt 5.15.2 * Ubuntu/Debian packages updated to Qt 6 * Arch Linux packages update to Qt 6 * Homebrew packages extended with qttools, necessary for lrelease (cherry picked from commit 7f243af) Fixed resolving of class members values in lists (mapeditor#4525) The ExportHelper forgot to recurse into list values. Also documented exportValueToJson's NoRecursion precondition and tweaked some comments in MapToVariantConverter. (cherry picked from commit c676301) CI: build snap without snapcore/action-build (mapeditor#4527) Replaced with a direct snapcraft invocation using --destructive-mode, which builds on the runner host instead of in LXD. Pin the job to ubuntu-24.04 so the host matches the snap's core24 base. Also dropped the dead snap_channel step, since we're not publishing the snap anymore since d3530f4. (cherry picked from commit f4fcfcf) Prepare for Tiled 1.12.2 release CI: Corrected macOS version suffixes in artifact names The Qt 6.10.2 build's deployment target is macOS 13, but the artifact was named "macOS-11+". The Qt 5.15.2 build covers macOS 10.13 through 12, but the artifact was named "macOS-10.13-10.15". Updated both version_suffix values to match the actual minimum supported version, matching the manual rename done for 1.12.1. CI: Build snap for both amd64 and arm64 (mapeditor#4532) CI: Disabled Homebrew cask bump workflow (mapeditor#4533) Homebrew's BrewTestBot autobumps the tiled cask on a ~3-hour cadence, and brew bump-cask-pr refuses to run manually against autobumped casks. Set the job's if: to false; flip it back when BrewTestBot needs replacing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
snapcore/action-build appears effectively unmaintained: snapcore/action-build#1 (updating the action's Node.js runtime to node24) has been open since April with no maintainer response. As GitHub's node20 deprecation rolls in, this action becomes a liability.
Replace it with two inline steps:
sudo snap install --classic snapcraftsudo snapcraft --destructive-mode, with the sameSNAPCRAFT_BUILD_INFOandSNAPCRAFT_IMAGE_INFOenv vars the action used to set.--destructive-modebuilds directly on the runner (no LXD), which is faster and simpler. The job is pinned toubuntu-24.04so the host always matches the snap'sbase: core24.Test plan
Linux (snap)job and producestiled_*_amd64.snapsnap/manifest.yaml(fromSNAPCRAFT_BUILD_INFO=1)