{{ $version->published_at->format('d M Y') }}{{ $version->published_at->diffForHumans(short: true) }}
@else
Not published
@endif
{{-- Downloads relative to the most-downloaded release, so the bar answers
"is this one being taken up?" rather than showing a raw number twice. --}}
{{ number_format($downloads) }}
{{-- Relative to the most-downloaded release, computed once for the
whole table rather than per row. --}}
@if ($installed + $failed > 0)
{{ round($installed / ($installed + $failed) * 100) }}% ok
@else
no installs
@endif
id }})">
View details
Open release page
@if ($canManage)
Edit & upload package
@endif
@if ($hasPackage)
checksum_sha256) }}, 'SHA-256 copied')">
Copy checksum
@endif
@if ($canManage)
{{-- Publish is refused server-side without a package and an
offline signature. The menu says so up front rather than
letting the click produce a red banner. --}}
@if (! $version->isPublished())
@if ($hasPackage && $signed)
@else
Publish ({{ $hasPackage ? 'unsigned' : 'no package' }})
@endif
@else
@endif
{{-- Deleting a published release is refused by the server; the
hint names the way out rather than just greying it. --}}
@if ($version->isPublished())
Delete (hide it first)
@else
@endif
@endif
{{-- Expandable release notes. A real table row so the columns above it stay
aligned; hidden until asked for, and moved with its version when sorted. --}}
@if (filled($version->release_notes))
{{-- The notes come from the Alpine model the page already carries,
not a second inline copy — with 3 KB of notes per release the
duplicate was a third of the page's HTML. --}}
Open the full release page