React: Freigabeprozess modernisieren

Erstellt am 29. Apr. 2016  ·  3Kommentare  ·  Quelle: facebook/react

Es ist viel zu viel Arbeit, jetzt eine React-Veröffentlichung zu machen. An diesem Punkt ist es für mich hauptsächlich Muskelgedächtnis, aber es sollte für jeden einfach sein, es zu tun. In der Vergangenheit habe ich bestimmte Schritte manuell gehalten, weil ich Dinge vermasselt habe und in der Lage sein wollte, anzuhalten und zu überprüfen.

Es gibt ein paar Dinge, die zur Schwierigkeit beitragen:

  • Verwendung von React-Bower Repo als erstes Push-Ziel

    • Dies ist ein Ergebnis der fb.me-Linkgenerierung / CDNisierung, die auf der internen FB-Infra erfolgen muss

  • manuelle Schritte über mehrere Repos hinweg
  • manuelle Versionsänderung
  • Assets müssen sich an mehreren Stellen befinden und über Niederlassungen hinweg kopiert werden

Ein paar Ideen:

  • wir sollten in der Lage sein, zwischen Vorab- und Endversionen zu unterscheiden. Es sollte ein einziger Befehl sein, ein neues Alpha zu jedem Zeitpunkt zu versenden, und sie sollten leichtgewichtig sein.
  • endgültige Versionen benötigen etwas mehr, da sie standardmäßig von Benutzern installiert werden und zusätzliche Anforderungen haben (z. B. Änderungsprotokolle, Assets an mehreren Stellen).
  • npm run release was dann alles erledigt. Es könnte ein interaktiver Prozess sein
  • Beginnen Sie mit der Verwendung der GitHub-Release-APIs, um Build-Assets zu speichern und Schritte einzusparen
  • Richten Sie cdn.reactjs.org ein und hosten Sie einfach unsere Builds dort und lassen Sie fb.me vollständig fallen (Risiko, wir müssen dies für immer ausführen …)

    • Alternativen: Arbeiten Sie mit vorhandenen CDNs und stellen Sie sicher, dass Versionen auf Befehl bereitgestellt werden können (Pull-basierte automatische Aktualisierung kann zu Verzögerungen führen, Dinge wie jsfiddle, unser Tutorial benötigt sofort verfügbare Assets)

  • untersuchen lerna, könnte bei den vielen Paketen, die wir haben, hilfreich sein, obwohl wir idealerweise die Veröffentlichungen entwirren wollen
Build Infrastructure

Hilfreichster Kommentar

Es scheint, als wären wir jetzt tatsächlich an einem guten Ort.
(Danke @bvaughn)

Alle 3 Kommentare

Alternativen: Arbeiten Sie mit vorhandenen CDNs und stellen Sie sicher, dass Versionen auf Befehl bereitgestellt werden können (Pull-basierte automatische Aktualisierung kann zu Verzögerungen führen, Dinge wie jsfiddle, unser Tutorial benötigt sofort verfügbare Assets)

Mit Redux haben wir die Leute zu @mjacksons http://npmcdn.com geleitet.

Danke für die Erwähnung, @gaearon. Ich habe @zpao schon seit einiger Zeit Hinweise gegeben, dass ich möchte, dass er npmcdn eine Chance gibt. ;)

Wir haben letzten Monat mehr als 100 Millionen Anfragen von über 16 Millionen einzelnen Besuchern bearbeitet, sodass wir möglicherweise bereit sind, die Art von Datenverkehr zu bewältigen, den React auf uns zukommen lassen würde. Ich arbeite derzeit daran, einige Sponsoren und Nutzungsbedingungen zu finden, damit die Leute wissen, was sie davon erwarten können.

Was Verzögerungen betrifft, weisen wir derzeit unser CDN (CloudFlare) an, Umleitungen für 5 Minuten zwischenzuspeichern. So wird zB eine Anfrage für https://npmcdn.com/react@15/dist/react.min.js höchstens 5 Minuten, nachdem sie an npm gepusht wurde, auf die neueste Version umgeleitet.

Es scheint, als wären wir jetzt tatsächlich an einem guten Ort.
(Danke @bvaughn)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen