@props([]) {{-- | The release editor's fields — one definition, two hosts. | | The standalone page (versions/form.blade.php) and the upload modal on the | index both render this, so a field can never exist on one and not the other. | Plain named inputs with server-rendered values: the page submits normally, and | the modal reads the same fields out of the form with FormData. | | Requires in scope: $version (a UpdateVersion, possibly unsaved), $errorFor | (a closure returning an Alpine expression or null — the modal shows XHR | validation errors, the page shows @error output). --}} @php $old = fn (string $field, $fallback = null) => old($field, $version->$field ?? $fallback); $products = ['cms' => 'TaxPilot CMS', 'ai' => 'TaxPilot AI']; $channels = [ 'stable' => ['Stable', 'Every installation'], 'beta' => ['Beta', 'Opt-in installs only'], ]; @endphp
Semantic versioning — 1.3.2 or 1.3.2-beta.
{{ $message }}
@enderrorOptional. Shown beside the number.
@error('release_name'){{ $message }}
@enderrorAn installation only ever receives releases of the product it asks for.
@error('product'){{ $message }}
@enderror{{ $message }}
@enderror{{ $message }}
@enderror{{ $message }}
@enderrorRe-detected from inside the archive on upload — what is in the ZIP wins.
@error('package_type'){{ $message }}
@enderrorMarkdown. Group into New Features / Improvements / Bug Fixes / Security Fixes / Database Changes.
@error('release_notes'){{ $message }}
@enderror
sha256: {{ $version->checksum_sha256 }}
Re-uploading replaces this file, clears its signature and returns the release to draft.
{{ $message }}
@enderror
updates:sign before it can be
published — clients reject unsigned releases.