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

Enhancements to release controller #1213

Merged
merged 49 commits into from
Jan 20, 2025
Merged

Enhancements to release controller #1213

merged 49 commits into from
Jan 20, 2025

Conversation

DFINITYManu
Copy link
Contributor

@DFINITYManu DFINITYManu commented Jan 16, 2025

  1. Full typification of release controller.
  2. Functional change: check on start for existing election proposals, and save them in local database.
  3. Functional change: only do the work of preparing and submitting a proposal when a proposal has not successfully been submitted in the past. This is bypassable on the command line using --skip-preloading-state and a clean reconciler state store.
  4. Enhanced dry-run mode.
  5. Now with progress bar whenever checksumming the GuestOS distribution packages.
  6. No longer write the enormous GuestOS distribution packages to disk in order to checksum. Much faster checksumming as a result.
  7. Only fetch git notes at most once per 30 seconds. Much faster preparation of release notes as a result.
  8. Option to loop only one time (--loop-every=0) and to adjust how often the reconciliation process shall loop.

Fixes https://dfinity.atlassian.net/browse/DRE-219 .

Effectively, we skip changelog generation from Git for security hotfixes,
replacing them with the text:

> In accordance with the Security Patch Policy and Procedure that was adopted in proposal
> 48792, the source code that was used to build this release will be exposed at the latest
> 10 days after the fix is rolled out to all subnets.
>
> The community will be able to retroactively verify the binaries that were rolled out.

The rest of the process remains identical.
The Mypy aspect is currently disabled.
1. Typing (not complete).
2. Functional change: check on start for existing election proposals, and save them in local database.
3. Functional change: do no work for versions and releases that have already been proposed.
@DFINITYManu DFINITYManu marked this pull request as ready for review January 16, 2025 17:01
@DFINITYManu DFINITYManu requested a review from a team as a code owner January 16, 2025 17:01
@DFINITYManu DFINITYManu marked this pull request as draft January 17, 2025 11:36
@DFINITYManu DFINITYManu marked this pull request as ready for review January 17, 2025 16:58
@DFINITYManu DFINITYManu marked this pull request as draft January 17, 2025 17:40
@DFINITYManu DFINITYManu marked this pull request as ready for review January 17, 2025 19:14
…hing in Markdown must have changed with respect to quoting.
Copy link
Contributor

@NikolaMilosa NikolaMilosa left a comment

Choose a reason for hiding this comment

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

Feels like we are trying everything we can to make python feel like something it isn't. How about we rewrite it in rust and the modules that we can't recreate we keep as python scripts?

This is just absurd amount of changes to review IMHO, I reviewed just bazel stuff

BUILD.bazel Outdated Show resolved Hide resolved
bazel/conf/.bazelrc.build Outdated Show resolved Hide resolved
release-controller/BUILD.bazel Show resolved Hide resolved
@DFINITYManu
Copy link
Contributor Author

@NikolaMilosa I would be in favor of rewriting at least the reconciler in Rust. However, with these changes, it's far easier to work on the reconciler.

Copy link
Member

@sasa-tomic sasa-tomic left a comment

Choose a reason for hiding this comment

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

LGTM!

release-controller/dryrun.py Show resolved Hide resolved
@DFINITYManu DFINITYManu merged commit 60e7570 into main Jan 20, 2025
5 checks passed
@DFINITYManu DFINITYManu deleted the dre-219 branch January 20, 2025 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants