Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: update release-process.md #29645

Merged
merged 1 commit into from May 1, 2024
Merged

Conversation

glozow
Copy link
Member

@glozow glozow commented Mar 13, 2024

While doing various release process things for the first time, I noticed some of our docs are outdated and/or confusing.

@DrahtBot
Copy link
Contributor

DrahtBot commented Mar 13, 2024

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage

For detailed information about the code coverage, see the test coverage report.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK achow101
Concept ACK pinheadmz, hebasto

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

No conflicts as of last run.

@DrahtBot DrahtBot added the Docs label Mar 13, 2024
Copy link
Member

@achow101 achow101 left a comment

Choose a reason for hiding this comment

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

In the "Commit the detached codesign payloads" section, could also mention that only one person should rm -rf ./*, or maybe just change that to rm for the set of sigs being added.

Also the commit titling scheme we're using is now something like <version>: win signature for <rc or final> rather than point to ...

doc/release-process.md Outdated Show resolved Hide resolved
@achow101
Copy link
Member

achow101 commented Mar 13, 2024

Should also include the command git checkout --orphan <version> for creating the new detached sigs branch for a major release.

Copy link
Member

@pinheadmz pinheadmz left a comment

Choose a reason for hiding this comment

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

concept ACK

I was also confused by the code signing step.

doc/release-process.md Outdated Show resolved Hide resolved
@glozow
Copy link
Member Author

glozow commented Mar 21, 2024

In the "Commit the detached codesign payloads" section, could also mention that only one person should rm -rf ./*, or maybe just change that to rm for the set of sigs being added.

I made 2 separate steps for each signer, since they'll be different people.

Also the commit titling scheme we're using is now something like <version>: win signature for <rc or final> rather than point to ...

Wrote scheme like this

@achow101
Copy link
Member

ACK 635d16a

@DrahtBot DrahtBot requested a review from pinheadmz March 22, 2024 19:05
@hebasto
Copy link
Member

hebasto commented Mar 25, 2024

Here's some historical context regarding translation related changes suggested in this PR.

Basically, during a release process, there are two kind of operations namely (1) generating an updated resource file and uploading it to the Transifex website and (2) downloading prepared translations from the Transifex website and merging them into this repository.

The first kind involves running make -C src translate command. The second one uses update-translations.py script from the bitcoin-maintainer-tools repository, which in turn relies on Transifex's command-line tx client.

In the past, release maintainers performed all these steps by themselves. Then the process became more involved, requiring an additional interaction between a release maintainer and a developer who conducts translation-related stages.

During the v26.0 release, @fanquake suggested (offline) to fetch translations from the Transifex website just before branching a version branch off. That would allow to keep translations in the master branch updated with no extra efforts.

This PR goes further and proposes skipping translation fetching for every release candidate.

FWIW, the v27.0 release is following the translation handling process as this PR suggests.

The benefit of a new approach is less burden on a release maintainer.

However, I can see a couple of drawbacks as well:

  1. Translators have a shorter period to work on translations. Effectively, it starts at string freeze and ends at branching off, which usually lasts for a month.

  2. If a translatable string is modified after branching off, it won't be translated in the release binary.

Being a translator allows me to assume that a month is enough even for a single person assuming they work on a single translation. Also we heavy exploit the "Translation Memory" Transifex feature, which effectively is a cache allowing to reuse translations from the previous releases.

The second case might be considered as a very rare event.

Anyway, this change in the release process deserves an announcement for translators on the Transifex website.

cc translation-involved people: @luke-jr @laanwj

@glozow
Copy link
Member Author

glozow commented Mar 25, 2024

Thanks for the context @hebasto. I felt that it was appropriate to move from "before every release candidate" to "before every major or minor release"(EDIT: correction, "before branch-off") because

  • I didn't observe that translations were being updated per release candidate.
  • It made more sense to me that it'd be per release instead of per release candidate since, as you say, changes in between rcs should be very rare and we would largely have control over this.
  • As you mentioned, translations were added before branch off this time.

Translators have a shorter period to work on translations. Effectively, it starts at string freeze and ends at branching off, which usually lasts for a month.

In practice, is there a large time difference between branch off and the first release candidate?

I made this change because it seemed like more accurate documentation, definitely not as an attempt to make a controversial alteration the release process. I don't feel strongly and am happy to remove that change.

@hebasto
Copy link
Member

hebasto commented Mar 25, 2024

I made this change because it seemed like more accurate documentation, definitely not as an attempt to make a controversial alteration the release process. I don't feel strongly and am happy to remove that change.

To clarify my previous comment, I do lean to ACK the suggested changes.

@glozow
Copy link
Member Author

glozow commented Apr 3, 2024

(Yay v26.1) I have a couple more things for the last section, and then will take out of draft.

@glozow glozow marked this pull request as ready for review April 4, 2024 09:27
@glozow glozow requested a review from achow101 April 15, 2024 13:49
@glozow glozow assigned fanquake and unassigned fanquake Apr 15, 2024
@glozow glozow requested a review from fanquake April 15, 2024 13:49
doc/release-process.md Outdated Show resolved Hide resolved
doc/release-process.md Outdated Show resolved Hide resolved
@achow101
Copy link
Member

I think the "Update repositories and websites for new version" section could be split into 2 distinct steps of update the website, then update the packaging repos. Apparently flathub polls the website for new releases and their bot will automatically open a pr to the flathub repo with the new version hashes. So that step must be done after the website is updated.

- Mention which directories contain the respective unsigned tarballs
- Clarify that bitcoin.conf might not need to be updated
- Specify where to put historical release notes if there is already
  something in release-notes.md
- Clarify what exactly is the problem with running guix-codesign more
  than once
- Correct number: 6 codesigned attestations are needed before uploading
  binaries
- Remove scp command which is outdated
- Remove server path which is outdated
- Specify that translations update should happen before branch-off, not
  before each release candidate
- Mention that you should notify lists when RCs are available
- Put "Archive the release notes" as a separate step, since creating the
  github release has a dependency on it.
- Put bitcoincore.org website updates as a separate step, since
  updating packaging repos may have a dependency on it.
- Update "bitcoin-dev mailing list" to "bitcoin-dev group"
- Document that maintainers should create PRs to collect backports
- Remove section about not uploading `*-debug` files, reader should
  upload all build artifacts.
- Torrent is created automatically, so delete instructions.
- Mention that server also generates ots file automatically.
@glozow
Copy link
Member Author

glozow commented Apr 18, 2024

I think the "Update repositories and websites for new version" section could be split into 2 distinct steps

Done, I split into website updates and everything else

@achow101
Copy link
Member

ACK 1ea8674

@DrahtBot DrahtBot requested a review from hebasto April 18, 2024 16:26
@DrahtBot DrahtBot requested a review from pinheadmz April 19, 2024 23:17
@hebasto
Copy link
Member

hebasto commented Apr 29, 2024

Thanks for the context @hebasto. I felt that it was appropriate to move from "before every release candidate" to "before every major or minor release"(EDIT: correction, "before branch-off") because

  • I didn't observe that translations were being updated per release candidate.

It happens, but very seldom. We can really ignore them as it simplifies the release process significantly.

  • It made more sense to me that it'd be per release instead of per release candidate since, as you say, changes in between rcs should be very rare and we would largely have control over this.

  • As you mentioned, translations were added before branch off this time.

However, I think we have to update translations for minor releases.

cc @laanwj

Translators have a shorter period to work on translations. Effectively, it starts at string freeze and ends at branching off, which usually lasts for a month.

In practice, is there a large time difference between branch off and the first release candidate?

Not at all :)

@achow101 achow101 merged commit 842f7fd into bitcoin:master May 1, 2024
16 checks passed
@achow101
Copy link
Member

achow101 commented May 1, 2024

Went ahead with merging this since the vast majority of the changes here are correct and useful. It seems like there are still some questions related to the translations, but I think we can document those later when it becomes apparent that what we're actually doing diverges from the doc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants