Fitur: Tambahkan opsi .autorc
untuk menyesuaikan pesan komit yang digunakan oleh plugin NPM ketika menabrak versi paket.
{
"bumpHeader": "{{version}}",
"bumpFooter": "[skip ci]"
}
Saya mungkin lebih suka tidak melakukan bump (seperti semantic-release
melakukannya):
{
"skipBumpCommit": true
}
Dengan bump commits dinonaktifkan, versi NPM terbaru adalah sumber kebenaran (atau mungkin sudah berfungsi seperti itu?) dan bidang "versi" di package.json
dapat disetel ke 0.0.0-development
atau serupa.
apakah lewati CI berbeda di travis? tanpa itu dalam pesan komit Anda, Anda dapat dengan mudah jatuh ke dalam lingkaran
auto
akan menggunakan lihat versi lokal dan versi yang diterbitkan dan pilih yang lebih tinggi untuk menghindari kesalahan npm. Apakah itu cukup?
apakah lewati CI berbeda di travis? tanpa itu dalam pesan komit Anda, Anda dapat dengan mudah jatuh ke dalam lingkaran
Saya sebenarnya tidak yakin. Jika itu diperlukan di header komit, maka biarlah. 😆
auto
akan menggunakan lihat versi lokal dan versi yang diterbitkan dan pilih yang lebih tinggi untuk menghindari kesalahan npm. Apakah itu cukup?
Ah, benarkah? Bagus. Apakah tidak ada bump commit yang dibuat dalam kasus itu?
Tidak, dalam hal ini kami menabrak versi yang diterbitkan karena Anda dapat menerbitkan lebih dari versi lama.
Saya mengalami kesulitan memvisualisasikan cara kerja skipBumpCommit
atau seperti apa hasil akhirnya. Untuk menjalankan shipit
Anda harus mengubah versi dalam beberapa cara, jadi saya tidak bisa melihat bagaimana Anda bisa keluar dari komit itu.
Apa pendapat Anda tentang shipit
melewatkan bump commit ketika versi di package.json
adalah sesuatu seperti 0.0.0-development
?
Paket dimulai pada 0.0.0-pengembangan
anda menjalankan version
ia mengembalikan benjolan berdasarkan PR, ia mengembalikan apa pun (tambalan, minor, utama) - katakanlah itu tambalan
Pembuatan changelog - (0.0.0-development => 0.0.0). Tapi Anda tidak ingin itu terjadi? Alih-alih tambahkan di bawah judul changelog '0.0.0-development'?
mempublikasikan waktu kait - itu akan 0.0.0-development => 0.0.0 dan mempublikasikan. tetapi Anda ingin development
terdeteksi dan lewati langkah publikasikan bersama-sama
buat rilis github - Alih-alih membuat rilis baru, perbarui yang lama dengan komit baru
Paket tetap di 0.0.0-pengembangan sampai ??? sementara perubahan menumpuk
Dua opsi jika itu yang Anda inginkan:
Jangan menjalankan auto shipit
sampai Anda ingin mulai merilis dan menerbitkan. Masih menambahkan label ke PR Anda. Saat Anda siap, tambahkan auto shipit
ke proses CI Anda dan itu akan menyertakan semua label PR dalam rilis pertama Anda.
Tulis plugin. Perilaku ini cukup unik dan tidak benar-benar sesuai dengan cara npm melakukan pembuatan versi. Saya pikir Anda bisa membuat plugin untuk menyelesaikan hal ini. Meskipun saya mungkin harus menambahkan satu atau dua kail untuk Anda gunakan.
Paket dengan versi 0.0.0-development
menunjukkan hal berikut:
version
di package.json
tidak boleh diubahKetika versi NPM baru harus diterbitkan, Otomatis harus menaikkan "versi saat ini" menggunakan npm version $(auto version)
.
Changelog menggunakan "versi saat ini" dari NPM (bukan dari package.json
).
Seperti biasa, rilis Github baru dibuat untuk setiap versi NPM.
Apakah saya sudah cukup jelas?
Versi di package.json tidak boleh diubah
Untuk memublikasikan versi baru ke NPM, Anda harus mengubah ini. Satu-satunya cara untuk meningkatkan "versi saat ini" dan tidak pernah mengubah yang lokal adalah dengan:
Saya cukup yakin saya memahami kasus penggunaan Anda.
A. Anda tidak ingin memublikasikan banyak versi saat Anda mengembangkan fitur melalui beberapa PRS
B. setelah versi baru harus diterbitkan, Anda ingin semua perubahan disertakan
Di mata saya, kami sudah memberi Anda dua cara untuk melakukan ini:
gunakan onlyPublishWithReleaseLabel
. versi baru tidak dibuat sampai Anda menambahkan label ini. Jadi Anda dapat melihat PR/kode apa pun tanpa label sebagai VERSION-development
saat Anda menggabungkan PR untuk fitur besar, gunakan skip-release
hingga Anda siap untuk sebuah versi, lalu gabungkan saja PR. Rilis baru berisi semua PR yang dilewati. Dalam hal ini Anda dapat melihat menambahkan label skip-release
sebagai menandakan bahwa versi Anda adalah VERSION-development
Bagaimana ini berbeda dari perilaku yang Anda inginkan?
Menurut saya, intinya adalah: Anda ingin menambahkan -development
ke versi Anda untuk mulai melewatkan rilis dan menghapusnya saat Anda siap untuk semua perubahan yang akan dirilis sekaligus.
untuk menyelesaikan kalimat terakhir saya, Anda mungkin bisa membuat plugin yang menggunakan beforeShipit
untuk memeriksa keberadaan -development
dalam versi dan membuat kesalahan jika ada. Ini akan mencegah shipit
bergerak maju sampai Anda menghapus -development
.
Satu-satunya masalah yang saya lihat dengan ini adalah bahwa itu juga akan gagal dalam pekerjaan CI.
Penafsiran yang menarik, tetapi tidak seperti yang saya maksudkan. 😅
Saya pada dasarnya menjelaskan cara kerja semantic-release
.
Saya _seharusnya_ mengatakan "Versi di package.json
hanya diubah sementara agar npm publish
berhasil" (bukan "Versi di package.json
tidak boleh diubah"). Yang benar-benar saya coba lakukan adalah menghindari komit benjolan sama sekali. :)
Ok jadi keadaan Anda akan berakhir adalah:
repo: hanya pernah memiliki versi 0.0.0-dev
npm: Memiliki versi asli setiap saat (ini yang digunakan untuk apa saja)
benar?
Seperti
if (auto.options.skipBumpCommit) {
// get published version
// change local version to publish
} else {
await execPromise('npm', [
'version',
latestBump || version,
'-m',
'"Bump version to: %s [skip ci]"'
]);
}
await setTokenOnCI();
await execPromise(
'npm',
!isPrivate && isScopedPackage
? ['publish', '--access', 'public']
: ['publish']
);
if (auto.options.skipBumpCommit) {
// change local version back to DEV
}
await execPromise('git', [
'push',
'--follow-tags',
'--set-upstream',
'origin',
'$branch'
]);
}
Ya, terlihat bagus!
auto
v4.0.0 kami datang lol. Sepertinya saya harus membagi pengait publish
. Ini akan menjadi plugin lain
Jika mau, Anda dapat memanggang fitur ini ke dalam Otomatis untuk saat ini, dan menunggu untuk membagi pengait publish
hingga plugin lain juga membutuhkannya. 😛
Ini seharusnya dimungkinkan melalui plugin sekarang dengan #247 (kemampuan semver). Hal pesan komit memerlukan sedikit perubahan konfigurasi dan tidak terlalu banyak membantu Anda. Tutup tetapi terbuka untuk PR!
Komentar yang paling membantu
auto
v4.0.0 kami datang lol. Sepertinya saya harus membagi pengaitpublish
. Ini akan menjadi plugin lain