Support CHANGELOG with release headers in the linter
This commit is contained in:
parent
5c2a112d37
commit
296156033a
@ -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
|
||||
|
41
tools/rail_inspector/test/fixtures/action_view.md
vendored
Normal file
41
tools/rail_inspector/test/fixtures/action_view.md
vendored
Normal file
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user