Pertama, proyek ini hebat! Ini _so_ jauh lebih baik daripada yang saya mulai bertahun-tahun yang lalu dengan https://github.com/ericclemons/github-semantic-version . 😍
Jelaskan bugnya
Saya sedang berupaya untuk beralih dari rilis manual (dengan https://github.com/marketplace/actions/release-draft ) ke otomatis di https://github.com/ericclemons/codelift/pull/58.
Dengan GitHub akhirnya berfungsi (menggunakan lerna release.sh
di https://intuit.github.io/auto/pages/getting-started.html#enabling-skip-release-label), PR saya berubah dari v0.5.0
hingga v9.2.1
(https://github.com/ericclemons/codelift/releases/tag/v9.2.1).
Untuk Mereproduksi
canary
tidak dipotong, melainkan yang asli.Perilaku yang diharapkan
lerna.json
, atau version
dalam package.json
.Ada cara menjalankan dry-run "pertama kali" sehingga migrasi auto
dapat divalidasi dengan aman sebelum tag/rilis/paket asli dipublikasikan.
❯ yarn auto shipit --dry-run
yarn run v1.19.2
$ /Users/eric/Projects/ericclemmons/codelift/node_modules/.bin/auto shipit --dry-run
⚠ warning Published canary identifier would be: "-canary.f1bc352"
✨ Done in 4.37s.
Tetapi di GitHub Action, yarn auto shipit
mengembalikan:
$ auto shipit
⚠ warning NPM: No "NPM_TOKEN" found in environment
✔ success Wrote authentication token string to /home/runner/.npmrc
⚠ warning lerna notice cli v3.20.2
lerna success found 2 packages
Error: Running command 'npx' with args [lerna, publish, 9.2.2-canary.58.f1bc352.0, --dist-tag, canary, --force-publish, --yes, --no-git-reset, --no-git-tag-version, --exact] failed
Changes:
- codelift: 0.5.0 => 9.2.2-canary.58.f1bc352.0
Desktop (harap lengkapi informasi berikut):
Konteks tambahan
"auto": "^9.3.1",
auto release --dry-run
sedikit lebih bermanfaat daripada shipit
:
~/Projects/ericclemmons/codelift 58-release
❯ yarn auto release --dry-run
yarn run v1.19.2
$ /Users/eric/Projects/ericclemmons/codelift/node_modules/.bin/auto release --dry-run
ℹ info Last used release: v0.5.0
⚠ warning lerna notice cli v3.20.2
lerna success found 1 package
ℹ info Using release notes:
...
ℹ info Would have released (unless ran with "shipit"): v9.2.1
Sekarang untuk mencari tahu bagaimana caranya menjadi v9.2.1
sehingga saya dapat memperbarui PR yang sesuai atau mengonfigurasi sesuatu yang berbeda ...
Kemajuan ! Menghapus tag buruk & menghapus catatan rilis tampaknya memperbaiki referensi di GitHub Actions (meskipun lokal --dry-run masih melihat v9.2.1):
git tag -d v9.2.1
git push --delete v9.2.1
- codelift: 0.5.0 => 0.5.1-canary.58.45c171c.0
Sekarang untuk mencari tahu mengapa lokal (atau jarak jauh!) _ever_ muncul dengan v9.2.1
dari v0.5.0
Ini luar biasa bahwa Anda menggunakan auto
! Saya akan mencoba men-debug ini dengan Anda.
@hipstersmoothie Jangan khawatir tentang menggali terlalu banyak sekarang, saya masih meretas di https://github.com/ericclemons/codelift/pull/58 sampai saya menabrak dinding bata atau keluar dari sisi lain :D
Ini pasti bug di pihak kami. Itu karena kami menemukan contoh Anda, temukan yang dengan versi tertinggi, yang kebetulan next
, dan gunakan itu untuk menemukan versi terbaru, yang kebetulan v9.2.0
, yang kemudian mendapat patch diterapkan untuk mendapatkan v9.2.1
.
Menghapus version
dari contoh pribadi saya package.json
memberikan hasil yang berbeda:
yarn auto release --dry-run
yarn run v1.19.2
$ /Users/eric/Projects/ericclemmons/codelift/node_modules/.bin/auto release --dry-run
ℹ info Last used release: v0.5.0
ℹ info Using release notes:
...
ℹ info Would have released (unless ran with "shipit"): v0.5.0
✨ Done in 5.88s.
Perhatikan itu tidak bertambah sama sekali
Semakin dekat! Akan menghapus plugin released
dan terus melanjutkan:
$ auto shipit
✖ error None of the plugins that you are using implement the `canary` command!
"canary" releases are versions that are used solely to test changes. They make sense on some platforms (ex: npm) but not all!
Ups, aku bodoh. Saya melewatkan plugins
menimpa npm
(saya berasumsi itu akan tetap sebagai default karena ini adalah ketergantungan)
Perhatikan itu tidak bertambah sama sekali
Ini hanya pesan yang agak buruk. PR masuk untuk membuat apa yang terjadi lebih jelas
Sukses pertama!!! 🎉
https://github.com/ericclemons/codelift/pull/58/checks?check_run_id=408308903
Saya tidak keberatan untuk tetap membuka ini, tetapi kita dapat memutuskan untuk membahas hal-hal berikut secara terpisah:
Validasi sebelum rilis:
--dry-run
sebagai bagian dari bagian Memulai. auto release --dry-run
telah menjadi cara yang paling dapat diandalkan bagi saya untuk memvalidasi kredensial, plugin, dll. Saya senang untuk mengirimkan PR ini jika Anda tertarik!Perilaku 0.5.0
ke 9.2.1
:
auto release --dry-run
akan menyelamatkan penerbitan prematur, tetapi mungkin jawaban yang lebih baik adalah menambahkan ke Pemecahan Masalah "Hapus version
dari paket apa pun dengan "private": true
"?Bagaimana cara kerja canary
dengan beberapa PR terbuka?
@canary
, tetapi mungkin @PR-123
. Ini juga bisa menjadi masalah dokumentasi/visibilitas di mana GitHub Action/Check dapat kembali dengan komentar atau indikasi cara menginstal yang terbaru (mis. https://zeit.co/github#features)"Hapus versi dari paket apa pun dengan "pribadi": true"
Selesai di #894
Saya senang untuk mengirimkan PR ini jika Anda tertarik!
Silakan kirim pr! Sangat berharga untuk memiliki sudut pandang yang berbeda.
Saya juga tidak akan menginstruksikan pengguna untuk memasang tag kenari. Menerbitkan ke tag itu lebih hanya untuk menerbitkan di bawah sesuatu selain yang terbaru. Ini bertindak sebagai menangkap semua. Memiliki tag seperti PR-123
bagus dan otomatis mungkin bisa melakukannya, kita hanya perlu membersihkan tag setelah pengiriman selesai. Ini mungkin akan sedikit lebih ramah pengguna juga.
Ini juga bisa menjadi masalah dokumentasi/visibilitas di mana Tindakan/Pemeriksaan GitHub dapat kembali dengan komentar atau indikasi cara menginstal yang terbaru
Anda mungkin tidak menyadarinya tetapi ini sudah terjadi. Periksa PR Anda
https://github.com/ericclemons/codelift/pull/58#issue -367063354
Perhatian besar: Tindakan GitHub tidak memberikan rahasia ke fork sama sekali! Jadi PR bercabang tidak akan mendapatkan rilis kenari untuk diterbitkan.
@ericclemons Anda harus menjalankan yarn install --frozen-lockfile
di lingkungan CI.
Juga [email protected]
harus memiliki pengalaman --dry-run
baik
Publikasi PR dengan versi canary:
0.5.1-canary.58.fea0a94.0
Oh, sial! Itu sangat halus sehingga saya tidak menyadarinya!
Apa pendapat Anda tentang PR agar sedikit lebih visual?
Publikasi PR dengan versi canary:
0.5.1-canary.58.fea0a94.0
Saya selalu sedih untuk lebih banyak emoji!
Dua plugin lain yang mungkin Anda sukai adalah
https://intuit.github.io/auto/plugins/all-contributors/README.html
https://intuit.github.io/auto/plugins/first-time-contributor/README.html
Terima kasih atas perhatiannya malam ini @hipstersmoothie. Ini telah bekerja dengan baik sejauh ini!
Seperti, saya benar-benar terkejut seberapa baik kerjanya! Ini bukan masalah yang mudah untuk dipecahkan
Pada topik monorepos, saya mencari alternatif untuk https://github.com/aws-amplify/amplify-js/ :
Anda benar: dengan beberapa PR dalam penerbangan canary
menjadi bertentangan. Solusi terbaik yang ada dalam pikiran saat ini adalah memiliki paket prune GitHub Action yang berisi PR-123
jika PR-123
tidak terbuka. (Memiliki tag seperti PR-123
untuk selalu merujuk yang terbaru juga berguna IMO)
Amplify menggunakan versi independent
: bagaimana cara kerjanya dengan auto
?