Auto: Pesan komit benjolan khusus

Dibuat pada 20 Jan 2019  ·  18Komentar  ·  Sumber: intuit/auto

Fitur: Tambahkan opsi .autorc untuk menyesuaikan pesan komit yang digunakan oleh plugin NPM ketika menabrak versi paket.

{
  "bumpHeader": "{{version}}",
  "bumpFooter": "[skip ci]"
}
enhancement

Komentar yang paling membantu

auto v4.0.0 kami datang lol. Sepertinya saya harus membagi pengait publish . Ini akan menjadi plugin lain

Semua 18 komentar

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 ?

  1. Paket dimulai pada 0.0.0-pengembangan

  2. anda menjalankan version ia mengembalikan benjolan berdasarkan PR, ia mengembalikan apa pun (tambalan, minor, utama) - katakanlah itu tambalan

  3. 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'?

  4. 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

  5. buat rilis github - Alih-alih membuat rilis baru, perbarui yang lama dengan komit baru

  6. Paket tetap di 0.0.0-pengembangan sampai ??? sementara perubahan menumpuk

Dua opsi jika itu yang Anda inginkan:

  1. 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.

  2. 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:

  • Versi NPM tertinggi yang diterbitkan dianggap sebagai "versi saat ini"
  • version di package.json tidak boleh diubah

Ketika 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:

  • ubah ke versi saat ini (NPM)
  • lakukan benturan
  • ubah kembali
  • tapi karena tag akan menjadi versi bump saat ini lakukan ???

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:

  1. gunakan onlyPublishWithReleaseLabel . versi baru tidak dibuat sampai Anda menambahkan label ini. Jadi Anda dapat melihat PR/kode apa pun tanpa label sebagai VERSION-development

  2. 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!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

aleclarson picture aleclarson  ·  14Komentar

theAdhocracy picture theAdhocracy  ·  6Komentar

brunobertoldi picture brunobertoldi  ·  8Komentar

aleclarson picture aleclarson  ·  14Komentar

shilman picture shilman  ·  7Komentar