Releasing
Eksperto
Gawing release ang isang nasubukang build. Para sa mga maintainer ang page na ito.
Bago ka magsimula
Link papunta sa Bago ka magsimula- Pumapasa ang bawat check sa Testing, kasama ang buong end-to-end na takbo at ang mahahaba at fault na takbo.
- May bagong bersyon na ang
CHANGELOG.md. - Naka-install ang Python 3 para sa mga release script.
Maghanda ng release
Link papunta sa Maghanda ng release-
Isulat ang
releases/notes-<version>.toml, halimbawareleases/notes-1.0.0.toml. Tingnan ang Release notes file. -
Suriin ito:
Terminal window python deploy/release/notes.py 1.0.0 --checkDapat wala kang makitang error. Ang bawal na salita, em dash, petsa, usapang paglulunsad o inuulit na highlight ay nagpapa-exit ng 1.
-
Buuin ang mga teksto ng release:
Terminal window python deploy/release/notes.py 1.0.0Dapat may makita kang 7 file sa
releases/out/1.0.0/. -
I-build ang image at simulan ito sa bagong config folder:
Terminal window docker build --file deploy/Dockerfile .Dapat makita mo ang wizard sa unang takbo.
-
Patakbuhin ang bawat check sa Testing sa computer mo. Lokal na tumatakbo ang mga test, hindi sa GitHub.
-
Ibigay ang bersyon sa maintainer. Ipu-push ng maintainer ang tag ng bersyon sa main, at iyon ang magsisimula ng release.
Mga pagpipilian
Link papunta sa Mga pagpipilianMga pangalan ng bersyon at tag
Link papunta sa Mga pangalan ng bersyon at tag| Bagay | Pangalan |
|---|---|
| Git tag (ipinu-push ng maintainer) | 1.0.0 (payak na numero, walang v) |
Tag ng image at version ng mga note |
1.0.0 |
Nagsisimula lang ang workflow para sa tag na X.Y.Z at humihinto kapag iba ang tag sa file na VERSION.
Mga tag ng image
Link papunta sa Mga tag ng imageBawat release ay nagpu-push ng tag ng bersyon nito at :latest.
Bawiin ang isang release
Link papunta sa Bawiin ang isang release- I-push ang susunod na bersyon na may ayos.
- Markahan ang masamang bersyon sa update list para hindi ito ialok ng mga install.
- Panatilihin ang tag.
Kung hindi gumana
Link papunta sa Kung hindi gumanaSintomas. Nag-e-exit ng 1 ang notes.py --check.
Dahilan. Sinisira ng notes file ang isang patakaran. Pinangangalanan ng mensahe ang linya.
Solusyon. I-edit ang notes file, hindi kailanman ang mga file sa releases/out, at patakbuhin muli.
Sintomas. Humihinto ang workflow na may VERSION says.
Dahilan. Magkaiba ang tag at ang file na VERSION.
Solusyon. Ayusin ang VERSION sa main at i-push ang susunod na tag ng bersyon.
Para sa mga eksperto
Link papunta sa Para sa mga ekspertoRelease notes file
Galing sa isang file ang bawat teksto ng release. Huwag kailanman i-edit nang mano-mano ang nabubuo nito.
| Field | Nilalaman |
|---|---|
version |
Payak na X.Y.Z |
theme |
Isang linya |
images |
Listahan ng {registry, name}. Docker Hub holyarrs/holyarrs lang |
docs_url |
Opsyonal. Ang walang laman ay walang link sa Docs |
[[highlights]] |
Eksaktong 3, bawat isa ay may line, issues at shot. Ang mga issue nila ay hindi lumalabas sa linya ng alinmang grupo |
[groups] |
Mga linya bawat lugar. Ang New ang default. Ang iba ay nagsisimula sa Changed: , Fixed: o Docs: . Bawat isa ay nagtatapos sa issue nito, tulad ng (#46). Ang lugar na wala pang 3 linya ay napupunta sa Also new |
| Opsyonal | [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. Nakatago ang mga bahaging walang laman |
Gumamit lang ng GitHub login kapag alam ito, sa notes file o sa releases/credits-map.json.
Ayos ng katawan: theme, Highlights, mga lugar (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, linya ng stats.
Output sa releases/out/<version>/ |
Gamit |
|---|---|
changelog.md |
Ang entry ng changelog |
github.md |
Ang katawan ng GitHub release |
update-notes.json |
Ang mga note na ipinapakita ng app |
reddit.txt |
Ang post sa Reddit |
discord-dm.txt, discord-announce.md |
Discord. Bawat isa ay nananatili sa ilalim ng 1,000 character |
roadmap-card.json |
Ang card ng roadmap |
Tumatanggap ang notes.py ng --file (ibang notes file), --map (ibang credits map), --out (ibang output folder) at --date. Nagbababala ang --check sa mahahabang linya at halos magkaparehong linya.
Ang workflow ng image
Nagsisimula ang workflow na HolyArrs - Release kapag na-push ang tag ng bersyon. May tatlong hakbang ito:
- I-build at i-push ang image para sa
linux/amd64,linux/arm64atlinux/arm/v7, na may tag ng bersyon atlatest. - I-update ang paglalarawan sa Docker Hub mula sa
README.md. - I-publish ang GitHub release gamit ang seksyon ng
CHANGELOG.mdpara sa bersyong ito.
Update list
Nagbabasa ang app ng pirmadong update list. Idinadagdag ng bawat release ang entry nito at pinipirmahan ito. Hindi kailanman napupunta sa repo ang signing key. Tinatanggihan ng HolyArrs ang listahang hindi nito ma-verify.
Pagkatapos ng release, tiyaking tugma ang label ng bersyon ng image sa tag, at bantayan ang mga bagong issue sa unang araw:
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrsTest template para sa Unraid
Ang deploy/release/nas-template.py ay nagsusulat ng Unraid user template para sa isang eksaktong image. Wala itong ipinu-pull, ini-install o pini-publish.
python deploy/release/nas-template.py --image 'holyarrs/holyarrs@sha256:<digest>' --config '/mnt/<pool>/appdata/holyarrs-test' --movies /mnt/user/holyarrs-test-data/movies --downloads /mnt/user/holyarrs-test-data/downloads --port 6262 --output holyarrs-test.xmlPalitan ang <digest> at <pool>.
| Flag | Tala |
|---|---|
--image |
Ang digest ng registry manifest, hindi ang ID ng Docker image |
--config |
Isang path ng pool. Tinatanggihan ng tool ang /mnt/user at /mnt/user0 |
--movies, --tv, --music, --downloads |
Opsyonal. Magkakahiwalay na mount ang magkakahiwalay na path, kaya nagkokopya ang mga import |
--port |
Ang default ay 6262 |
--allowed-hosts |
Opsyonal, mga host name na pinaghihiwalay ng kuwit |
--output |
Ang XML file na isusulat |
Itinatakda ng template ang PUID=99, PGID=100 at UMASK=022. Bigyan ng permiso sa pagsulat ang account na iyon sa test media. Ilagay ang file sa /boot/config/plugins/dockerMan/templates-user/ at piliin ito sa ilalim ng Docker > Add Container > Template (Docker > magdagdag ng container > template).
Kaugnay
Link papunta sa KaugnayLibre ang HolyArrs. Kung nakatipid ito ng oras mo, bigyan ito ng star sa GitHub, i-sponsor ito o ibili ako ng kape.