Skip to content

fix(sidekiq): update regexp for updating docker-compose.yml to properly match#596

Merged
G-Rath merged 1 commit into
mainfrom
update-regexp
Mar 20, 2025
Merged

fix(sidekiq): update regexp for updating docker-compose.yml to properly match#596
G-Rath merged 1 commit into
mainfrom
update-regexp

Conversation

@G-Rath

@G-Rath G-Rath commented Mar 20, 2025

Copy link
Copy Markdown
Contributor

The current regexp will never work because it's expecting a double quote character after the end of the line, which is impossible for two reasons.

Instead, I've replaced both characters with a newline as that feels like a better match (though really in hindsight just removing the double quote probably would have been enough to fix this 😅)

Found via #595

@G-Rath G-Rath requested a review from Copilot March 20, 2025 22:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request updates the regular expression used for detecting the "services:" header in docker-compose.yml files.

  • Updates the regex pattern to match a newline after "services:" instead of an impossible double quote.
  • Fixes a bug where the previous regex never matched any content.
Comments suppressed due to low confidence (1)

variants/sidekiq/template.rb:40

  • The updated regex assumes that 'services:' is immediately followed by a newline. Consider broadening the pattern to account for potential trailing whitespace or alternative line endings to ensure robust matching across different docker-compose.yml formats.
+", after: /^services:\n/

redis:
image: redis
", after: /^services:$"/
", after: /^services:\n/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

non-blocking: I usually prefer \A and \z as start and end delimiters in ruby regex because they don't change behaviour in multi-line strings

@G-Rath G-Rath merged commit efd3437 into main Mar 20, 2025
@G-Rath G-Rath deleted the update-regexp branch March 20, 2025 23:41
G-Rath added a commit that referenced this pull request Mar 27, 2025
The file manipulation methods provided by Thor don't stop execution when
they fail to do the defined manipulation, instead in our case they print
an error but then proceed; we actually want to error in this situation
since the whole point of our template is to be applying our preferred
practices meaning its moot if we don't...

This really came into light with the Rails 8 upgrade which had a number
of changes to the configuration files in particular that caused a number
of our customizations to be skipped.

By introducing bang versions of the methods that error if the file
contents does not change, we can ensure going forward all manipulations
actually work; this uses the same logic I introduced in #533 for
`gsub_file`, and caught a bug that I fixed in #596
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.

5 participants