Support CHANGELOG with release headers in the linter

This commit is contained in:
Rafael Mendonça França 2023-09-13 01:51:51 +00:00
parent 5c2a112d37
commit 296156033a
No known key found for this signature in database
GPG Key ID: FC23B6D0F1EEE948
3 changed files with 64 additions and 0 deletions

@ -115,6 +115,11 @@ def initialize(file)
def parse
until @buffer.eos?
if peek_release_header?
pop_entry
next parse_release_header
end
if peek_footer?
pop_entry
next parse_footer
@ -136,6 +141,18 @@ def parse_line
FOOTER_TEXT = "Please check"
RELEASE_HEADER = "## Rails"
def peek_release_header?
@buffer.peek(RELEASE_HEADER.length) == RELEASE_HEADER
end
def parse_release_header
@buffer.scan(
/#{RELEASE_HEADER} .*##\n\n/o
)
end
def parse_footer
@buffer.scan(
/#{FOOTER_TEXT} \[\d-\d-stable\]\(.*\) for previous changes\.\n/o

@ -0,0 +1,41 @@
## Rails 7.1.0.beta1 (September 13, 2023) ##
* Fix `simple_format` with blank `wrapper_tag` option returns plain html tag
By default `simple_format` method returns the text wrapped with `<p>`. But if we explicitly specify
the `wrapper_tag: nil` in the options, it returns the text wrapped with `<></>` tag.
Before:
```ruby
simple_format("Hello World", {}, { wrapper_tag: nil })
# <>Hello World</>
```
After:
```ruby
simple_format("Hello World", {}, { wrapper_tag: nil })
# <p>Hello World</p>
```
*Akhil G Krishnan*, *Junichi Ito*
* Don't double-encode nested `field_id` and `field_name` index values
Pass `index: @options` as a default keyword argument to `field_id` and
`field_name` view helper methods.
*Sean Doyle*
* Allow opting in/out of `Link preload` headers when calling `stylesheet_link_tag` or `javascript_include_tag`
```ruby
# will exclude header, even if setting is enabled:
javascript_include_tag("http://example.com/all.js", preload_links_header: false)
# will include header, even if setting is disabled:
stylesheet_link_tag("http://example.com/all.js", preload_links_header: true)
```
*Alex Ghiculescu*

@ -48,6 +48,12 @@ def test_header_ending_with_star_not_treated_as_author
assert_equal 0, offenses.length
end
def test_release_header_is_not_treated_as_offense
@changelog = changelog_fixture("action_view.md")
assert_equal 0, offenses.length
end
def test_validate_authors
assert_offense(<<~CHANGELOG)
* Fix issue in CHANGELOG linting