Apakah permintaan fitur Anda terkait dengan masalah?
Kami mengalami beberapa masalah saat penerapan gagal karena versi tertentu sudah diterapkan. Ini bukan proses normal yang seharusnya terjadi pada rilis otomatis... tapi itu memang terjadi. Kami memiliki bug tadi malam dan seseorang memutuskan untuk menyebarkan secara manual ke npm tanpa menabrak versi package.json. Itu menyebabkan semuanya masuk ke keadaan buruk yang tidak terselesaikan sampai kami secara manual menabrak versinya.
Jelaskan solusi yang Anda inginkan
Terus perbarui bidang version
di package.json, tetapi gunakan versi npm sebagai sumber kebenaran. Berikan peringatan jika ada ketidakcocokan, tetapi perbarui versi berdasarkan yang ada di npm, bukan yang ada di package.json.
Oooh aku suka itu. Ini mungkin rumit untuk monorepos
Karena kita melakukan --force-publish=*
untuk lerna, seharusnya tidak menjadi masalah karena semua paket harus memiliki versi yang ditautkan.
Di masa depan jika kami menghapus bendera itu, kami harus... idk
Kami juga hanya menjalankan npm version
yang hanya membutuhkan string semver. Kami sebenarnya tidak menetapkan nomor paket di mana pun saat ini. Tidak akan sulit untuk mengaturnya sendiri tetapi monorepo sepertinya tidak akan mudah
Sebagian besar perintah juga bekerja pada tag, jadi jika rilis tidak diberi tag, itu dapat menyebabkan beberapa masalah.
"Saya semakin yakin bahwa mode pembuatan versi "independen" adalah sebuah kesalahan. Yang dilakukannya hanyalah membuat orang membuang paket acak ke dalam satu repositori dan kemudian mengeluh ketika mereka harus membuat versi pada saat yang sama." ~ dari pengelola lerna.
Jadi --force-publish=*
tampaknya baik-baik saja.
--force-publish
dan versi independen bukanlah hal yang sama.
Secara default, lerna hanya akan memublikasikan pembaruan ke sebuah paket jika ada perubahan pada paket tersebut, dengan menggunakan --force-publish=*
kami memaksa lerna untuk memublikasikan versi semua paket meskipun tidak ada perubahan sejak publikasi terakhir.
yaitu paket A
memiliki perubahan, B
tidak. lerna hanya akan menerbitkan versi baru A
( B
akan tetap pada versi saat ini). Rilis berikutnya A
dan B
memiliki perubahan, keduanya akan diterbitkan dengan versi baru yang sama.
Sesuatu yang telah saya pikirkan (dan saya tidak yakin apakah ini adalah hal yang akan kami dukung) adalah potensi rilis yang bukan master
(atau cabang utama). Sampai saat ini, kami selalu berasumsi bahwa ada 1 jalur untuk rilis -- dan mereka selalu linier (menggunakan versi latest
pada npm atau github).
Apa yang terjadi jika perlu menambal rilis sebelumnya? (1.x memiliki bug, master
ada di 2.x tetapi Anda ingin menambal 1.xw/ perbaikan juga) Jika kita keluar dari lerna
atau pkg
Versi
Jika kita mengubah ini untuk menggunakan sesuatu di luar pohon git, saya rasa kita tidak akan dapat mendukung perilaku itu, karena hanya ada 1 latest
pada npm (atau dari mana pun kita mengambil versi terbaru)
Itu sepertinya fitur yang bagus. Mungkin perlu beberapa pekerjaan untuk diterapkan.
Versi: kapan:
version
menggunakan rilis terbaru - dapatkah ini dengan mudah beralih ke versi paket?rilis/perubahan
getCurrentVersion
mengembalikan lastRelease jika gt(lastRelease, lastVersion) - jadi ini juga perlu diperhatikanini berarti kita sudah menggunakan hal-hal di luar pohon git, bukan?
Kami perlu bergantung pada recentRelease untuk memastikan bahwa ia memiliki tag git yang terkait dengannya, jadi beralih bukanlah pilihan karena kami tidak dapat memastikan bahwa versi npm terbaru memiliki tag (seperti pada hal yang dijelaskan oleh masalah ini) .
Saya pikir kita mungkin memerlukan flag baru yang versi dari tag git terakhir. --from-git
Dengan itu perintah rilis mungkin akan berfungsi. Kita harus memilah seperti apa changelog itu.
flag --from-git
juga dapat mengesampingkan melihat NPM untuk apa pun. Saya pikir itu berarti kita dapat menggabungkan #173
Komentar yang paling membantu
Kami perlu bergantung pada recentRelease untuk memastikan bahwa ia memiliki tag git yang terkait dengannya, jadi beralih bukanlah pilihan karena kami tidak dapat memastikan bahwa versi npm terbaru memiliki tag (seperti pada hal yang dijelaskan oleh masalah ini) .
Saya pikir kita mungkin memerlukan flag baru yang versi dari tag git terakhir.
--from-git
Dengan itu perintah rilis mungkin akan berfungsi. Kita harus memilah seperti apa changelog itu.
flag
--from-git
juga dapat mengesampingkan melihat NPM untuk apa pun. Saya pikir itu berarti kita dapat menggabungkan #173