バグを説明する
プレリリースブランチで(yarn/npx) auto shipit
を実行している場合、 package.json
は更新されません。
その場合、 (yarn/npx) auto shipit --dry-run --quiet
は正しいバージョン番号を報告していません。
これにより、バージョン番号がDockerイメージやその他のアーティファクトのタグ付けに使用されるため、ダウンストリームで問題が発生します。
再現するには
next
コミットするauto shipit
はGithubアクションで実行されますauto
がgithubに正しくリリースされました予想される行動
package.jsonが更新されるか、 auto shipit --dry-run
がプレリリースのタグに基づいて計算されます。
環境情報:
「現在のバージョン」はここではすでに間違っています。現在のタグはv0.2.0-next.11です。
yarn run v1.22.10
$ /home/rwa/Project/####/node_modules/.bin/auto info
Environment Information:
"auto" version: v9.59.1
"git" version: v2.29.0
"node" version: v14.14.0
Project Information:
✔ Repository: #####
✔ Author Name: Robert Wawrzyniak
✔ Author Email: robert.wawrzyniak@###.de
✔ Current Version: v0.2.0-next.10
✔ Latest Release: v0.1.0 (https://github.com/####/releases/tag/v0.1.0)
✔ Labels configured on GitHub project
GitHub Token Information:
✔ Token: [Token starting with 62de]
✔ Repo Permission: admin
✔ User: thuringia
✔ API: undefined (undefined)
✔ Enabled Scopes: repo
✔ Rate Limit: 4772/5000
Done in 3.39s.
Time: 0h:00m:04s
追加のコンテキスト
これは#1490に関連している可能性がありますか?
これは仕様によるもののようです。
https://github.com/intuit/auto/blob/2f03089f43cc098ac2687c7ab3ca5fd8d2502a1c/plugins/npm/src/index.ts#L869
ここでは、バンプはベースブランチに対してのみ実行されますが、これを変更するための構成フラグはありません。
これは仕様によるものです。 バージョンがコミットされている場合、マスターにマージするときにマージの競合が発生する可能性があります。 作成されたgitタグがあります
この問題は私にも影響を及ぼしています。
これは仕様によるものです。 バージョンがコミットされている場合、マスターにマージするときにマージの競合が発生する可能性があります。 作成されたgitタグがあります
確実にするために推奨されるアプローチは何であるpackage.json
使用してCIの導入に同期したバージョンの滞在auto shipit
?
@smithkiのユースケースを完全に理解しているかどうかはわかりません。 @thuringiaのユースケースは理にかなっています。彼は他のものを更新するためのバージョンが必要ですが、私は動作を変更することをかなり躊躇しています。 あなたが達成しようとしていることを詳しく説明できますか?
申し訳ありませんが、誤解している可能性があります。 問題の文言から、私はと推測next
更新が届かない枝package.json
バージョンを、しかしmain
支店(まだ学んでくださいauto
ここに-総初心者) 。 私のユースケースは元の問題と同じですが、具体的には次のとおりです。
現在のpackage.json
バージョンを環境変数として挿入できるように、NPMライブラリの_build_時にpackage.json
バージョンを読み取る必要があります。 これは、ビルドを実行する前にpackage.json
ファイルをバージョン管理する必要があることを意味します。 package.json
インポートするだけでは、 tsconfig.json
rootDirs
に依存する現在のTypeScriptセットアップではうまく機能しません( package.json
はrootDirs
含まれていません)
この問題の元のトピックを狂わせるつもりではなく、回避できるかどうかを確認します。
あなたはただ自動車がすることをすることができますか? https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L306 -L310
残念ながら、コードはクライアント側で実行することを目的としているため、そうではありません(回避策が見つからない場合は、新しい問題を開きます)。
ああ、ドライランの動作を後でではなく早く修正するための別の投票。 次の週末にすべてを修正する方法を見ていきます。 フィードバックとauto
をご利用いただきありがとうございます。
@hipstersmoothie迅速な対応に感謝します:)あなたはいつも私を驚かせます
今のところ、かなり確実な回避策、 auto shipit --dry-run --plugins git-tag
を見つけました。 とにかく、プレリリースのためにこの方法で次のバージョンをチェックすることは、実際には非常に理にかなっています。
ドライランの改善をすぐに試していただきありがとうございます。 試してみたいカナリアビルドがある場合は、お知らせください。 喜んでお手伝いさせていただきます。
とにかく、 auto
ありがとうございます! それは私の人生をとても楽にしてくれました
@thuringia @smithki v10で問題が解決するかどうかをテストして確認できますか?
@hipstersmoothieこれはv10で
ただし、著しく遅くなります。つまり、 shipit
なしで--dry-run
shipit
を実行するのと同じくらい時間がかかります。
これをとても早く出してくれてありがとう!
それがバグかどうかわからない:
yarn add -D auto@next
を使用してパッケージをアップグレードすると、 auto shipit --dry-run
実行した後、 package.json
とyarn.lock
がなくなりました。 v10はまだnode_modules
あったので、作業ディレクトリがリセットされたようです。
ただし、著しく遅くなります。つまり、-dry-runを使用せずにshipitを実行するのと同じくらい時間がかかります。
私はそれを改善できるかどうかを確認します。 しかし、プラグインを呼び出しているので、実際の次のバージョンを印刷するためにさらに多くの作業を行っています。
auto shipit --dry-runを実行した後、package.jsonとyarn.lockへの変更はなくなりました
ああ、これはバグです。 ドライランの場合、クリーンチェックをスキップしましたが、gitリセットをスキップしませんでした
@thuringiaどのような種類のプロジェクトをリリースしていますか?
@hipstersmoothieドライランが遅くなった
ただし、パフォーマンスの向上はいつでも歓迎します。
この場合、それは主にJavaアプリケーションとその周りにいくつかのラムダで構成される混合プロジェクトです。 リリースを作成するには、次のことを行う必要があります。
auto
デフォルトのユースケースではありません😂
通常、セットアップがより合理化されたNodeまたはReactプロジェクトに使用しますが、この特定のプロジェクトに必要なように、リリースを実際に公開する前にバージョン番号を取得する必要はありませんでした。
:rocket:問題はv10.0.0
リリースされました:rocket:
最も参考になるコメント
ああ、ドライランの動作を後でではなく早く修正するための別の投票。 次の週末にすべてを修正する方法を見ていきます。 フィードバックと
auto
をご利用いただきありがとうございます。