Support Release Notes Generation#13964
Conversation
1810871 to
def7ec1
Compare
|
@aweisberg Since @mayankgarg1990 is on PTO, could you help reviewing this PR? Thank you! |
aweisberg
left a comment
There was a problem hiding this comment.
Wow, this is great, but also huge. GenerateReleaseNotesTask has a lot of behavior in it. It tested it and found a few things. I think I will want to do another pass on GenerateReleaseNotesTask.
Why an empty presto-release/README.txt?
Ultimately the documentation for this should live somewhere that isn't the PR description.
If you restart the process partway through it fails the 2nd time creating the branch. If you try to repeat the process it also fails. I assume this will be common because people fix the missing/broken release notes in their PRs and then you rerun this.
presto-release/src/main/java/com/facebook/presto/release/AbstractAnnotatedProvider.java
Outdated
Show resolved
Hide resolved
presto-release/src/main/java/com/facebook/presto/release/ForPresto.java
Outdated
Show resolved
Hide resolved
presto-release/src/main/java/com/facebook/presto/release/git/ForGithub.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
A little weird that it's a GitActor, but it's not a subclass of Actor. It makes them seem like they have something in common when apparently they don't.
There was a problem hiding this comment.
This is how objects are defined in Github API:
Actor (Interface): https://developer.github.com/v4/interface/actor/
GitActor (Object): https://developer.github.com/v4/object/gitactor/
My understanding is that the "Git" in "GitActor" refers to git, the version control system, while Actor is more of a short form for GithubActor.
presto-release/src/main/java/com/facebook/presto/release/git/Actor.java
Outdated
Show resolved
Hide resolved
presto-release/src/main/java/com/facebook/presto/release/git/GitCommandsBinder.java
Outdated
Show resolved
Hide resolved
presto-release/src/main/java/com/facebook/presto/release/git/PullRequest.java
Outdated
Show resolved
Hide resolved
presto-release/src/main/java/com/facebook/presto/release/tasks/GenerateReleaseNotesCommand.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
It looks like some of this PR entry didn't get preserved #13604 All the lines starting with + got turned into a run-on sentence.
There was a problem hiding this comment.
Not sure what this comment means?
There was a problem hiding this comment.
This is the expected behavior since we never said we would support sub-bullet-point.
If the release notes section cannot be properly parsed, the PR will shown in the missing release notes section.
43fb4f9 to
d2345d7
Compare
0c6e57b to
07dc820
Compare
24e406b to
c6582b4
Compare
|
I came across this PR. I just skimmed and have a couple of high-level questions.
|
aweisberg
left a comment
There was a problem hiding this comment.
This looks great. I had two minor things to tweak and there was the one case where it maybe doesn't handle the inputs the way we want.
presto-release/NOTICE
Outdated
There was a problem hiding this comment.
Nit, I think most projects put the NOTICE file in a top level directory so it's human findable without much effort
https://github.com/docker/engine
https://github.com/apache/hadoop
How did we assemble the list of NOTICES we need to include?
There was a problem hiding this comment.
I'm moving NOTICE and README.md to the top level. They're specified in src/main/assembly/presto-release-tools.xml
presto-release/README.md
Outdated
There was a problem hiding this comment.
Is what you are supposed to fetch going to change over time when the binary is updated? Is there a better way to do this?
There was a problem hiding this comment.
Updated. We can do v=LATEST to fetch the latest snapshot version. When there is a release of this project, we can change it to point to the latest release version.
presto-release/src/main/java/com/facebook/presto/release/git/GitBinder.java
Outdated
Show resolved
Hide resolved
|
Superseded by prestodb/presto-release-tools#2 |


The PR introduces a tool which formalize the release notes collection in the release process.
Address part of #13970.
Release Notes Collection
To streamline the release process, we introduced a requirement (and PR template) to ask authors to write release notes in the PR description. During the release process, the person doing the release will be able to use this tool to collect and generate the release commit and PR, before polishing it as according to the
Release Notes Guideline.
What does the tool do
git logto find the commits introduced in the new release.a. A list of PRs with missing release notes, either the PR description do not contain release notes, or the release notes were malformed.
b. A list of extracted release notes.
c. A list of all commits introduced in the release.
How to use the tool
To collect release notes, run the following command after cutting the release branch (bumping the snapshot version on the master branch):
The changes have been tested end-to-end. Idea for unit testing are welcomed.