CI verification only — do not merge - #2
Closed
opusstudiohq-max wants to merge 23 commits into
Closed
opusstudiohq-max wants to merge 23 commits into
opusstudiohq-max wants to merge 23 commits into
Conversation
…ng raw hex (objectionary#1427) sprintf-constant-args counted a format specifier by looking for its literal hex byte sequence (e.g. "2566" for "%f") inside the untouched hex dump of the format string. A specifier carrying a flag, width or precision (e.g. "%08.2f") inserts extra bytes between "%" and the conversion letter, so its hex sequence never matched and the lint silently missed the defect. Decode the hex bytes back into the actual characters first (the same approach sprintf-without-formatters already uses), then count specifiers with a regex that understands flags, width and precision. Claude-Session: https://claude.ai/code/session_01TFrxLNmS5phrWQhwndWUCU Co-authored-by: Claude <noreply@anthropic.com>
…ectionary#1428) `XtLint` produced `<defect>` elements with `line`, `severity` and text only, so a pack's `asserts:` had no way to check which rule fired. Each element now also carries `@rule` from `Defect#rule()`. That was the blocking half of the puzzle. The other half it enabled — moving the Java tests that exist only to assert a rule name into YAML packs — is left as a new puzzle rather than done silently here, since it deletes tests and belongs in its own review.
…rs (objectionary#1436) * fix(objectionary#1434): teach test-name.xsl the p🌵/n🌵 test markers The EO parser no longer prefixes a test attribute name with `+` or `-`, because those are not legal φ-calculus attribute names (objectionary/eo#8566). A truthy test now comes as `p🌵name` and a throwing one as `n🌵name`. `eo:test-name` now accepts both spellings, so the two repositories may move independently. Since the markers differ in width, `eo:test-marker` and `eo:test-title` replace the `substring(@name, 2)` slicing in `bad-test-name`, `wrong-test-order`, `unit-test-without-phi` and `incorrect-test-object-name`, while `eo:positive-test` gives `bad-test-name` its polarity instead of `starts-with(@name, '+')`. `LtTestNotVerb` had the marker written into its XPath inline; it now goes through `MarkedName`, the Java twin of the same function. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWJEebtyWwtj6cuN9AoRiq * style(objectionary#1434): keep the new pack assert under 80 columns yamllint reads a breakable line over 80 characters as an error, and the assert in `catches-negative-prefix-in-cactus-positive-test` was 83. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XWJEebtyWwtj6cuN9AoRiq --------- Co-authored-by: Claude <noreply@anthropic.com>
… and support params in XtLint
…rved-name.yaml The parser rejects a comment placed between metas and the object; the earlier cleanup sed only matched single-word comments and missed this two-word one, tripping the deep-tagged validatesEoPacksForErrors check.
… line-length rule The escaped-quote XPath assertion exceeded 80 chars on one line. Switched to a folded block scalar with unquoted XPath (single/double quotes are literal in a YAML plain/folded scalar, so no escaping is needed).
Bump qulice-maven-plugin from 0.35.1 to 0.35.2 and fix the violations reported by the new version: - JavadocEmptyLineBeforeTagCheck (164): add an empty Javadoc line before the block of at-clauses across 80 files - CloseInlineResourceRule (2): close inline AutoCloseable expressions with try-with-resources in Vocabulary, and drop ReaderOf in favour of TextOf in LtByXslTest Claude-Session: https://claude.ai/code/session_01PWNy4KFmfg1LDcDEMufvR8 Co-authored-by: Yegor Bugayenko <yegor@zerocracy.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
…d correct lint rule
objectionary#1442: Handle overflowing syntax versions
objectionary#1440: Treat rho as a special name
LineOf.value() regex-gated line="abc" but still let a numeric string wider than Integer.MAX_VALUE escape as a bare NumberFormatException. Parsing is now wrapped so overflow falls back to 0, same as any other unusable @line value. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LXmkW1iAS7vgk51MWW4wdm
fix(objectionary#1451): catch overflow when parsing numeric @line values
`Version.CORE` was anchored at the start only, and `parsed` used `find`, so it read the first three numbers it met and ignored whatever followed. `1.2.3garbage`, `1.2.3.4` and `999.0.0oops` all came back as valid versions. That reaches a user through `LtSyntaxVersion`, which documents that a non-SemVer `+syntax` value is ignored. A malformed value was instead compared as if it were a version, so `+syntax 999.0.0oops` could raise a hard error demanding a newer parser. The pattern now describes the whole spelling and `matches` requires all of it: the numeric core, then an optional SemVer pre-release or build suffix. A real pre-release such as `1.2.3-alpha.1` is still read by its numeric core, which is what the comparison wants. The digits are still `\d+` rather than SemVer's stricter no-leading-zero form, so nothing that parses today stops parsing except the malformed spellings above. A component above `Integer.MAX_VALUE` still matches the pattern and is still turned into an empty result by the existing `NumberFormatException` guard; the last test pins that, so this change cannot quietly undo objectionary#1442.
Owner
Author
|
Verified green; upstream PR is objectionary#1469. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Runs the Maven build against the fix for objectionary#1450 before it is proposed upstream.