Skip to content

ISSUE-368: Renovate Drupal presets #831

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

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

beto-aveiga
Copy link
Collaborator

@beto-aveiga beto-aveiga commented Apr 28, 2025

resolves: #368
Adds a preset for Drupal 10.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Hello @beto-aveiga, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Summary of Changes

This pull request adds a Renovate preset for Drupal 10. It includes a new JSON5 configuration file (renovate-presets/drupal-10.json5) containing Renovate settings tailored for Drupal 10 projects. Additionally, the README.md file is updated to provide instructions on how to use and extend these presets.

Highlights

  • New Drupal 10 Preset: A new Renovate preset specifically for Drupal 10 projects has been added, including configurations for composer dependencies, package rules, and grouping of related modules.
  • README Update: The README file has been updated with instructions on how to use and extend the new Drupal 10 Renovate preset in your projects.

Changelog

  • README.md
    • Added a section explaining how to use and extend the Drupal 10 Renovate preset.
    • Provided a code snippet demonstrating how to extend the preset in a Renovate configuration.
    • Added a newline character at the end of the file.
  • renovate-presets/drupal-10.json5
    • Created a new JSON5 file containing Renovate configuration settings for Drupal 10 projects.
    • Configured base branches, extends, labels, and package rules for Drupal 10 dependency updates.
    • Defined package rules for composer dependencies, major/minor/patch updates, Drupal core updates, jQuery packages, location modules, Drupal Migrate modules, Metatag modules, and File media modules.
    • Set platform to GitHub, concurrent PR limit to 3, range strategy to bump, and rebase when auto.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


A bot's gentle hand,
Updates flow across the land,
Drupal's kept so fresh.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds a Renovate preset for Drupal 10, which is a great addition to the project. The changes look good overall, but I have a few suggestions for improvement.

Merge Readiness

The code changes are generally well-done. I am unable to directly approve the pull request, and users should have others review and approve this code before merging. I would recommend addressing the comments before merging.

@@ -0,0 +1,90 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"baseBranches": ["renovate-updates"],

Choose a reason for hiding this comment

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

medium

Consider adding a description of what this branch is used for, as well as a link to the documentation for it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Done!

Copy link
Member

Choose a reason for hiding this comment

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

@deviantintegral were you expecting our preset to live in Drainpipe or was there a registry we could submit it to so more people were aware of it?

Copy link
Member

Choose a reason for hiding this comment

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

I had been thinking we'd contribute a Drupal preset upstream to Renovate itself.

https://github.com/renovatebot/renovate/blob/main/docs/development/creating-editing-renovate-presets.md

I don't think we should set "baseBranches": ["renovate-updates"], by default, as that's a project level decision. It also doesn't play well with automerging dev dependencies, or automerging in general.

Copy link
Member

Choose a reason for hiding this comment

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

@beto-aveiga Next step is to commit a very basic version of this to Renovate that only addresses things that ship with Drupal core. Evaluate what is in "group:symfony" as an example of how we should structure the Drupal specific preset.

Avoid setting automerge. We may want to do that on our projects, but we shouldn't impose that on other projects using Drainpipe.

@github-actions github-actions bot requested a deployment to pantheon-pr-831 April 28, 2025 14:44 In progress
@github-actions github-actions bot had a problem deploying to pantheon-pr-831 April 28, 2025 14:47 Failure
Copy link
Member

@deviantintegral deviantintegral left a comment

Choose a reason for hiding this comment

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

There's a lot more here than just setting up grouping for Drupal! Let's start with contributing package groupings for Drupal core only upstream. Otherwise, there's a lot here that feels either like project specific decisions or not something you'd want to group (to be able to detect which module update broke an automated test).

@@ -0,0 +1,90 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"baseBranches": ["renovate-updates"],
Copy link
Member

Choose a reason for hiding this comment

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

I had been thinking we'd contribute a Drupal preset upstream to Renovate itself.

https://github.com/renovatebot/renovate/blob/main/docs/development/creating-editing-renovate-presets.md

I don't think we should set "baseBranches": ["renovate-updates"], by default, as that's a project level decision. It also doesn't play well with automerging dev dependencies, or automerging in general.

@@ -0,0 +1,90 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"baseBranches": ["renovate-updates"],
Copy link
Member

Choose a reason for hiding this comment

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

@beto-aveiga Next step is to commit a very basic version of this to Renovate that only addresses things that ship with Drupal core. Evaluate what is in "group:symfony" as an example of how we should structure the Drupal specific preset.

Avoid setting automerge. We may want to do that on our projects, but we shouldn't impose that on other projects using Drainpipe.

@github-actions github-actions bot requested a deployment to pantheon-pr-831 May 9, 2025 17:30 In progress
@github-actions github-actions bot requested a deployment to pantheon-pr-831 May 9, 2025 17:39 In progress
@beto-aveiga beto-aveiga requested a review from mrdavidburns May 9, 2025 17:41
@beto-aveiga
Copy link
Collaborator Author

I wonder if we should have a Lullabot renovate preset, apart from this preset, to be more opinionated and aligned with what we think are the most common best practices we do when building Drupal.

@mrdavidburns

…upport-generating-renovate-json-configs-edit-new-issue
@@ -0,0 +1,23 @@
{
Copy link
Member

Choose a reason for hiding this comment

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

Let's not have a version specific one since we're doing the bare minimum configuration for Drupal best practices that we'll push up to Renovate defaults.

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.

Support generating renovate.json configs
3 participants