Auto: Gunakan npm sebagai sumber kebenaran versi

Dibuat pada 8 Jan 2019  ·  10Komentar  ·  Sumber: intuit/auto

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.

enhancement

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

Semua 10 komentar

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:

  • Kami menghitung version menggunakan rilis terbaru - dapatkah ini dengan mudah beralih ke versi paket?
  • Rilis terbaru di github mungkin menjadi masalah. Saya tidak berpikir Anda benar-benar dapat mengatur "Rilis Terbaru" secara terprogram. Jadi saat memublikasikan patch ke 1.x itu akan menjadi rilis terbaru.

rilis/perubahan

  • getCurrentVersion mengembalikan lastRelease jika gt(lastRelease, lastVersion) - jadi ini juga perlu diperhatikan

ini 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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat