Thanks Julien! I can try to integrate this into the release scripts when
finalizing 2.22.0.

The only other nice to have would be some kind of script to generate
RELEASE_NOTES from the blog post markdown [1]. It shouldn't be too tricky
to just trim off the front matter and license.

Brian

[1]
https://github.com/apache/beam/blob/master/website/www/site/content/en/blog/beam-2.21.0.md

On Wed, Jun 3, 2020 at 1:39 PM Julien Phalip <jpha...@gmail.com> wrote:

> I see that Kyle added
> <https://github.com/apache/beam/commit/d8b9d273d614b92557353c76e0a9268960c8b6cc#diff-2192a92042a6ca5c7c7769a10b3dd052>
>  some
> steps in the release guide, and the release notes now appear
> <https://github.com/apache/beam/releases/tag/v2.21.0> in Github for the
> recent 2.21.0 release. Thanks for doing that!
>
> If that helps, here are some steps to automate that process using the
> Github API (Some of the environment variables should already be set from
> previous steps in the release guide):
>
> GITHUB_TOKEN=[REDACTED]
> RELEASE=[SET TO RELEASE NUMBER]
> VERSION_TAG="v${RELEASE}"
> RELEASE_NOTES=[PASTE RELEASE NOTES]
>
> RELEASE_JSON="$(cat <<-EOF
> {
>   "tag_name": "${VERSION_TAG}",
>   "name": "Beam ${RELEASE} release",
>   "body": "${RELEASE_NOTES}"
> }
> EOF
> )"
>
> curl https://api.github.com/repos/jphalip/beam/releases \
> -X POST \
> -H "Authorization: token ${GITHUB_TOKEN}" \
> -H "Content-Type:application/json" \
> -d ${RELEASE_JSON}
>
>
> On Tue, May 19, 2020 at 4:58 PM Brian Hulette <bhule...@google.com> wrote:
>
>> I'd be happy to help with code review (tag @TheNeuralBit on github),
>> and/or kick the tires if you have something ready in time for 2.22.
>>
>> Brian
>>
>> On Tue, May 19, 2020 at 4:38 PM Julien Phalip <jpha...@gmail.com> wrote:
>>
>>> That sounds good, I'll see what I can do and maybe write up a script to
>>> automate the release notes publication.
>>>
>>> On Tue, May 19, 2020 at 4:35 PM Kyle Weaver <kcwea...@google.com> wrote:
>>>
>>>> Sorry, I should have worded that better. What I meant was that Brian
>>>> and I should focus on fixing the existing release process, but we'd welcome
>>>> you to add the release notes as a new feature.
>>>>
>>>> On Tue, May 19, 2020 at 7:33 PM Julien Phalip <jpha...@gmail.com>
>>>> wrote:
>>>>
>>>>> Sure, I can try to help :)  Can you share some pointers on the things
>>>>> that need fixing?
>>>>>
>>>>> On Tue, May 19, 2020 at 4:17 PM Kyle Weaver <kcwea...@google.com>
>>>>> wrote:
>>>>>
>>>>>> For context, currently, we just create and push the tag using plain
>>>>>> git:
>>>>>> https://github.com/apache/beam/blob/master/website/www/site/content/en/contribute/release-guide.md#git-tag
>>>>>>
>>>>>> > I don't think it would be that complicated to integrate into shell
>>>>>> script based release tooling (maybe I'll have a different opinion in a 
>>>>>> few
>>>>>> weeks after 2.22 is out?).
>>>>>>
>>>>>> I have no doubt it's technically possible, but there are a lot of
>>>>>> existing bugs with the release process and we need to prioritize fixing
>>>>>> those over adding new features.
>>>>>>
>>>>>> Julien, do you think this something you'd be willing to help out with?
>>>>>>
>>>>>> On Tue, May 19, 2020 at 7:05 PM Julien Phalip <jpha...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Yes, Markdown is possible when using the Releases API.  There I was
>>>>>>> referring to the default behavior, where Github displays the tag 
>>>>>>> summary as
>>>>>>> raw text if a formal Github release entry wasn't created for the tag.
>>>>>>>
>>>>>>> To create a formal Github release entry (
>>>>>>> https://developer.github.com/v3/repos/releases/#create-a-release),
>>>>>>> it should be possible to send a POST request to
>>>>>>> https://api.github.com/repos/apache/beam/releases
>>>>>>>
>>>>>>> On Tue, May 19, 2020 at 3:56 PM Brian Hulette <bhule...@google.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> > It seems that Github treats the summary as raw text, so you can't
>>>>>>>> really feed it any complex formatting like Markdown.
>>>>>>>>
>>>>>>>> The Helm project you linked seems to be using markdown formatting.
>>>>>>>>
>>>>>>>> On Tue, May 19, 2020 at 3:52 PM Julien Phalip <jpha...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I actually tried that - you can see a quick test here:
>>>>>>>>> https://github.com/jphalip/beam/releases/tag/v9.9.9
>>>>>>>>>
>>>>>>>>> It seems that Github treats the summary as raw text, so you can't
>>>>>>>>> really feed it any complex formatting like Markdown. That said, that 
>>>>>>>>> might
>>>>>>>>> be good enough if the summary just includes some simple content, 
>>>>>>>>> which is
>>>>>>>>> in fact typically the case for email announcements (see example
>>>>>>>>> here
>>>>>>>>> <https://lists.apache.org/thread.html/r1ad72fe524a3fbd67a0cc9f0e171e27eba821daa835063267cffdd95%40%3Cuser.beam.apache.org%3E>
>>>>>>>>> for the recent 2.20.0 version). In other words, if the tag summary 
>>>>>>>>> simply
>>>>>>>>> included a quick note announcing the new version and a link to the 
>>>>>>>>> release
>>>>>>>>> notes (e.g.
>>>>>>>>> https://beam.apache.org/blog/2020/04/15/beam-2.20.0.html), then
>>>>>>>>> that'd work pretty well, I think.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, May 19, 2020 at 3:39 PM Kyle Weaver <kcwea...@google.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Including the release notes in the tag seems like a good idea.
>>>>>>>>>> However, I don't think there is an obvious way to automate the
>>>>>>>>>> process, since Beam's primary release tool is shell scripts :) and 
>>>>>>>>>> Github
>>>>>>>>>> tag summaries are a Github feature, not a standard git feature. 
>>>>>>>>>> Would it be
>>>>>>>>>> sufficient to manually copy the release notes into the tag summary?
>>>>>>>>>>
>>>>>>>>>> On Tue, May 19, 2020 at 6:18 PM Julien Phalip <jpha...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I'm working with customers who would like to be automatically
>>>>>>>>>>> notified when new Beam releases come out. They'd also like to see 
>>>>>>>>>>> the
>>>>>>>>>>> release notes so they know what changes were made.
>>>>>>>>>>>
>>>>>>>>>>> I know that these announcements are already sent to the user@
>>>>>>>>>>> and dev@ mailing lists. However, they're not easy to catch
>>>>>>>>>>> automatically as they're intermingled with lots of other messages 
>>>>>>>>>>> in those
>>>>>>>>>>> lists.
>>>>>>>>>>>
>>>>>>>>>>> One possible solution would be to leverage the Beam project's
>>>>>>>>>>> releases Atom feed
>>>>>>>>>>> <https://github.com/apache/beam/releases.atom> on Github (see
>>>>>>>>>>> also the web version <https://github.com/apache/beam/releases>).
>>>>>>>>>>> This allows, for example, to automatically publish a
>>>>>>>>>>> notification in Slack
>>>>>>>>>>> <https://slack.com/help/articles/218688467-Add-RSS-feeds-to-Slack>
>>>>>>>>>>> when a new release comes out. However, the Atom feed only contains 
>>>>>>>>>>> the tag
>>>>>>>>>>> names without any description because the release notes aren't 
>>>>>>>>>>> recorded in
>>>>>>>>>>> Github.
>>>>>>>>>>>
>>>>>>>>>>> Do you think that the Beam release process could be extended to
>>>>>>>>>>> call the Github Releases API
>>>>>>>>>>> <https://developer.github.com/v3/repos/releases/> to
>>>>>>>>>>> automatically publish the release notes in Github?
>>>>>>>>>>>
>>>>>>>>>>> As an example, see the Helm project's releases page
>>>>>>>>>>> <https://github.com/helm/helm/releases>, where release notes
>>>>>>>>>>> are created using a template
>>>>>>>>>>> <https://github.com/helm/helm/blob/master/scripts/release-notes.sh>
>>>>>>>>>>> and published with a tool called goreleaser
>>>>>>>>>>> <https://goreleaser.com/>.
>>>>>>>>>>>
>>>>>>>>>>> Thank you,
>>>>>>>>>>>
>>>>>>>>>>> Julien
>>>>>>>>>>>
>>>>>>>>>>

Reply via email to