Skip to content

Decide whether the first release carries one plugin or two #65

Description

@iderex

decisions/first-release.md decides the catalogue's first release carries one
plugin, and it argued that against a source set in which exactly one repository
had published anything. A second one has now published, so the input to that
argument has moved and the answer is a maintainer's rather than a rewrite of the
file.

The evidence

for r in discover invites metadata-sync requests server-pairing share-links \n             smart-collections sso stats watch-sync watchlist whisper-subtitles; do
  printf "%s %s

" "$r" "$(gh api "repos/Flowfin/jellyfin-plugin-$r/releases?per_page=100" --jq 'length')"
done
discover 0
invites 0
metadata-sync 0
requests 1
server-pairing 0
share-links 0
smart-collections 0
sso 54
stats 0
watch-sync 0
watchlist 0
whisper-subtitles 0

Run 2026-08-08. The release on requests is a finished build rather than a test
one, and it carries an archive and sidecars in the same shape the pairing rule
was written against:

gh api 'repos/Flowfin/jellyfin-plugin-requests/releases?per_page=100' \n      --jq '.[] | {tag: .tag_name, prerelease, draft, assets: [.assets[].name]}'
{"assets":["requests_0.1.0.0.md5","requests_0.1.0.0.sha256","requests_0.1.0.0.zip","requests_0.1.0.0.zip.meta.json"],"draft":false,"prerelease":false,"tag":"0.1.0.0-stable"}

Run 2026-08-08. Its tag matches the same pattern the channel decision declares for
the other repository, so nothing about the split has to change for it to be
classifiable.

What is at stake either way

One entry. The argument already in decisions/first-release.md holds: fewer
things to debug against a real server, and the catalogue grows with no change here
when the second one is added. The cost is that a plugin which is ready is left out
of a catalogue that exists, and somebody has to decide when it goes in.

Two entries. The catalogue ships what is actually publishable, and the per-plugin
parts of the generator get exercised against two sources rather than one, which is
where a field that only ever held one value shows itself. The cost is that the
first install test now depends on two repositories being right rather than one,
and the second one has a single release with no history behind it.

What does not change either way: the generator reads a declaration rather than a
list written into it, so this decides what the declaration says on the day of the
release and not what the code can do.

Done when

decisions/first-release.md states how many entries the first release carries and
why, against the counts above rather than against the ones it was written with.
Reading-decidable.

Metadata

Metadata

Assignees

Labels

blocked-on-leadWartet auf eine Entscheidung des LeadsquestionFurther information is requested

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions