Skip to content

Modernize release process #6655

@zpao

Description

@zpao

It's way too much work to do a React release right now. It's mostly muscle memory for me at this point but it should be easy for anybody to do it. Historically I kept certain steps manual because I screwed things up and wanted to be able to pause and double check.

There are a few things contributing to the difficulty:

  • use of react-bower repo as the first push target
    • which is a result of fb.me link generation / CDNization needing to happen on internal FB infra
  • manual steps across multiple repos
  • manual version modification
  • assets needing to be in multiple places, copied across branches

A few ideas:

  • we should be able to differentiate between pre- and final releases. It should be a single command to ship a new alpha at any point and they should be lightweight.
  • final releases need a little more since they will get installed by default by people and have additional requirements (eg changelogs, assets in multiple places)
  • npm run release which then does all the things. It could be an interactive process
  • start using the GitHub releases APIs to store build assets, cutting out steps
  • set up cdn.reactjs.org and just host our builds there, dropping fb.me entirely (risk, we have to run this forever…)
    • alternatives: work with existing CDNs and make sure we can have versions deployed on command (pull based autoupdating can result in delays, things like jsfiddle, our tutorial need assets available immediately)
  • investigate lerna, could be helpful with the multiple packages we have, though we ideally want to disentangle the releases

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions