feat(app): allow pinning system-software versions on app create#1954
Merged
Conversation
5f2bc90 to
3531ee6
Compare
Member
Author
|
Converted back to draft status; there's an API change in the works that would allow us to set the system software versions with a single API call while installing the app. |
Add a `--set <dependency>=<version>` flag to the custom runtime create commands (`app create php|php-worker|node|python`) that pins the system-software (runtime) version at creation time, mirroring `app dependency update`. Previously the newest available runtime was always assigned, requiring a second `app dependency update` call. The dependency-resolution logic is extracted into a shared `updateAppDependencies` helper used by both the create flow and the `app dependency update` command. Closes #1951 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the no-op `new Range(...)` truthiness check with semver's `validRange`, so an invalid version constraint surfaces the intended friendly error instead of a raw semver TypeError. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump @mittwald/api-client to ^4.400.0, whose requestAppinstallation endpoint accepts a systemSoftware map directly. Resolve the requested system-software versions before creating the installation and pass them into the create request, so pinning no longer needs a follow-up patchAppinstallation call. The resolution logic is extracted into resolveSystemSoftwareUpdates, shared by the create flow and the app dependency update command. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
f5d71c8 to
7f26e44
Compare
gandie
reviewed
Jul 1, 2026
81de312 to
7f26e44
Compare
gandie
approved these changes
Jul 1, 2026
mittwald-machine
added a commit
that referenced
this pull request
Jul 1, 2026
# [1.19.0](v1.18.0...v1.19.0) (2026-07-01) ### Bug Fixes * **project:** handle inaccessible customer in project get ([#1956](#1956)) ([203a95b](203a95b)) ### Features * **app:** allow pinning system-software versions on app create ([#1954](#1954)) ([5bd527b](5bd527b)) * **experimental/deploy:** make image and service name configurable ([#1962](#1962)) ([47ba831](47ba831)), closes [#1960](#1960)
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
Closes #1951.
mw app create php|node|pythonpreviously offered no way to choose the runtime / system-software version — the newest available version was always assigned, so version-sensitive apps (e.g. Shopware 6.6 on PHP 8.5) would fail to start and required a secondmw app dependency updatecall.This adds a
--set <dependency>=<version>flag to the custom-runtime create commands (php,php-worker,node,python) that pins the system-software version right after the installation is created, mirroring the existingmw app dependency update --setsyntax.Changes
app dependency updateinto a sharedupdateAppDependencieshelper (src/lib/resources/app/dependencies.tsx), now used by both the create flow and the update command.setflag to the shared app flag set and wired it into the four custom-runtime create commands viaAppInstaller.AppInstaller.execapplies the pinned versions (update policypatchLevel) after creating the installation and before waiting for it to normalize.userInputspayload intriggerAppInstallationso the array-valuedsetflag isn't serialized as a user input.php,node, andpythoncreate commands.🤖 Generated with Claude Code