[GH-ISSUE #1121] Commit f272517 is a breaking change to 0.33.0 (Update MD024/no-duplicate-heading to remove duplicate parameter allow…) #615

Closed
opened 2026-03-03 01:28:28 +03:00 by kerem · 2 comments
Owner

Originally created by @svew on GitHub (Feb 5, 2024).
Original GitHub issue: https://github.com/DavidAnson/markdownlint/issues/1121

This change removed allow_different_nesting as an allowed parameter of MD024.

This is a logic change that not only deprecates allow_different_nesting, but also changes the underlying logic. This has recently caused issues for our team as we had our configuration set to:

MD024:
  siblings_only: false
  allow_different_nesting: true

This logic change breaks backwards compatibility, and as such should institute a semver major version change.

The behaviour should be patched on existing 0.x.x releases, and either be reverted on main or induce a major version change.

Originally created by @svew on GitHub (Feb 5, 2024). Original GitHub issue: https://github.com/DavidAnson/markdownlint/issues/1121 [This change](https://github.com/DavidAnson/markdownlint/commit/f2725178b1e83b07d7f7cc2db64d42f6aa14b8a1) removed `allow_different_nesting` as an allowed parameter of MD024. This is a logic change that not only deprecates `allow_different_nesting`, but also changes the underlying logic. This has recently caused issues for our team as we had our configuration set to: ```yaml MD024: siblings_only: false allow_different_nesting: true ``` This logic change breaks backwards compatibility, and as such should institute a [semver major version change](https://semver.org/#spec-item-7). The behaviour should be patched on existing 0.x.x releases, and either be reverted on main or induce a major version change.
kerem 2026-03-03 01:28:28 +03:00
  • closed this issue
  • added the
    question
    label
Author
Owner

@DavidAnson commented on GitHub (Feb 5, 2024):

I'm sorry for the inconvenience, but the change you link to does not represent a change of behavior for the rule, merely the removal of one of two redundant names for a parameter. The remaining parameter name behaves the same as it did before the change. Your scenario should work the same as before once you set siblings_only to true.

For what it's worth, semantic versioning rule 7 (that you link to) does not apply here. Rule number 4 is the relevant one and allows changes such as this one.

<!-- gh-comment-id:1928084367 --> @DavidAnson commented on GitHub (Feb 5, 2024): I'm sorry for the inconvenience, but the change you link to does not represent a change of behavior for the rule, merely the removal of one of two redundant names for a parameter. The remaining parameter name behaves the same as it did before the change. Your scenario should work the same as before once you set siblings_only to true. For what it's worth, semantic versioning rule 7 (that you link to) does not apply here. Rule number 4 is the relevant one and allows changes such as this one.
Author
Owner

@svew commented on GitHub (Feb 5, 2024):

I definitely do not agree that this doesn't represent a breaking change in behaviour. If in 0.32.0, I have a perfectly valid configuration file and everything works fine, but upon upgrading to 0.33.0, suddenly markdownlint starts erroring on docs that it previously didn't, how could that be anything other than a change in behaviour?

However, as you mentioned (and as I forgot 🤦), 0.x.x is an experimental version and doesn't guarentee stable API, so I'll close this ticket and freeze our version of markdownlint that we use.

<!-- gh-comment-id:1928097268 --> @svew commented on GitHub (Feb 5, 2024): I definitely do not agree that this doesn't represent a breaking change in behaviour. If in 0.32.0, I have a perfectly valid configuration file and everything works fine, but upon upgrading to 0.33.0, suddenly markdownlint starts erroring on docs that it previously didn't, how could that be anything other than a change in behaviour? However, as you mentioned (and as I forgot 🤦), 0.x.x is an experimental version and doesn't guarentee stable API, so I'll close this ticket and freeze our version of markdownlint that we use.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/markdownlint#615
No description provided.