Skip to content

Add workflow to create version labels on new releases#32508

Closed
lucasbento wants to merge 4 commits intofacebook:mainfrom
lucasbento:add-workflow-version-labels
Closed

Add workflow to create version labels on new releases#32508
lucasbento wants to merge 4 commits intofacebook:mainfrom
lucasbento:add-workflow-version-labels

Conversation

@lucasbento
Copy link
Copy Markdown

@lucasbento lucasbento commented Oct 31, 2021

Summary

This PR adds the following GitHub actions:

Changelog

N/A.

Few things to keep in mind

  • A label named "Version: unspecified" must be created;
  • The GitHub action to create labels will only run when there's a new release or if one is edited, it will then create all the other labels bases on the previous releases until it encounters one that already exists.

Example of issue with version label: lucasbento/test-issue-forms#4

@lucasbento lucasbento requested a review from hramos as a code owner October 31, 2021 15:59
@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. labels Oct 31, 2021
@pull-bot
Copy link
Copy Markdown

pull-bot commented Oct 31, 2021

Messages
📖

📋 Verify Changelog Format - A changelog entry has the following format: [CATEGORY] [TYPE] - Message.

DetailsCATEGORY may be:
  • General
  • iOS
  • Android
  • JavaScript
  • Internal (for changes that do not need to be called out in the release notes)

TYPE may be:

  • Added, for new features.
  • Changed, for changes in existing functionality.
  • Deprecated, for soon-to-be removed features.
  • Removed, for now removed features.
  • Fixed, for any bug fixes.
  • Security, in case of vulnerabilities.

MESSAGE may answer "what and why" on a feature level. Use this to briefly tell React Native users about notable changes.

📖 📋 Missing Test Plan - Can you add a Test Plan? To do so, add a "## Test Plan" section to your PR description. A Test Plan lets us know how these changes were tested.

Generated by 🚫 dangerJS against f9d167e

@pull-bot
Copy link
Copy Markdown

PR build artifact for 4f25959 is ready.
To use, download tarball from "Artifacts" tab in this CircleCI job then run yarn add <path to tarball> in your React Native project.

@cortinico
Copy link
Copy Markdown
Contributor

* Create version labels (such as `Version: 0.65.1`) whenever there's a new release;

Was this approach discussed somewhere? Is there a reason why we're not using Milestone instead?

@analysis-bot
Copy link
Copy Markdown

Platform Engine Arch Size (bytes) Diff
android hermes arm64-v8a 8,289,510 -1,032
android hermes armeabi-v7a 7,853,642 -932
android hermes x86 8,656,565 -1,058
android hermes x86_64 8,615,703 -1,049
android jsc arm64-v8a 9,791,232 -547
android jsc armeabi-v7a 8,752,162 -447
android jsc x86 9,740,152 -559
android jsc x86_64 10,340,998 -569

Base commit: 6790cf1
Branch: main

@lucasbento
Copy link
Copy Markdown
Author

Was this approach discussed somewhere? Is there a reason why we're not using Milestone instead?

It was discussed on Discord, not sure about the milestones, perhaps @lunaleaps can chime in.

@pull-bot
Copy link
Copy Markdown

PR build artifact for f9d167e is ready.
To use, download tarball from "Artifacts" tab in this CircleCI job then run yarn add <path to tarball> in your React Native project.

@lunaleaps
Copy link
Copy Markdown
Contributor

lunaleaps commented Oct 31, 2021

Hey @cortinico, yea as @lucasbento mentioned we've been talking about deprecating upgrade-support repo to have upgrade issues reported in this repo. We want to get signal of how many issues come up when people attempt to migrate to a specific version so we can feedback on how stable our releases are -- hence using labels.

From looking at milestones, I think the use case seems to be more about tracking a specific goal -- or am I misunderstanding?

label: Developer Environment
description: Please list relevant versions of system, tooling. Ex. OS, processor, Xcode, etc.
label: Output of `react-native info`
description: Run `react-native info` in your terminal, copy and paste the results here.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Oh yes! Great idea

@facebook-github-bot
Copy link
Copy Markdown
Contributor

@lunaleaps has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

@cortinico
Copy link
Copy Markdown
Contributor

Sorry I didn't wanted to sidetrack your original work. If you already spent time discussing on this, feel free to merge it as it is.

I anyway think that using milestones for this kind of work would be better for a variety of reasons:

From looking at milestones, I think the use case seems to be more about tracking a specific goal -- or am I misunderstanding?

That's true, if used on PRs. Milestone are basically "version" information that can be attached to an issue or a PR.

Say for a potential milestone "0.67.0", I would use it in a following way:

  • Mark a PR with that milestone if I intend to ship that code in version "0.67.0"
  • Mark a issue/feature-request with that milestone if I intend to release that feature in version "0.67.0"
  • Mark a bug with that milestone, if want to specify which version introduced that bug, say "0.67.0" <- That's apparently the use case we're looking for.

The problem that I see with the current approach are the following:

  • The label space will be polluted with a lot of version-specific labels. We already have 188 labels, and we will end up having way more. Milestones instead can be "closed" and they won't show up in the dropdown selector anymore (but they will still be searchable).
  • We're adding two new Github Actions from a 3rd party users (nothing against you @lucasbento), but this is a part of infra that we will have to maintain in the long run.
  • I believe this could have been implemented as part of the react-native-bot: https://github.com/hramos/react-native-bot/.

@lunaleaps
Copy link
Copy Markdown
Contributor

@cortinico Thanks for sharing your thoughts! For sure good points and good things to address. At this stage I think labels work well because internal tooling already scrapes this information and I'm not sure if milestones are. I think this is something we can ask about but I already have some tables built out for getting this information.

Is there a cause for concern if there are too many labels? Not exactly sure the cost except for maybe some upper bound of labels that Github allows? Tried searching around but can't find.

Re: react-native-bot, would that not be an actor that would still need to perform these actions? We can look into conforming the tools -- first want to focus on use-case

Copy link
Copy Markdown
Contributor

@cortinico cortinico left a comment

Choose a reason for hiding this comment

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

Is there a cause for concern if there are too many labels? Not exactly sure the cost except for maybe some upper bound of labels that Github allows? Tried searching around but can't find.

I don't think we're going to hit the limit (if any) :) Is more like a practicality 👍

but I already have some tables built out for getting this information.

Yup I didn't want to slow down 👍 Feel free to merge it

@facebook-github-bot
Copy link
Copy Markdown
Contributor

@lunaleaps merged this pull request in 60352a9.

@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Nov 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged This PR has been merged. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants