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

letsencrypt: Update to Certbot 2.11.0/Alpine 3.20/Python 3.12 #3751

Merged
merged 4 commits into from
Sep 26, 2024

Conversation

agners
Copy link
Member

@agners agners commented Sep 5, 2024

Update to the latest version of Certbot and ACME 2.11.0. While at it, also use the latest base container with Alpine 3.20 with Python 3.12.

Summary by CodeRabbit

  • New Features

    • Upgraded to version 5.2.0, enhancing overall performance and compatibility.
  • Improvements

    • Updated Certbot/ACME to version 2.11.0, improving security and functionality.
    • Upgraded base images to Python 3.12 and Alpine 3.20 for better performance across architectures.
    • Updated several dependency versions, including Cloudflare and Cryptography, to enhance security and compatibility.
  • Deprecations

    • Removed support for Google Domains due to lack of ACME support from the new operator, Squarespace.

Copy link
Contributor

coderabbitai bot commented Sep 5, 2024

📝 Walkthrough
📝 Walkthrough

Walkthrough

The Let's Encrypt project has been updated to version 5.2.0, introducing upgrades to Certbot/ACME (version 2.11.0) and associated plugins. The project now uses Python 3.12 and Alpine 3.20. The build configuration has been revised to reflect these updates, including multiple dependency version increments. The previous version entry for 5.1.4 remains unchanged, noting the removal of Google Domains support.

Changes

File Change Summary
letsencrypt/CHANGELOG.md Added version entry for 5.2.0; upgraded Certbot/ACME to 2.11.0; updated to Python 3.12 and Alpine 3.20.
letsencrypt/build.yaml Upgraded base images to Python 3.12 and Alpine 3.20; incremented various dependency versions including Certbot and Cloudflare.
letsencrypt/config.yaml Updated version number from 5.1.4 to 5.2.0.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@agners
Copy link
Member Author

agners commented Sep 5, 2024

It seems that ClouDNS dependency restriction block upgrade here:
https://github.com/inventage/certbot-dns-cloudns/blob/master/pyproject.toml#L27-L28

@stephenjust @tedski you've been previously involved in adding ClouDNS support, can you maybe tackle this? I guess loosing the restrictions in certbot-dns-cloudns might be all that is needed 🤔

@agners agners marked this pull request as draft September 5, 2024 08:10
@tedski
Copy link
Contributor

tedski commented Sep 5, 2024

I will update certbot-dns-cloudns and submit a PR over there.

letsencrypt/build.yaml Outdated Show resolved Hide resolved
letsencrypt/Dockerfile Outdated Show resolved Hide resolved
Update to the latest version of Certbot and ACME 2.11.0. While at it,
also use the latest base container with Alpine 3.20 with Python 3.12.
@agners agners force-pushed the bump-certbot-to-2.11.0 branch from d17c431 to a42823e Compare September 25, 2024 15:46
@agners agners marked this pull request as ready for review September 25, 2024 15:47
@agners agners requested a review from tedski September 25, 2024 15:49
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (1)
letsencrypt/CHANGELOG.md (1)

3-7: Approved with a minor suggestion for improvement.

The new changelog entry for version 5.2.0 is clear, concise, and follows the established format. It effectively communicates the major updates mentioned in the PR objectives.

Consider adding the specific version numbers for Python and Alpine in the changelog entry for increased clarity. Here's a suggested revision:

 ## 5.2.0

 - Update Certbot/ACME to 2.11.0 & update all plugins to their latest version
-  Update to Python 3.12
-  Update to Alpine 3.20
+  Update to Python 3.12.0
+  Update to Alpine 3.20.0

This change would provide more precise information about the versions being used.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between d17c431 and a42823e.

📒 Files selected for processing (3)
  • letsencrypt/CHANGELOG.md (1 hunks)
  • letsencrypt/build.yaml (2 hunks)
  • letsencrypt/config.yaml (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • letsencrypt/config.yaml
🧰 Additional context used
📓 Path-based instructions (2)
letsencrypt/CHANGELOG.md (6)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'

Pattern */**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.

Pattern */**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"


Pattern */**(html|markdown|md): - Use sentence-style capitalization also in headings.


Pattern */**(html|markdown|md): do not comment on HTML used for icons


Pattern */**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

letsencrypt/build.yaml (6)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'

Pattern */**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.

Pattern */**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"


Pattern */**(html|markdown|md): - Use sentence-style capitalization also in headings.


Pattern */**(html|markdown|md): do not comment on HTML used for icons


Pattern */**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

🔇 Additional comments not posted (4)
letsencrypt/build.yaml (4)

3-7: Base image updates look good.

The base images have been consistently updated across all architectures to use Python 3.12 and Alpine 3.20. This aligns with the PR objectives and should provide the latest features, performance improvements, and security updates.


Line range hint 1-40: Overall changes look good, with a suggestion for a final check.

The updates to base images, Certbot, and most plugins are comprehensive and align well with the PR objectives. The transition to Python 3.12 and Alpine 3.20, along with the Certbot upgrade to 2.11.0, should provide significant improvements.

As a final step, please run this script to ensure no updates were missed:

#!/bin/bash
# Description: Final check for any missed updates

# Test: List all version variables
grep "_VERSION:" letsencrypt/build.yaml

# Test: Check for any TODO or FIXME comments that might indicate pending updates
rg "TODO|FIXME" letsencrypt/

# Test: Look for any hardcoded version numbers in the codebase that might need updating
rg --type python '\d+\.\d+\.\d+'

This will help catch any remaining version-related issues or outdated hardcoded version numbers in the codebase.


14-16: Certbot and plugin version updates look good.

The update of CERTBOT_VERSION to 2.11.0 aligns with the PR objectives. Most plugin versions have been updated accordingly, which is great for maintaining compatibility. The CERTBOT_DNS_CLOUDNS_VERSION update to 0.7.0 addresses the previous review comment.

Please run the following script to check if any remaining plugins might need updating:

This script will help identify any plugins that might have newer versions available.

Also applies to: 18-18, 21-21, 23-24, 39-40


12-13: Version updates for Cloudflare and Cryptography look good.

The significant version jumps (CLOUDFLARE_VERSION to 2.19.4 and CRYPTOGRAPHY_VERSION to 43.0.1) are appropriate for keeping the add-on up-to-date with the latest features and security improvements.

Please ensure compatibility with these new versions by running the following verification script:

✅ Verification successful

Compatibility Verification Needed for Cloudflare and Cryptography Updates

The previous verification script encountered errors. Please run the following corrected script to ensure compatibility with the updated versions:


Cloudflare and Cryptography Version Updates Verified

The updates to CLOUDFLARE_VERSION 2.19.4 and CRYPTOGRAPHY_VERSION 43.0.1 have been successfully verified. No references to the old versions or related TODO/FIXME comments were found.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with updated Cloudflare and Cryptography versions

# Test: Check for any hardcoded version numbers that might need updating
rg --type python "cloudflare.*2\.9\.11|cryptography.*41\.0\.5"

# Test: Look for any imports or usage of these libraries that might be affected by the updates
rg --type python "from cloudflare|import cloudflare|from cryptography|import cryptography"

Length of output: 1364


Script:

#!/bin/bash
# Description: Verify compatibility with updated Cloudflare and Cryptography versions

# Test: Check for any hardcoded version numbers that might need updating
rg --type yaml "CLOUDFLARE_VERSION: 2\.9\.11|CRYPTOGRAPHY_VERSION: 41\.0\.5"

# Test: Look for any mentions of the old versions in the codebase
rg --type yaml "(CLOUDFLARE_VERSION|CRYPTOGRAPHY_VERSION):\s*\d+\.\d+\.\d+"

# Test: Search for TODO or FIXME comments related to these libraries
rg 'TODO|FIXME' --type yaml

Length of output: 292

Copy link
Contributor

@tedski tedski left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link
Member

@sairon sairon left a comment

Choose a reason for hiding this comment

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

LGTM, thanks @agners, and thanks @tedski for unblocking this!

@agners agners merged commit 8cc097b into master Sep 26, 2024
10 checks passed
@agners agners deleted the bump-certbot-to-2.11.0 branch September 26, 2024 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants