Skip to content

Conversation

zubri
Copy link
Member

@zubri zubri commented May 7, 2025

Summary by CodeRabbit

  • New Features

    • Added a UETR field to Swift message objects (10.3.0).
  • Bug Fixes

    • Parser robustness for empty blocks and prevention of OOB/NPEs; default sender LT set to "X".
    • Field parsing/format fixes: Field70 trailing slash handling, Field13W component fixes, Fields 60/62/64/65 DC mandatory.
    • Narrative resolver, XML escaping, metadata extraction, comparator/output validation improvements; schema additions for MT XML/JSON.
  • Chores

    • Reorganized changelog into 10.3.x with SWIFT 2025 updates; upgraded build tooling, dependencies, Gradle wrapper and scripts; SPDX/license header added.

ptorres-prowide and others added 10 commits May 5, 2025 15:27
* ./gradlew codegenMtFields -PSRU=2025 -xtest --no-daemon

* ./gradlew generateFieldEnum -PSRU=2025 -xtest --no-daemon

* ./gradlew codegenMtClasses -PSRU=2025 -xtest --no-daemon

* ./gradlew generateMtSequenceEnum -PSRU=2025 -xtest --no-daemon

* ./gradlew codegenMtSchemes -PSRU=2025 -xtest --no-daemon

* ./gradlew codegenMtProperties -PSRU=2025 -xtest --no-daemon

* CU-86b4upx87_Fix-SRU-logic-for-codegen

* Draft gradle.build hardcoded version
Copy link
Contributor

coderabbitai bot commented May 7, 2025

📝 Walkthrough

Walkthrough

Reorganizes CHANGELOG into 10.3.x snapshots (10.3.0 → 10.3.6), records multiple Swift-related updates (including uetr and SchemeConstantsR additions), updates build configuration and dependencies, and updates Gradle wrapper and wrapper scripts for robustness, POSIX compliance, and licensing headers.

Changes

Cohort / File(s) Change Summary
Changelog
CHANGELOG.md
Reworked history into 10.3.x snapshots (10.3.0 → 10.3.6), folded 10.2.x history, documented Swift 2025 changes, added uetr field entry in AbstractSwiftMessage and SchemeConstantsR entry.
Build configuration & deps
build.gradle
Updated SRU to SRU2025; switched scmVersion to use versionCreator('simple') and direct prefix/separator assignment; replaced dynamic version with fixed project.version = "SRU2025-10.3.6"; bumped build plugins; upgraded com.google.code.gson:gson and test deps (junit-jupiter, added junit-platform-launcher).
Gradle wrapper properties
gradle/wrapper/gradle-wrapper.properties
Upgraded Gradle distribution from 8.128.14; added validateDistributionUrl=true.
Wrapper scripts
gradlew, gradlew.bat
Added SPDX license header; improved APP_HOME detection; replaced which with command -v for java checks; moved and clarified JVM opts comments (disallow shell fragments); redirected JAVA_HOME error messages to stderr in gradlew.bat.

Sequence Diagram(s)

sequenceDiagram
    participant Dev as Developer
    participant Wrapper as Gradle Wrapper (scripts + props)
    participant Gradle as Gradle 8.14
    participant Remote as Remote Repos

    Dev->>Wrapper: run `./gradlew` / `gradlew.bat`
    Wrapper->>Gradle: start Gradle using `gradle-wrapper.properties`
    Gradle->>Remote: resolve plugins & dependencies (bumped versions)
    Remote-->>Gradle: return artifacts
    Gradle-->>Wrapper: execute build with fixed `project.version = "SRU2025-10.3.6"`
    Wrapper-->>Dev: return build result
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • zubri
  • fernando-prowide

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 163be57 and 236e1b0.

📒 Files selected for processing (1)
  • build.gradle (4 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Analyze (java)
  • GitHub Check: build
  • GitHub Check: Analyze (java)
🔇 Additional comments (2)
build.gradle (2)

59-59: Gson version 2.13.1 is up-to-date; no upgrade required
2.13.1 is the latest stable release (Apr 24, 2025) and all known CVEs (e.g., CVE-2022-25647) were fixed in 2.8.9, with no advisories affecting 2.13.1. citeturn1search2turn1search4turn2search0turn2search2


7-10: Gradle wrapper 8.14 satisfies all plugin minimum Gradle version requirements: ru.vyarus:gradle-quality-plugin 5.0.0 requires Gradle ≥ 7 (github.com); pl.allegro.tech.build:axion-release-plugin 1.18.18 requires Gradle ≥ 7.6 (github.com); io.github.gradle-nexus:publish-plugin 2.0.0 requires Gradle ≥ 6.2 (github.com). No wrapper bump needed.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch SRU2025

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e21be1d and c9e5437.

⛔ Files ignored due to path filters (295)
  • gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsA.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsB.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsC.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsD.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsF.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsM.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsN.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsP.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsQ.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsR.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsS.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsT.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsU.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsV.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field101.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field102.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field103.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field104.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field105.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field106.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field107.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field108.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field109.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field110.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field111.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field113.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field114.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field115.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field116.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field117.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field118.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field119.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field11A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field11R.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field11S.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field120.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field121.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field122.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field123.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field124.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field125.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field126.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field127.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field128.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field129.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field12G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field130.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field132.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field133.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field134.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field135.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field136.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field137.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field13A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field13B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field13C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field13D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field13J.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field13K.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field140.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field141.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field142.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field143.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field144.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14J.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14K.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14L.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14M.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14O.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14P.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14Q.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14R.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field14S.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field151.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field152.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field153.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15I.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15J.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15K.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15L.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15M.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15O.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field15P.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field165.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field16A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field16C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field16D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field16R.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field16S.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field16W.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field171.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field172.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field173.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field174.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field175.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field177.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field179.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17I.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17L.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17M.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17O.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17P.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17Q.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17R.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17S.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17T.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17U.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17V.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17W.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17X.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17Y.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field17Z.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field18A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field18B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field18C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field18D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field19.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field199.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field19A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field19B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field19C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field19Y.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field19Z.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field20.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field202.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field203.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field204.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field206.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field208.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field209.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field20C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field20D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field20N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field20U.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21P.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field21R.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22K.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22L.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22M.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22P.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22Q.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22R.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22S.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22T.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22U.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22V.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22W.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22X.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22Y.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field22Z.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23R.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23S.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field23X.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field242.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field243.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field24B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field24D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field24E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field24G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field25.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field251.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field252.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field253.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field254.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field255.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field256.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field257.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field258.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field259.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field25A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field25D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field25P.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field260.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field263.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field264.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26K.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field26T.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field27.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field270.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field271.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field272.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field28.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field280.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field281.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field28C.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field28D.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field28E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29A.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29B.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29E.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29I.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29J.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29L.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29M.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29O.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29Q.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field29W.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field301.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field302.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field303.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field304.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field305.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field307.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30F.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30G.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30H.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30I.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30J.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30K.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30M.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30N.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30P.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30Q.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30S.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30T.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30U.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30V.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30X.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30Y.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field30Z.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field311.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field312.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/model/field/Field313.java is excluded by !**/generated/**
📒 Files selected for processing (5)
  • CHANGELOG.md (1 hunks)
  • build.gradle (4 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • gradlew (5 hunks)
  • gradlew.bat (3 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


5-5: Bare URL used
null

(MD034, no-bare-urls)


6-6: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Analyze (java)
🔇 Additional comments (14)
gradlew.bat (3)

16-16: Add SPDX license identifier for clarity.

Including the SPDX-License-Identifier: Apache-2.0 comment enhances compliance and makes license information machine-readable.


48-53: Redirect missing‐JAVA_HOME error messages to stderr.

Changing the echo lines to 1>&2 ensures error diagnostics are correctly sent to stderr, improving script robustness in CI environments.


62-67: Redirect invalid‐JAVA_HOME error messages to stderr.

Consistent with the previous hunk, these echo ... 1>&2 lines now properly route error output to stderr for invalid JAVA_HOME.

gradle/wrapper/gradle-wrapper.properties (2)

3-3: Upgrade Gradle distribution URL to 8.14.

Updating distributionUrl to gradle-8.14-bin.zip aligns with the wrapper version bump and ensures the build uses the intended Gradle release.


5-5: Enable distribution URL validation.

Adding validateDistributionUrl=true strengthens security by verifying the wrapper’s download URL during execution.

build.gradle (4)

7-10: Upgrade build plugins to latest tested versions.

Bumping to gradle-quality-plugin:5.0.0, axion-release-plugin:1.18.18, publish-plugin:2.0.0, and spotless-plugin-gradle:7.0.3 aligns with the SRU2025 release.


27-27: Update SRU project property to 2025.

Incrementing SRU to SRU2025 correctly reflects the new SWIFT release year.


36-38: Switch from dynamic to fixed project version.

Locking project.version = "SRU2025-10.3.0-SNAPSHOT" makes the snapshot explicit and reproducible for this release.


58-58: Align Gson dependency with changelog.

Setting gson:2.13.1 matches the version noted in CHANGELOG.md for 10.3.0‐SNAPSHOT.

gradlew (5)

18-19: Add SPDX license identifier for POSIX script.

Including # SPDX-License-Identifier: Apache-2.0 makes the license declaration machine-readable, mirroring the batch script.


89-90: Suppress cd output to avoid $CDPATH issues.

Redirecting cd -P output to /dev/null ensures predictable resolution of APP_HOME even when CDPATH is set.


136-142: Use command -v for POSIX compliance.

Replacing which with command -v enhances portability and accurate detection of java in the PATH.


150-151: Update shellcheck disable comments.

Adding SC2039 alongside SC3045 ensures compatibility checks for built-in ulimit usage.


204-212: Reposition DEFAULT_JVM_OPTS assignment.

Moving DEFAULT_JVM_OPTS closer to argument assembly and clarifying shell‐fragment pitfalls improves script readability and maintainability.

CHANGELOG.md Outdated
@@ -1,5 +1,11 @@
# Prowide Core - CHANGELOG

#### 10.3.0 - SNAPSHOT
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Reduce heading level increment.

The new entry uses #### under an # header—consider changing to ## or ### to maintain proper markdown hierarchy.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🤖 Prompt for AI Agents (early access)
In CHANGELOG.md at line 3, the heading level for the version entry is set to
#### under a top-level # header, which disrupts markdown hierarchy. Change the
heading level from #### to either ## or ### to maintain proper nested structure
and improve readability.

@nazeer1100126
Copy link

Hi can you release this PR changes please

zubri and others added 5 commits May 14, 2025 19:37
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.11.4 to 5.12.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit-framework@r5.11.4...r5.12.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 47f33aa and 78f3d02.

📒 Files selected for processing (1)
  • build.gradle (5 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
  • GitHub Check: Analyze (java)
  • GitHub Check: Analyze (java)
🔇 Additional comments (4)
build.gradle (4)

7-10: Plugin version upgrades
All Gradle plugins have been bumped to their latest 2025‐release versions (quality-plugin → 5.0.0, axion-release → 1.18.18, publish-plugin → 2.0.0, spotless → 7.0.3), which aligns with the updated Gradle wrapper 8.14.


27-27: Bump SRU project extension to SRU2025
The SRU project property was incremented to 'SRU2025' to match the new SWIFT release year.


58-58: Upgrade Gson dependency to 2.13.1
Gson was updated from 2.11.0 to 2.13.1. Please verify there are no breaking changes in your JSON serialization/deserialization paths (e.g., check custom TypeAdapter behavior).


68-69: Update JUnit test dependencies
JUnit Jupiter is now at 5.12.2 and the JUnit Platform Launcher at 1.12.2. This ensures test discovery under the new Gradle and Java toolchain settings remains reliable.

build.gradle Outdated
Comment on lines 36 to 37
//project.version = "${SRU}-${scmVersion.version}"
project.version = "SRU2025-10.3.0-SNAPSHOT"
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Lock snapshot version and remove dead code
You switched from a dynamically generated SCM version to a fixed SRU2025-10.3.0-SNAPSHOT. If the old dynamic assignment ("${SRU}-${scmVersion.version}") is no longer needed, consider deleting the commented line to keep the build script clean.

🤖 Prompt for AI Agents
In build.gradle around lines 36 to 37, remove the commented-out line that
dynamically sets the project version using SCM versioning since you have
switched to a fixed snapshot version. This will clean up dead code and keep the
build script tidy.

fernando-prowide and others added 2 commits May 27, 2025 15:36
* Add uetr as a new property of the AbstractSwiftMessage

* chore: fix version tag in javadoc

* chore: changelog

* chore: changelog PR number

---------

Co-authored-by: zubri <sebastian@prowidesoftware.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 78f3d02 and e946992.

⛔ Files ignored due to path filters (6)
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsA.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsB.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsD.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsF.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsN.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsP.java is excluded by !**/generated/**
📒 Files selected for processing (1)
  • CHANGELOG.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


5-5: Bare URL used
null

(MD034, no-bare-urls)


6-6: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Analyze (java)
🔇 Additional comments (4)
CHANGELOG.md (4)

3-3: Skip: Maintain existing heading level
The #### 10.3.0 - SNAPSHOT heading matches the level used by prior version entries in this file; no change needed.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Verify release date description
The “SWIFT Standard release update 2025 (live 22 November 2025)” entry correctly documents the go-live date.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


6-7: Dependency version bumps look good
Updating commons-lang3 to 3.17.0 and gson to 2.13.1 aligns with the corresponding changes in build.gradle.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

6-6: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-9: Document narrative resolver and UETR field addition
The notes correctly describe the free-format parser enhancement for field 70 and the addition of the uetr field in AbstractSwiftMessage.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


#### 10.3.0 - SNAPSHOT
* SWIFT Standard release update 2025 (live 22 November 2025)
* Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Update deprecation URL for SRU2025
The link currently points to SRU2024. It should reference the SRU2025 deprecation guide, e.g.:

-  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
+  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2025/getting-started/deprecation/)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
* Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2025/getting-started/deprecation/)
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


5-5: Bare URL used
null

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In CHANGELOG.md at line 5, update the URL in the deprecation phase note to point
to the SRU2025 guide instead of SRU2024. Replace the existing link with the
correct SRU2025 URL to ensure the documentation references the latest
deprecation information.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
build.gradle (1)

38-38: Remove dead, commented-out snapshot version.
The commented //project.version = "SRU2025-10.3.0" is stale and can be removed to clean up the script.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1dc25b8 and 2779c74.

⛔ Files ignored due to path filters (6)
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsA.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsB.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsD.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsF.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsN.java is excluded by !**/generated/**
  • src/generated/java/com/prowidesoftware/swift/SchemeConstantsP.java is excluded by !**/generated/**
📒 Files selected for processing (1)
  • build.gradle (4 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Analyze (java)
  • GitHub Check: Analyze (java)
  • GitHub Check: build
🔇 Additional comments (4)
build.gradle (4)

27-28: Approve SRU version bump.
Updating SRU from SRU2024 to SRU2025 correctly reflects the new release cycle.


31-35: Approve simplified SCM version configuration.
Switching to versionCreator('simple') with explicit prefix and versionSeparator is clear and maintainable.


59-59: Verify Gson upgrade impact.
Please confirm that bumping gson from 2.11.0 to 2.13.1 does not introduce breaking changes in JSON serialization/deserialization across our codebase.


7-10:

❓ Verification inconclusive

Verify plugin version compatibility.
Ensure that the new plugin versions (gradle-quality-plugin:5.0.0, axion-release-plugin:1.18.18, publish-plugin:2.0.0, spotless-plugin-gradle:7.0.3) are available in the Gradle Plugin Portal and compatible with our Gradle version.

Run this script to check artifact availability on Maven Central:


🏁 Script executed:

#!/bin/bash
for coord in \
  "ru.vyarus:gradle-quality-plugin:5.0.0" \
  "pl.allegro.tech.build:axion-release-plugin:1.18.18" \
  "io.github.gradle-nexus:publish-plugin:2.0.0" \
  "com.diffplug.spotless:spotless-plugin-gradle:7.0.3"; do
  path=$(echo "$coord" | sed 's/:/\//g')
  url="https://repo1.maven.org/maven2/$path/maven-metadata.xml"
  if curl -s "$url" | grep -q "<version>"; then
    echo "✔ Found $coord"
  else
    echo "✖ Missing $coord at $url"
    exit 1
  fi
done

Length of output: 825


🏁 Script executed:

#!/bin/bash
# Verify that each plugin version exists on the Gradle Plugin Portal
declare -A plugins=(
  ["ru.vyarus.quality"]="5.0.0"
  ["pl.allegro.tech.build.axion-release"]="1.18.18"
  ["io.github.gradle-nexus.publish-plugin"]="2.0.0"
  ["com.diffplug.spotless"]="7.0.3"
)

for plugin_id in "${!plugins[@]}"; do
  version="${plugins[$plugin_id]}"
  url="https://plugins.gradle.org/api/plugins/$plugin_id"
  echo "Checking $plugin_id version $version..."
  if curl -s --fail "$url" | jq -e ".releases[] | select(.version == \"$version\")" > /dev/null; then
    echo "✔ Found $plugin_id:$version on Gradle Plugin Portal"
  else
    echo "✖ Missing $plugin_id:$version on Gradle Plugin Portal"
    exit 1
  fi
done

Length of output: 2296


Confirm Gradle plugin compatibility
All four plugin versions have been found on the Gradle Plugin Portal:

  • ru.vyarus.quality 5.0.0
  • pl.allegro.tech.build.axion-release 1.18.18
  • io.github.gradle-nexus.publish-plugin 2.0.0
  • com.diffplug.spotless 7.0.3

Please review each plugin’s release notes or documentation to ensure they’re compatible with our current Gradle version before merging.

Comment on lines +69 to +70
testImplementation 'org.junit.jupiter:junit-jupiter:5.12.2'
testImplementation 'org.junit.platform:junit-platform-launcher:1.12.2'
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Consider centralizing JUnit versions with a BOM.
Rather than individually managing junit-jupiter:5.12.2 and junit-platform-launcher:1.12.2, consider using the JUnit BOM (Bill of Materials) to ensure version alignment and simplify upgrades.

🤖 Prompt for AI Agents
In build.gradle around lines 69 to 70, the JUnit dependencies specify versions
individually, which can lead to version misalignment. Replace the explicit
version declarations by importing the JUnit BOM in the dependency management
section to centralize and align JUnit versions. Then, remove the version numbers
from the junit-jupiter and junit-platform-launcher dependencies to rely on the
BOM for version control.

@ptorres-prowide ptorres-prowide force-pushed the SRU2025 branch 2 times, most recently from f50251e to 5a18e04 Compare June 25, 2025 20:37
# Conflicts:
#	CHANGELOG.md
#	src/main/java/com/prowidesoftware/swift/model/field/NarrativeResolver.java
#	src/test/java/com/prowidesoftware/swift/model/field/NarrativeResolverTest.java
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (1)
CHANGELOG.md (1)

18-18: Fix incorrect SRU URL (still points to 2024).
The deprecation-guide link should reference SRU2025, otherwise users land on outdated documentation.

-  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
+  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2025/getting-started/deprecation/)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f50251e and fda06fb.

📒 Files selected for processing (1)
  • CHANGELOG.md (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
CHANGELOG.md (4)
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
Learnt from: zubri
PR: prowide/pw-swift-enterprise#1352
File: CHANGELOG.md:3-5
Timestamp: 2025-04-01T22:27:00.834Z
Learning: The changelog formatting in this project should be maintained as is and not modified to follow standard Markdown linting rules. The current format uses h3 headings for version entries and indented bullet points.
Learnt from: ECancrini
PR: prowide/pw-swift-integrator#1023
File: module-translations/src/generated/java/com/prowidesoftware/swift/translations/cbpr/MxPacs01000103_MT204_Translation.java:191-215
Timestamp: 2024-06-10T19:17:35.542Z
Learning: The code in `module-translations/src/generated/java/com/prowidesoftware/swift/translations/cbpr/MxPacs01000103_MT204_Translation.java` is automatically generated and should not be manually refactored for clarity or maintainability.
Learnt from: zubri
PR: prowide/prowide-core#162
File: CHANGELOG.md:16-16
Timestamp: 2024-09-30T21:49:32.724Z
Learning: In the `CHANGELOG.md` file, there is no need to replace hyphens with en dashes in the version headings.
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


6-6: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


11-11: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


12-12: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


12-12: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


13-13: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


14-14: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


16-16: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


17-17: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


17-17: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


18-18: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


18-18: Bare URL used

(MD034, no-bare-urls)


19-19: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


20-20: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


21-21: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


22-22: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Analyze (java)
  • GitHub Check: build
  • GitHub Check: Analyze (java)

CHANGELOG.md Outdated
#### 10.2.8 - June 2025
#### 10.3.3 - SNAPSHOT
* (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
* Adding a new entry to SchemeConstantsR class
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Align verb tense with surrounding items.

Bullet lists elsewhere use past-tense verbs (“Added”, “Fixed”). For consistency:

-  * Adding a new entry to SchemeConstantsR class
+  * Added a new entry to `SchemeConstantsR` class
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* Adding a new entry to SchemeConstantsR class
* Added a new entry to `SchemeConstantsR` class
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
In CHANGELOG.md at line 5, the bullet point "Adding a new entry to
SchemeConstantsR class" uses present continuous tense, which is inconsistent
with other entries that use past tense. Change the verb "Adding" to its past
tense form "Added" to align with the surrounding items and maintain consistency
in the changelog.


#### 10.2.8 - June 2025
#### 10.3.3 - SNAPSHOT
* (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Tighten wording & remove redundancy.

The phrase “format field 70 (used in field 70)” repeats itself. Consider:

-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
+  * (PW-2541) Updated the narrative resolver for field 70 to allow multiple lines and to use `//` as code-word separator (`/CODEWORD1/text///CODEWORD2/text`)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
* (PW-2541) Updated the narrative resolver for field 70 to allow multiple lines and to use `//` as code-word separator (`/CODEWORD1/text///CODEWORD2/text`)
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

🤖 Prompt for AI Agents
In CHANGELOG.md at line 4, the phrase "format field 70 (used in field 70)" is
redundant. Remove the repeated part to tighten the wording, so it only mentions
"format field 70" once for clarity and conciseness.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (5)
build.gradle (1)

69-70: Use the JUnit BOM to keep Jupiter and Platform versions aligned
This comment was already raised in an earlier review and still applies.

CHANGELOG.md (4)

3-3: Heading level jumps; use ### instead of ####
Same markdown-lint issue reported before.


5-5: Use past tense to match surrounding bullets
Still “Adding” -> “Added”.


23-23: Deprecation-guide URL still points to SRU2024
Link should be /SRU2025/…. Issue was flagged previously.


4-4: Remove redundant “(used in field 70)”
The phrase repeats itself and clutters the line.

-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines ...
+  * (PW-2541) Updated the narrative resolver for field 70 to allow multiple lines ...
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d8b2ef5 and 83d0e4d.

📒 Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • build.gradle (4 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
build.gradle (1)
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
CHANGELOG.md (5)
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
Learnt from: zubri
PR: prowide/pw-swift-enterprise#1352
File: CHANGELOG.md:3-5
Timestamp: 2025-04-01T22:27:00.834Z
Learning: The changelog formatting in this project should be maintained as is and not modified to follow standard Markdown linting rules. The current format uses h3 headings for version entries and indented bullet points.
Learnt from: zubri
PR: prowide/prowide-core#162
File: CHANGELOG.md:16-16
Timestamp: 2024-09-30T21:49:32.724Z
Learning: In the `CHANGELOG.md` file, there is no need to replace hyphens with en dashes in the version headings.
Learnt from: ECancrini
PR: prowide/pw-swift-integrator#1289
File: module-translations/src/test/java/com/prowidesoftware/swift/translations/chaps/v1_4/MT202_Pacs004_CHAPS_TranslationTest.java:27-48
Timestamp: 2025-04-11T14:58:22.887Z
Learning: The ProWide SWIFT integrator testing framework includes validation in the BaseTranslationTestCase.doTest() methods that verify: 1) the message type matches the translator's expected type, 2) the translated message has the expected type, and 3) the translated message passes schema/rule validation without errors. These validations ensure the structural integrity of translations without requiring additional field-specific assertions in every test method.
Learnt from: ECancrini
PR: prowide/pw-swift-integrator#1023
File: module-translations/src/generated/java/com/prowidesoftware/swift/translations/cbpr/MxPacs01000103_MT204_Translation.java:191-215
Timestamp: 2024-06-10T19:17:35.542Z
Learning: The code in `module-translations/src/generated/java/com/prowidesoftware/swift/translations/cbpr/MxPacs01000103_MT204_Translation.java` is automatically generated and should not be manually refactored for clarity or maintainability.
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


6-6: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


10-10: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


11-11: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


13-13: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


14-14: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


14-14: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


16-16: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


17-17: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


17-17: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


18-18: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


19-19: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


21-21: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


22-22: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


22-22: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


23-23: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


23-23: Bare URL used

(MD034, no-bare-urls)


24-24: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


25-25: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


26-26: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


27-27: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Analyze (java)
  • GitHub Check: Analyze (java)
  • GitHub Check: build
🔇 Additional comments (1)
build.gradle (1)

7-10: Confirm major-version plugin bumps won’t break the build
gradle-quality-plugin, axion-release-plugin, publish-plugin, and spotless-plugin-gradle all jumped a major version. Each of these plugins has breaking-change notes (in particular Axion 1.18.x changes default tasks and Spotless 7 drops Gradle 7 support). Please double-check the release notes and run the full build on CI with Gradle 8 to make sure no tasks silently stop running.

dependencies {
implementation 'org.apache.commons:commons-lang3:3.17.0'
implementation 'com.google.code.gson:gson:2.11.0'
implementation 'com.google.code.gson:gson:2.13.1'
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Consider bumping Gson to 2.14.x
2.13.1 is already one year old; 2.14.x fixes CVE-2022-25647 and adds Java-17 module info. Unless you have compatibility constraints, upgrading keeps you off the security radar.

🤖 Prompt for AI Agents
In build.gradle at line 58, the Gson library version is set to 2.13.1, which is
outdated and has known security vulnerabilities. Update the version to the
latest 2.14.x release to include security fixes and Java 17 module support,
unless there are specific compatibility issues preventing this upgrade.

Comment on lines +27 to 35
SRU = 'SRU2025'
}

scmVersion {
versionCreator('simple')
tag {
prefix.set("${SRU}")
versionSeparator.set('-')
prefix = SRU
versionSeparator = '-'
}
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Axion versioning config looks incomplete
You switched to versionCreator('simple') but kept the dynamic ${SRU}-${scmVersion.version} expression.

  1. With simple, tags look like <prefix><version> (e.g. SRU2025-1.0.0). Verify this still matches your distribution naming scheme.
  2. Axion ≥1.17 wants versionSeparator inside tag. You added it—good—but you can now drop the redundant hyphen in the creator (simple already omits separators).
🤖 Prompt for AI Agents
In build.gradle around lines 27 to 35, the Axion versioning configuration uses
versionCreator('simple') but still relies on a dynamic version expression with a
hyphen separator. To fix this, confirm that the tag format with simple
versionCreator matches your distribution naming scheme, then remove any
redundant hyphens from the version expression since simple omits separators.
Also, ensure the versionSeparator is only set inside the tag block as required
by Axion ≥1.17.

Comment on lines +8 to +11
* Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
* Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
* Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
* Feat: Added xsd for validating the result for AbstractMt.xml() output
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Duplicate bullets about the new XSD – consolidate
Lines 8 and 11 both announce the XSD for AbstractMT.xml() output. Keep one bullet to avoid noise.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


10-10: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


11-11: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
In CHANGELOG.md around lines 8 to 11, there are duplicate bullet points about
adding an XSD for validating the AbstractMT.xml() output. Remove one of these
duplicate bullets to consolidate the information and avoid redundancy, keeping
only a single clear bullet describing the addition of the XSD for
AbstractMT.xml() output.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (2)
CHANGELOG.md (2)

17-25: Fix tense, remove duplicates, and normalize names in 10.3.3.

  • Past tense (“Added”), code font for class names.
  • Remove dup XSD line (already covered above).
  • Normalize XML/AbstractMT/Block capitalization.
  • Tighten wording of the Field 70 item.
-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
-  * Fix: Adding a new entry to SchemeConstantsR class
-  * Fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
+  * (PW-2541) Updated the narrative resolver for Field 70 to allow multiple lines and to use `//` as code-word separator (`/CODEWORD1/text///CODEWORD2/text`)
+  * Fix: Added a new entry to `SchemeConstantsR` class
+  * Fix: Enhanced the XML parsing logic to escape/unescape `<` and `>` characters in the XML content
   * Fix: Enhanced the `DefaultMtMetadataStrategy` to prevent NPE when the message headers are malformed
-  * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
+  * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
   * Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
-  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
-  * Feat: Added xsd for validating the result for AbstractMt.xml() output
+  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block 2's Sender Input Time and Receiver Output Time

35-41: Update SRU link to 2025 and keep style consistent.

SRU2025 entry should reference the 2025 deprecation guide.

-  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
+  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2025/getting-started/deprecation/)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e072713 and 8ef3e10.

📒 Files selected for processing (1)
  • CHANGELOG.md (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
📚 Learning: 2025-04-01T22:27:00.834Z
Learnt from: zubri
PR: prowide/pw-swift-enterprise#1352
File: CHANGELOG.md:3-5
Timestamp: 2025-04-01T22:27:00.834Z
Learning: The changelog formatting in this project should be maintained as is and not modified to follow standard Markdown linting rules. The current format uses h3 headings for version entries and indented bullet points.

Applied to files:

  • CHANGELOG.md
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


10-10: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


11-11: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


12-12: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


13-13: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


14-14: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


15-15: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


18-18: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


19-19: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


20-20: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


21-21: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


22-22: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


23-23: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


24-24: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


25-25: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


27-27: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


28-28: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


28-28: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


30-30: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


31-31: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


31-31: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


33-33: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


35-35: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


36-36: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


36-36: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


37-37: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


37-37: Bare URL used

(MD034, no-bare-urls)


38-38: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


39-39: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


40-40: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


41-41: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Analyze (java)
  • GitHub Check: Analyze (java)
  • GitHub Check: build
🔇 Additional comments (1)
CHANGELOG.md (1)

27-29: LGTM for 10.3.2 entry.

Clear, scoped fix entry.

CHANGELOG.md Outdated
Comment on lines 3 to 6
#### 10.3.5 - SNAPSHOT
* feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks

#### 10.2.12 - July 2025
* (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars

Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Tighten wording and correct exception name in 10.3.5.

  • Use the actual Java exception name.
  • Minor clarity/consistency tweaks.
-  * feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
-  * (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars
+  * feat: Enhanced SwiftParser to avoid IndexOutOfBoundsException when parsing messages with empty blocks
+  * (PW-2613) Updated Field 70 codeword splitting logic to allow '/' as trailing character(s)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#### 10.3.5 - SNAPSHOT
* feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
#### 10.2.12 - July 2025
* (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars
#### 10.3.5 - SNAPSHOT
* feat: Enhanced SwiftParser to avoid IndexOutOfBoundsException when parsing messages with empty blocks
* (PW-2613) Updated Field 70 codeword splitting logic to allow '/' as trailing character(s)
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
In CHANGELOG.md around lines 3–6, the entry for 10.3.5 uses a nonstandard
exception name and could be tightened for clarity; change the first bullet to
reference the correct Java exception name (IndexOutOfBoundsException) and
rephrase it to clearly state the SwiftParser was improved to avoid that
exception when parsing messages with empty blocks, and update the second bullet
for consistent tense and clarity (e.g., state that Field70 codeword splitting
was updated to allow '/' as trailing characters and include the ticket
reference).

Comment on lines +7 to +16
#### 10.3.4 - July 2025
* (PW-2594) Fixed format for Fields 60, 62, 64, and 65 to ensure the DC component is mandatory.
* feat: Added new `MtSequenceSeparatorEnum` enum with every MT separator style for its inner sequences in block4

#### 10.2.10 - July 2025
* fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
* feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
* feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
* feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
* feat: Added xsd for validating the result for AbstractMt.xml() output

#### 10.2.9 - June 2025
* (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)

#### 10.2.8 - June 2025
* Fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
* Feat: Added new `MtSequenceSeparatorEnum` enum with every MT separator style for its inner sequences in block4
* Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
* Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
* Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
* Feat: Added xsd for validating the result for AbstractMt.xml() output

Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Deduplicate bullets and normalize terminology in 10.3.4.

  • Remove dup XSD bullet.
  • Keep the Field 70 resolver change only in the version that actually shipped it (appears already in 10.3.3).
  • Normalize XML/Block capitalization.
-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text) 
-  * Fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
-  * Feat: Added new `MtSequenceSeparatorEnum` enum with every MT separator style for its inner sequences in block4
+  * Fix: Enhanced the XML parsing logic to escape/unescape `<` and `>` characters in the XML content
+  * Feat: Added new `MtSequenceSeparatorEnum` with every MT separator style for inner sequences in Block 4
   * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
   * Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
-  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
-  * Feat: Added xsd for validating the result for AbstractMt.xml() output
+  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block 2's Sender Input Time and Receiver Output Time

If 10.3.4 is the correct place for the Field 70 resolver change, instead remove it from 10.3.3 (see next comment).


🏁 Script executed:

#!/bin/bash
# Locate the changelog file
file=$(find . -maxdepth 3 -type f -iname 'changelog.md')
echo "Changelog file: $file"

echo
echo "=== 10.3.3 entries ==="
rg -n '10\.3\.3' -n "$file"

echo
echo "=== 10.3.4 entries ==="
rg -n '10\.3\.4' -n "$file"

echo
echo "=== PW-2541 (Field 70 resolver) occurrences ==="
rg -n 'PW-2541' -n "$file"

echo
echo "=== xsd/XSD occurrences with context ==="
rg -n -C1 '[xX][sS][dD]' -n "$file"

Length of output: 2755


Deduplicate and normalize 10.3.4 changelog entries

  • Remove the (PW-2541) Field 70 resolver bullet (already listed in 10.3.3).
  • Drop the duplicate XSD bullet for validating AbstractMt.xml() output.
  • Fix capitalization: “Xml” → “XML” and “Block2” → “Block 2.”
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


10-10: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


11-11: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


12-12: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


13-13: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


14-14: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


15-15: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
In CHANGELOG.md around lines 7 to 16, the 10.3.4 entry contains duplicate and
inconsistent items: remove the (PW-2541) Field 70 resolver bullet (it is already
present in 10.3.3), drop the duplicate XSD bullet for validating
AbstractMt.xml() output, and normalize capitalization by changing “Xml” to “XML”
and “Block2” to “Block 2.” Ensure the remaining bullets stay in the same order
and grammar is consistent.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
CHANGELOG.md (1)

70-74: Correct SWIFT SRU 2024 go-live date in CHANGELOG.md

In CHANGELOG.md under “10.2.0 – May 2024”, replace “live 16 November 2025” with “live 16 November 2024”.

♻️ Duplicate comments (5)
build.gradle (1)

70-71: Align JUnit with BOM and avoid direct launcher dependency

Use the JUnit BOM for alignment, and remove junit-platform-launcher from testImplementation (Gradle’s test task does not require it).

 dependencies {
+    testImplementation platform('org.junit:junit-bom:5.12.2')
-    testImplementation 'org.junit.jupiter:junit-jupiter:5.12.2'
-    testImplementation 'org.junit.platform:junit-platform-launcher:1.12.2'
+    testImplementation 'org.junit.jupiter:junit-jupiter'
+    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
 }
CHANGELOG.md (4)

3-6: Tighten wording and correct exception name in 10.3.5

Use the proper Java exception and normalize Field 70 formatting.

-  * feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
-  * (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars
+  * Feat: Enhanced SwiftParser to avoid IndexOutOfBoundsException when parsing messages with empty blocks
+  * (PW-2613) Updated Field 70 codeword splitting logic to allow '/' as trailing character(s)

7-16: Deduplicate and normalize 10.3.4

  • Remove the Field 70 resolver bullet (already present in 10.3.3).
  • Fix XML/Block capitalization.
  • Remove the duplicate XSD bullet.
 #### 10.3.4 - July 2025
   * (PW-2594) Fixed format for Fields 60, 62, 64, and 65 to ensure the DC component is mandatory.
-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text) 
-  * Fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
-  * Feat: Added new `MtSequenceSeparatorEnum` enum with every MT separator style for its inner sequences in block4
+  * Fix: Enhanced the XML parsing logic to escape/unescape `<` and `>` characters in the XML content
+  * Feat: Added new `MtSequenceSeparatorEnum` with every MT separator style for inner sequences in Block 4
   * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
   * Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
-  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
-  * Feat: Added xsd for validating the result for AbstractMt.xml() output
+  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block 2's Sender Input Time and Receiver Output Time

17-25: Grammar, capitalization, and consistency in 10.3.3

  • Past tense for “Added”.
  • XML/Block capitalization.
  • XSD capitalization and AbstractMT naming.
  • Normalize “Field 70”.
 #### 10.3.3 - July 2025
-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
-  * Fix: Adding a new entry to SchemeConstantsR class
-  * Fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
+  * (PW-2541) Updated the narrative resolver for Field 70 to allow multiple lines and to use `//` as code-word separator (`/CODEWORD1/text///CODEWORD2/text`)
+  * Fix: Added a new entry to `SchemeConstantsR` class
+  * Fix: Enhanced the XML parsing logic to escape/unescape `<` and `>` characters in the XML content
   * Fix: Enhanced the `DefaultMtMetadataStrategy` to prevent NPE when the message headers are malformed
-  * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
+  * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for `AbstractMT` and subclasses
   * Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
-  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
-  * Feat: Added xsd for validating the result for AbstractMt.xml() output
+  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block 2's Sender Input Time and Receiver Output Time

35-39: Update the deprecation URL to SRU2025

Point to the current guide.

-  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
+  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2025/getting-started/deprecation/)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between b8a07fa and 06a9d0a.

📒 Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • build.gradle (4 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
📚 Learning: 2024-11-19T16:30:09.444Z
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.

Applied to files:

  • CHANGELOG.md
📚 Learning: 2025-04-01T22:27:00.834Z
Learnt from: zubri
PR: prowide/pw-swift-enterprise#1352
File: CHANGELOG.md:3-5
Timestamp: 2025-04-01T22:27:00.834Z
Learning: The changelog formatting in this project should be maintained as is and not modified to follow standard Markdown linting rules. The current format uses h3 headings for version entries and indented bullet points.

Applied to files:

  • CHANGELOG.md
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


9-9: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


10-10: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


11-11: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


12-12: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


13-13: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


14-14: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


15-15: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


17-17: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


18-18: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


18-18: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


19-19: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


20-20: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


21-21: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


22-22: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


23-23: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


24-24: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


25-25: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


27-27: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


28-28: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


28-28: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


30-30: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


31-31: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


31-31: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


33-33: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


35-35: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


36-36: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


36-36: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


37-37: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


37-37: Bare URL used

(MD034, no-bare-urls)


38-38: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


39-39: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


40-40: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


41-41: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Analyze (java)
  • GitHub Check: build
  • GitHub Check: Analyze (java)
🔇 Additional comments (3)
build.gradle (2)

59-59: Gson dependency up-to-date and CVE-free: 2.13.1 is the latest stable release (Apr 24 2025) and has no known public CVEs—no upgrade needed.


7-10: Gradle wrapper version meets plugin requirements
Gradle wrapper is set to 8.14, which satisfies axion-release 1.18.18 (requires ≥7.6) (github.com), spotless 7.0.3 (VER_GRADLE_min 6.1.1) (github.com), and nexus-publish 2.0.0 (requires ≥6.2) (github.com).

CHANGELOG.md (1)

36-36: No change required
The SRU 2025 go-live date of 22 November 2025 is confirmed by SWIFT and IBM documentation.

Comment on lines +31 to 35
versionCreator('simple')
tag {
prefix.set("${SRU}")
versionSeparator.set('-')
prefix = SRU
versionSeparator = '-'
}
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Axion configured but version is hardcoded — pick one source of truth

You’re applying axion-release and configuring tags, but then override version with a fixed string. Either:

  • keep axion as the source of truth, or
  • drop axion for this module and keep a fixed version.

At minimum, remove the dead commented line.

-//project.version = "${SRU}-${scmVersion.version}"

Also applies to: 37-38

🤖 Prompt for AI Agents
In build.gradle around lines 31-35 (and also lines 37-38), axion-release is
configured with versionCreator('simple') and tag settings but the module then
hardcodes the version string, creating two conflicting sources of truth; choose
one approach and clean up the other: either remove the hardcoded version
declaration so axion controls the project version, or delete the axion
configuration and keep the fixed version, and in either case remove the dead
commented line mentioned in the comment to avoid confusion.

Comment on lines +30 to +34
#### 10.3.1 - June 2025
* (PW-2055) Fixed the default message metadata extraction for ACK/NAK to set the service message block 1 BIC as receiver, not as sender
* (PW-2055) Enhanced the `SwiftMessageUtils` extractors to support the service 21 message type (ACK/NAK)
* Fix: Enhanced the `DefaultMtMetadataStrategy` to prevent NPE when the message headers are malformed

Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

NPE fix duplicated across 10.3.1 and 10.3.3 — keep it only where it shipped

Please confirm the release that actually contained this fix and remove the duplicate entry from the other version.


🏁 Script executed:

#!/bin/bash
set -euo pipefail
# Try to locate commits referencing the strategy fix
rg -n "DefaultMtMetadataStrategy|NPE" -C2 CHANGELOG.md
git --no-pager log --decorate --oneline --grep='DefaultMtMetadataStrategy' || true

Length of output: 3880


🏁 Script executed:

#!/bin/bash
set -euo pipefail
# Show the initial releases context to identify the release header for the first NPE entry
sed -n '1,40p' CHANGELOG.md

Length of output: 3273


Remove duplicated NPE fix entry from CHANGELOG
The “Fix: Enhanced the DefaultMtMetadataStrategy to prevent NPE when the message headers are malformed” bullet appears under both 10.3.1 (June 2025) and 10.3.3 (July 2025); retain it only in the version where it first shipped (10.3.1) and remove the redundant entry from 10.3.3.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

30-30: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


31-31: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


31-31: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


33-33: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
CHANGELOG.md around lines 30-34: the "Fix: Enhanced the
`DefaultMtMetadataStrategy` to prevent NPE when the message headers are
malformed" entry is duplicated in release 10.3.3; remove the redundant bullet
from the 10.3.3 (July 2025) section and leave it only under 10.3.1 (June 2025),
preserving formatting and surrounding list ordering.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (4)
CHANGELOG.md (4)

34-38: Keep NPE fix anchored in 10.3.1; remove the 10.3.3 duplicate (see above).


11-20: Deduplicate and normalize 10.3.4.

  • Remove Field 70 resolver here (already listed elsewhere).
  • Drop duplicate XSD bullet.
  • Normalize capitalization (XML, Block 4, Block 2).

Apply:

-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text) 
-  * Fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
-  * Feat: Added new `MtSequenceSeparatorEnum` enum with every MT separator style for its inner sequences in block4
+  * Fix: Enhanced the XML parsing logic to escape/unescape `<` and `>` characters in the XML content
+  * Feat: Added new `MtSequenceSeparatorEnum` enum with every MT separator style for its inner sequences in Block 4
   * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
   * Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
-  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
-  * Feat: Added xsd for validating the result for AbstractMt.xml() output
+  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block 2's Sender Input Time and Receiver Output Time

21-29: Tense, capitalization, and duplicate bullets in 10.3.3.

  • Past tense for SchemeConstantsR.
  • XML capitalization; “Block 2”.
  • Remove duplicated NPE fix (already in 10.3.1) and duplicate XSD bullet.

Apply:

-  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
-  * Fix: Adding a new entry to SchemeConstantsR class
-  * Fix: Enhanced the Xml parsing logic to escape/unescape `<` and `>` characters in the XML content
-  * Fix: Enhanced the `DefaultMtMetadataStrategy` to prevent NPE when the message headers are malformed
+  * (PW-2541) Updated the narrative resolver, format field 70 (used in field 70), to allow multiple lines and using // as codeword separator (/CODEWORD1/text///CODEWORD2/text)
+  * Fix: Added a new entry to `SchemeConstantsR` class
+  * Fix: Enhanced the XML parsing logic to escape/unescape `<` and `>` characters in the XML content
-  * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
-  * Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
-  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block2's Sender Input Time and Receiver Output Time
-  * Feat: Added xsd for validating the result for AbstractMt.xml() output
+  * Feat: Added an XSD for validating the Prowide Core proprietary XML version for MT messages generated by the `xml()` method for the `AbstractMT` and subclasses
+  * Feat: Added JSON schemas for the Prowide Core proprietary JSON version for MT messages generated by the `toJson()` method for the `SwiftMessage` and `MtSwiftMessage` classes
+  * Feat: Enhanced the `SwiftMessageComparator` to allow less strict comparison regarding Block 2's Sender Input Time and Receiver Output Time

39-46: Update SRU link to 2025 guide.

Apply:

-  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
+  * Yearly revision of the deprecation phase (see https://dev.prowidesoftware.com/SRU2025/getting-started/deprecation/)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 06a9d0a and 163be57.

📒 Files selected for processing (1)
  • CHANGELOG.md (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: zubri
PR: prowide/prowide-core#190
File: build.gradle:43-43
Timestamp: 2024-11-19T16:30:09.444Z
Learning: In the Prowide Core project, significant changes such as major Java version upgrades (e.g., from Java 8 to Java 11) are properly documented in the `CHANGELOG.md` and migration notes.
📚 Learning: 2025-04-01T22:27:00.834Z
Learnt from: zubri
PR: prowide/pw-swift-enterprise#1352
File: CHANGELOG.md:3-5
Timestamp: 2025-04-01T22:27:00.834Z
Learning: The changelog formatting in this project should be maintained as is and not modified to follow standard Markdown linting rules. The current format uses h3 headings for version entries and indented bullet points.

Applied to files:

  • CHANGELOG.md
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


11-11: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


12-12: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


12-12: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


13-13: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


13-13: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


14-14: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


15-15: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


16-16: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


17-17: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


18-18: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


19-19: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


21-21: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


22-22: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


22-22: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


23-23: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


24-24: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


25-25: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


26-26: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


27-27: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


28-28: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


29-29: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


31-31: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


32-32: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


32-32: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


34-34: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


35-35: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


35-35: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


36-36: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


37-37: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


39-39: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


40-40: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


40-40: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


41-41: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


41-41: Bare URL used

(MD034, no-bare-urls)


42-42: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


43-43: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


44-44: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


45-45: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Analyze (java)
  • GitHub Check: build
  • GitHub Check: Analyze (java)
🔇 Additional comments (1)
CHANGELOG.md (1)

31-33: LGTM on 10.3.2 entry.

Comment on lines +3 to 9
#### 10.3.6 - August 2025
* feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
* fix: `LogicalTerminalAddress` sender LT "X" is now the default instead of "A" for load balancing by Messaging Interface

#### 10.2.12 - July 2025
#### 10.3.5 - September 2025
* feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
* (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Fix version/date ordering, dedupe entry, and correct exception name.

  • 10.3.6 cannot predate 10.3.5; swap months to keep chronological order with versions.
  • Record the SwiftParser fix once (keep in latest version).
  • Use the correct Java exception: IndexOutOfBoundsException.

Apply:

-#### 10.3.6 - August 2025
+#### 10.3.6 - September 2025
-  * feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
+  * feat: Enhanced SwiftParser to avoid IndexOutOfBoundsException when parsing messages with empty blocks

-#### 10.3.5 - September 2025
+#### 10.3.5 - August 2025
-  * feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
-  * (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars
+  * (PW-2613) Updated Field 70 codeword-splitting logic to allow '/' as trailing character(s)

🏁 Script executed:

#!/bin/bash
set -e
# Locate CHANGELOG.md
file=$(find . -maxdepth 2 -type f -iname 'CHANGELOG.md' | head -n1)
echo "CHANGELOG file: $file"
echo
# List version entries with line numbers
grep -n '^#### ' "$file"
echo
# Check for incorrect exception name
grep -n 'OutOfBoundsException' "$file" || echo "No OutOfBoundsException found"
grep -n 'IndexOutOfBoundsException' "$file" || echo "No IndexOutOfBoundsException found"
echo
# Check for Field70 entry
grep -n 'Field70' "$file" || echo "No Field70 found"

Length of output: 4113


Swap dates, dedupe SwiftParser fix, and correct exception name

  • Swap the dates on 10.3.6 and 10.3.5 to keep chronological order (10.3.6 → September 2025; 10.3.5 → August 2025)
  • Remove the duplicate SwiftParser entry from 10.3.5 so it only appears in 10.3.6
  • Rename OutOfBoundsException to IndexOutOfBoundsException
  • Tidy the Field70 entry: hyphenate “codeword-splitting,” quote “/,” and use “character(s)”

Apply:

-#### 10.3.6 - August 2025
+#### 10.3.6 - September 2025
-  * feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
+  * feat: Enhanced SwiftParser to avoid IndexOutOfBoundsException when parsing messages with empty blocks

-#### 10.3.5 - September 2025
+#### 10.3.5 - August 2025
-  * feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
-  * (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars
+  * (PW-2613) Updated Field70 codeword-splitting logic to allow '/' as trailing character(s)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#### 10.3.6 - August 2025
* feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
* fix: `LogicalTerminalAddress` sender LT "X" is now the default instead of "A" for load balancing by Messaging Interface
#### 10.2.12 - July 2025
#### 10.3.5 - September 2025
* feat: Enhanced SwiftParser for edge cases avoiding OutOfBoundsException when parsing messages with empty blocks
* (PW-2613) Updated the Field70 codeword splitting logic to allow / as trailing chars
#### 10.3.6 - September 2025
* feat: Enhanced SwiftParser to avoid IndexOutOfBoundsException when parsing messages with empty blocks
* fix: `LogicalTerminalAddress` sender LT "X" is now the default instead of "A" for load balancing by Messaging Interface
#### 10.3.5 - August 2025
* (PW-2613) Updated Field70 codeword-splitting logic to allow '/' as trailing character(s)
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h4

(MD001, heading-increment)


3-3: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


4-4: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4-4: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


5-5: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


7-7: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)


8-8: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


9-9: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

🤖 Prompt for AI Agents
In CHANGELOG.md around lines 3 to 9, swap the release dates so 10.3.6 is
September 2025 and 10.3.5 is August 2025, remove the duplicate "Enhanced
SwiftParser..." line from 10.3.5 so it only appears under 10.3.6, rename
"OutOfBoundsException" to "IndexOutOfBoundsException", and tidy the Field70
entry to read something like "(PW-2613) Updated the Field70 codeword-splitting
logic to allow \"/\" as trailing character(s)"—hyphenate "codeword-splitting",
quote "/" and use "character(s)" for clarity.

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