Erstens ist dieses Projekt großartig! Es ist _so_ viel besser als das, was ich vor Jahren mit https://github.com/ericclemmons/github-semantic-version begonnen habe. 😍
Beschreibe den Fehler
Ich arbeite daran, in https://github.com/ericclemmons/codelift/pull/58 von manuellen Releases (mit https://github.com/marketplace/actions/release-drafter) auf automatische zu wechseln
Als der GitHub endlich funktionierte (mit der Lerna release.sh
in https://intuit.github.io/auto/pages/getting-started.html#enabling-skip-release-label), ging meine PR von v0.5.0
bis v9.2.1
(https://github.com/ericclemmons/codelift/releases/tag/v9.2.1).
Fortpflanzen
canary
Veröffentlichung ist nicht geschnitten, sondern eine echte.Erwartetes Verhalten
lerna.json
oder dem aktuellen version
innerhalb von package.json
inkrementiert.Es gibt eine Möglichkeit, einen "ersten" Probelauf durchzuführen, damit die Migration von auto
sicher validiert werden kann, bevor echte Tags/Releases/Pakete veröffentlicht werden.
❯ yarn auto shipit --dry-run
yarn run v1.19.2
$ /Users/eric/Projects/ericclemmons/codelift/node_modules/.bin/auto shipit --dry-run
⚠ warning Published canary identifier would be: "-canary.f1bc352"
✨ Done in 4.37s.
Aber in der GitHub-Aktion gibt yarn auto shipit
zurück:
$ auto shipit
⚠ warning NPM: No "NPM_TOKEN" found in environment
✔ success Wrote authentication token string to /home/runner/.npmrc
⚠ warning lerna notice cli v3.20.2
lerna success found 2 packages
Error: Running command 'npx' with args [lerna, publish, 9.2.2-canary.58.f1bc352.0, --dist-tag, canary, --force-publish, --yes, --no-git-reset, --no-git-tag-version, --exact] failed
Changes:
- codelift: 0.5.0 => 9.2.2-canary.58.f1bc352.0
Desktop (bitte füllen Sie die folgenden Informationen aus):
Zusätzlicher Kontext
"auto": "^9.3.1",
auto release --dry-run
ist etwas hilfreicher als shipit
:
~/Projects/ericclemmons/codelift 58-release
❯ yarn auto release --dry-run
yarn run v1.19.2
$ /Users/eric/Projects/ericclemmons/codelift/node_modules/.bin/auto release --dry-run
ℹ info Last used release: v0.5.0
⚠ warning lerna notice cli v3.20.2
lerna success found 1 package
ℹ info Using release notes:
...
ℹ info Would have released (unless ran with "shipit"): v9.2.1
Nun, um herauszufinden, wie es zu v9.2.1
damit ich PRs entsprechend aktualisieren oder etwas anderes konfigurieren kann ...
Fortschritt ! Das Löschen des fehlerhaften Tags und das Entfernen der Versionshinweise scheinen die Verweise in GitHub-Aktionen zu beheben (obwohl local --dry-run immer noch v9.2.1 sieht):
git tag -d v9.2.1
git push --delete v9.2.1
- codelift: 0.5.0 => 0.5.1-canary.58.45c171c.0
Um herauszufinden, warum lokal (oder remote!) _jemals_ v9.2.1
aus v0.5.0
🤔
Das ist großartig, dass Sie auto
! Ich werde versuchen, das mit Ihnen zu debuggen.
@hipstersmoothie Mach dir keine Sorgen, eingräbst , ich https://github.com/ericclemmons/codelift/pull/58, bis ich eine Ziegelmauer treffe oder auf der anderen Seite herauskomme :D
Dies ist auf jeden Fall ein Bug auf unserer Seite. Das liegt daran, dass wir Ihre Beispiele finden, dasjenige mit der höchsten Version finden, das zufällig next
, und das verwenden, um die neueste Version zu finden, die zufällig v9.2.0
, die dann ein erhält Patch angewendet, um v9.2.1
.
Das Entfernen von version
aus den package.json
meiner privaten Beispiele ergab eine andere Ausgabe:
yarn auto release --dry-run
yarn run v1.19.2
$ /Users/eric/Projects/ericclemmons/codelift/node_modules/.bin/auto release --dry-run
ℹ info Last used release: v0.5.0
ℹ info Using release notes:
...
ℹ info Would have released (unless ran with "shipit"): v0.5.0
✨ Done in 5.88s.
Beachten Sie, dass es überhaupt nicht erhöht wurde 🤔
Rückt näher! Ich werde das released
Plugin entfernen und weiter tuckern:
$ auto shipit
✖ error None of the plugins that you are using implement the `canary` command!
"canary" releases are versions that are used solely to test changes. They make sense on some platforms (ex: npm) but not all!
Hoppla, ich bin ein Dummkopf. Ich habe übersehen, dass plugins
npm
plugins
überschreibt (ich ging davon aus, dass es als Standard bleiben würde, da es eine Abhängigkeit ist)
Beachten Sie, dass es überhaupt nicht inkrementiert wurde
Das ist einfach eine schlechte Nachricht. Eingehende PR, um klarer zu machen, was passiert
Erster Erfolg!!! 🎉
https://github.com/ericclemmons/codelift/pull/58/checks?check_run_id=408308903
Es ist cool, dies offen zu halten, aber wir können abbrechen, um Folgendes separat zu besprechen:
Validierung vor Freigabe:
--dry-run
als Teil des Abschnitts „Erste Schritte“. auto release --dry-run
war für mich der zuverlässigste Weg, Zugangsdaten, Plugins usw. zu validieren. Ich freue mich, diese PR bei Interesse einzureichen!Das Verhalten von 0.5.0
zu 9.2.1
:
auto release --dry-run
hätte die vorzeitige Veröffentlichung erspart, aber vielleicht ist die bessere Antwort, die Fehlerbehebung "Entferne version
aus allen Paketen mit "private": true
"?Wie funktioniert canary
mit mehreren offenen PRs?
@canary
zu installieren, sondern vielleicht @PR-123
. Dies könnte auch ein Dokumentations-/Sichtbarkeitsproblem sein, bei dem die GitHub-Aktion/Check mit einem Kommentar oder einer Angabe zur Installation der neuesten Version zurückkehren könnte (z. B. https://zeit.co/github#features)."Entferne Version aus allen Paketen mit "private": true"
Fertig in #894
Bei Interesse reiche ich diese PR gerne ein!
Bitte pr. einreichen! Es ist wertvoll, verschiedene Standpunkte zu haben.
Ich würde die Benutzer auch nicht anweisen, das Canary-Tag zu installieren. Das Veröffentlichen unter diesem Tag ist mehr als das Veröffentlichen unter etwas anderem als dem neuesten. Es fungiert als Catch-All. Ein Tag wie PR-123
ist schön und Auto könnte das wahrscheinlich tun, wir müssten nur die Tags bereinigen, nachdem der Versand fertig ist. Dies wäre wahrscheinlich auch etwas benutzerfreundlicher.
Dies könnte auch ein Dokumentations-/Sichtbarkeitsproblem sein, bei dem die GitHub-Aktion/Prüfung mit einem Kommentar oder einer Angabe zur Installation der neuesten Version zurückkehren könnte
Sie haben es vielleicht nicht bemerkt, aber das passiert bereits. Überprüfen Sie Ihre PR
https://github.com/ericclemmons/codelift/pull/58#issue -367063354
Aber Achtung: GitHub-Aktionen geben keine Geheimnisse an Forks weiter! So erhalten gegabelte PRs keine Canary-Releases zur Veröffentlichung.
@ericclemmons sollten Sie yarn install --frozen-lockfile
in CI-Umgebungen ausführen.
Auch [email protected]
sollte ein schöneres --dry-run
Erlebnis haben
Veröffentlichte PR mit Canary-Version:
0.5.1-canary.58.fea0a94.0
Oh, heiliger Mist! Es war so subtil, dass ich es nicht bemerkt habe!
Was halten Sie von einer PR, damit sie etwas visueller wird?
📦 Veröffentlichte PR mit Canary-Version:
0.5.1-canary.58.fea0a94.0
Ich bin immer auf der Suche nach mehr Emojis!
Zwei weitere Plugins, die dir gefallen könnten, sind
https://intuit.github.io/auto/plugins/all-contributors/README.html
https://intuit.github.io/auto/plugins/first-time-contributor/README.html
Danke für deine Aufmerksamkeit heute Abend @hipstersmoothie. Das hat bisher super geklappt!
Ich bin ehrlich gesagt überrascht, wie gut es funktioniert! Das ist kein einfaches Problem 😅😅
Zum Thema Monorepos suche ich Alternativen für https://github.com/aws-amplify/amplify-js/ :
Sie haben Recht: Bei mehreren PRs im Flug wird canary
widersprüchlich. Die derzeit beste Lösung wäre, Pakete mit einer GitHub-Aktion zu bereinigen, die PR-123
wenn PR-123
nicht geöffnet ist. (Ein Tag wie PR-123
zu haben, um immer auf das Neueste zu verweisen, ist IMO auch praktisch)
Amplify verwendet independent
Versionierung: Wie funktioniert das mit auto
?