Skip to content
This repository has been archived by the owner on Jun 17, 2022. It is now read-only.

Document current release process #165

Merged
merged 17 commits into from
Mar 10, 2020
Merged

Conversation

alloy
Copy link
Member

@alloy alloy commented Mar 2, 2020

To be clear, this iteration is meant to document the current process. Next iterations will:

  • Fill in gaps in docs.
  • Introduce suggested changes.

@kelset kelset self-requested a review March 2, 2020 14:27
@kelset kelset added release status Information about an upcoming or ongoing release rfc Request for comments and removed rfc Request for comments labels Mar 2, 2020
Copy link
Member

@kelset kelset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First off, thanks for doing this! I think it's really important to be more clear in what happens when a release is created 👍

I've left a few comments, a few nits and a couple more "relevant" - more than happy to discuss them through here or in DMs 🤗

.vscode/settings.json Outdated Show resolved Hide resolved
README.md Outdated
# React Native’s Release Process

At Facebook React Native is not consumed via released versions, instead they
always consume the latest version of the `master` branch. This means that they
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead they always consume the latest version of the master branch.

nitpick: technically master is a "not 100% precise" mirror image of what used internally. I wonder if we should be more specific - like:

"instead, they consume an internal version which gets synced to the code in master without necessarily being a 1:1 copy"

cc @TheSavior IIRC a long time ago you had a gist with some relevant information about "how react native works" - do you still have the link to it? Could we maybe link it here so that people could read more about it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://gist.github.com/TheSavior/608dfb8d5f80a0eef0f0b1681db5ec95

We definitely consume a 1:1 copy of master, we are just a couple minutes ahead.

Copy link
Member

@kelset kelset Mar 2, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We definitely consume a 1:1 copy of master

ah yeah, probably I choose a poor wording 🤦‍♂️
my understanding is more like

react native codebase in FB = master in OSS + other stuff

which yeah, it's a 1:1. But, also, you consume it differently AFAIK (ex. not using CLI/react-native init). Is my understanding wrong? Is it worth specifying?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, we consume it a bit differently. We use buck for example.

I also would still reword:

react native codebase in FB = master in OSS + other stuff

to

Facebook's monorepo = master of react native repo + other stuff

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I knew it was a simplification, but I figured there’s no real reason to further add details about that which isn’t really related to who to release RN. I’m fine with adding/rewording it if you think that eases understanding for readers?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy with what you have in the original text

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe let's keep the original text but add a link to the gist?

Suggested change
always consume the latest version of the `master` branch. This means that they
always consume the [latest version of the `master` branch](https://gist.github.com/TheSavior/608dfb8d5f80a0eef0f0b1681db5ec95). This means that they

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My one issue with the gist, as-is, is that it also touches on the release side of things, which may become confusing. As a curious person, I like the insight into how FB does things, so perhaps that part could just be imported as another separate doc that is linked to here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kelset bump

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
@elicwhite
Copy link
Contributor

What's the plan for this PR? It seems like this would be unlikely to be complete. Does it make sense to merge these as is and then iterate as you learn more things about the process? That way it will also be easier for people to review the new things you learn.

@kelset
Copy link
Member

kelset commented Mar 10, 2020

Does it make sense to merge these as is and then iterate as you learn more things about the process?

I don't think we should merge as it is, as the Readme still requires a bit of work/changes.

That said I agree that maybe it could be good to find a way to reduce its scope and increate the docs in follow up PRs (ex. maybe the upgrade-helper part could be its own PR?)

@alloy
Copy link
Member Author

alloy commented Mar 10, 2020

Agreed with @kelset; I’ll do a bit more work and leave docs on parts of the process outside of direct releasing for follow-up.


To use it first off `git clone` the repo, then `yarn` and finally you can use it like in the following example: `./changelog-generator.js -b v0.57.5 -c v0.57.6`.

## "When will my fix make it into a release?"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should bring this back too somewhere, in the next iteration.

@alloy alloy changed the title [WIP] Document current release process Document current release process Mar 10, 2020
@alloy alloy force-pushed the document-current-release-process branch from aa1ee92 to e0f74b8 Compare March 10, 2020 13:55
@alloy
Copy link
Member Author

alloy commented Mar 10, 2020

Alright, this should be ready to go 👍

@@ -0,0 +1,3 @@
# Upgrade helper

Point people: [@pvinis](https://github.com/pvinis)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pvinis Do you feel like fleshing this doc with explanation and instructions out?

docs/upgrade-helper.md Outdated Show resolved Hide resolved
docs/upgrade-helper.md Outdated Show resolved Hide resolved
@kelset kelset requested review from kelset and elicwhite March 10, 2020 14:53
README.md Outdated Show resolved Hide resolved
docs/publish-release.md Show resolved Hide resolved

1. Pushing the changed version numbers will eventually kickoff the `publish_npm_package` workflow on CI, keep an eye on it.

⚠️ Currently publishing fails due to SSH not being setup to accept github.com automatically. To workaround this:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Major yikes. Looking forward to improvements here. 👍

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aye, it’s on my list for right after these doc changes.

docs/release-process.md Show resolved Hide resolved
docs/release-process.md Show resolved Hide resolved
@alloy
Copy link
Member Author

alloy commented Mar 10, 2020

Done 🙆‍♂

@alloy alloy merged commit 190509e into master Mar 10, 2020
@alloy alloy deleted the document-current-release-process branch March 10, 2020 17:57
Copy link
Member

@kelset kelset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh well I was still reviewing this while it got merged... I'll leave the feedback anyway but not finish all the sections since it's pointless at this point


At Facebook React Native is not consumed via released versions, instead they always consume the latest version of the `master` branch. This means that they are able to iterate fast for _their_ needs; if something is broken the fix is a single commit away.

External users are of course similarly able to consume the latest `master` version, however this is most likely a too fast moving target for most.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
External users are of course similarly able to consume the latest `master` version, however this is most likely a too fast moving target for most.
External users are similarly able to consume the latest `master` version, however this is most likely a too fast moving target for most.

I would remove "of course" as it's honestly hard to setup and probably not well documented either. (also, I've never attempted it and only heard stories from literally 2 developers about doing it)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unsure about this one. To me this is the lead-up to “…, however”, if you know what I mean? I don’t feel like it implies that this is easy.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, it's probably different way of interpreting english - but I know but bad at it so it's ok.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean, I’m by no means a native English speaker myself 😬

README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
docs/generate-changelog.md Show resolved Hide resolved
docs/publish-release.md Show resolved Hide resolved
docs/publish-release.md Show resolved Hide resolved
docs/publish-release.md Show resolved Hide resolved
@elicwhite
Copy link
Contributor

It's not pointless! Changes can be made in a follow up! :D

@alloy
Copy link
Member Author

alloy commented Mar 10, 2020

Hey, yeah, please do leave all the feedback!

And sorry for the ambiguity in when/who would merge, I’ll make sure to improve that next time.

@elicwhite
Copy link
Contributor

For us at Facebook, typically once I get an approval, I address that feedback and merge. Iterating and making additional changes is easy and I prefer not to block people from making progress. That works as long as everyone feels comfortable giving feedback at any time, even on merged changes, trusting that they will still get addressed. 🙂

It is reasonable if you all would prefer a different style here. 👍

@alloy
Copy link
Member Author

alloy commented Mar 11, 2020

@kelset #171

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
release status Information about an upcoming or ongoing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants