Skip to content

feat: Added support for YunExpress tracking numbers. - #109

Merged
jkeen merged 2 commits into
jkeen:mainfrom
bramp:YunExpress
Aug 13, 2026
Merged

feat: Added support for YunExpress tracking numbers.#109
jkeen merged 2 commits into
jkeen:mainfrom
bramp:YunExpress

Conversation

@bramp

@bramp bramp commented Oct 18, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Added YunExpress as a supported courier for package tracking.
    • Recognizes YunExpress 16-digit tracking numbers, including formats with optional spaces.
  • Documentation

    • Improved spacing in the courier definition documentation for easier reading.

@coderabbitai

coderabbitai Bot commented Oct 18, 2025

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e54c0a0a-f384-41ff-87f2-943a3a5b7f87

📥 Commits

Reviewing files that changed from the base of the PR and between 9bae43b and a9dfa9d.

📒 Files selected for processing (1)
  • README.md

📝 Walkthrough

Walkthrough

Adds a YunExpress courier definition with tracking URL, serial-number pattern, and test numbers. Updates README spacing before the couriers/*.json documentation section.

Changes

YunExpress courier support

Layer / File(s) Summary
Courier definition and documentation spacing
couriers/yunexpress.json, README.md
Adds the YunExpress courier definition with valid and invalid test numbers. Inserts a blank line before the couriers/*.json documentation section.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Suggested reviewers: jkeen

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The pull request title "feat: Added support for YunExpress tracking numbers" directly and clearly reflects the main changes in the changeset. The primary modifications include adding a new YunExpress courier definition file (couriers/yunexpress.json) and updating the README to document this new supported tracking number. The title is concise, specific, and uses clear language without vague terms or noise. A teammate scanning the commit history would immediately understand that YunExpress tracking support was added to the project.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 802d8a5 and 85895e1.

📒 Files selected for processing (2)
  • README.md (1 hunks)
  • couriers/yunexpress.json (1 hunks)
🔇 Additional comments (3)
couriers/yunexpress.json (2)

13-22: Test numbers validation looks correct.

The test numbers align well with the regex pattern:

  • Valid examples have exactly 16 digits (plus YT prefix = 18 total)
  • Spaced variant correctly shows optional spaces are handled
  • Invalid example with only 15 digits correctly fails the pattern

9-12: YunExpress regex follows existing pattern but conflicts with documented requirement—requires developer decision.

The regex indeed lacks a CheckDigit named group, which contradicts the README requirement at line 61. However, this violation is not unique: three other courier files already deployed lack CheckDigit:

  • amazon.json
  • landmark.json
  • lasership.json

Additionally, the README's own tracking number table (lines 14–33) lists many couriers with only SerialNumber, contradicting the stated requirement. No code-level validation was found enforcing this requirement.

Decide whether to:

  1. Remove/relax the requirement from README line 61 (reflecting actual codebase reality)
  2. Add CheckDigit groups to all four files (yunexpress, amazon, landmark, lasership)
  3. Document that CheckDigit is optional for carriers without checksums
README.md (1)

48-48: Formatting change appears reasonable.

The blank line after "## JSON Format" separates the section header from the content, improving readability.

Comment thread README.md Outdated
| **UPS** | UPS | 18 | `1Z5R89390357567127` | `SerialNumber` `CheckDigit` `ShipperId` `ServiceType` `PackageId` |
| | UPS Waybill | 11 | `K2479825491` `V0490119172` | `ServiceType` `SerialNumber` `CheckDigit` |
| **USPS** | USPS 20 | 20 | `0307 1790 0005 2348 3741` | `ServiceType` `ShipperId` `PackageId` `CheckDigit` |
| **YunExpress** | YunExpress | 18 | `YT2229521272164446` | `SerialNumber` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

YunExpress table entry is in the wrong position.

The entry is currently inserted between "UPS Waybill" (line 41) and "USPS 22" (line 43), breaking the alphabetical carrier grouping. YunExpress should be added after all USPS entries (which end at line 45), not in the middle of them.

The carrier order should be: ...UPS Waybill | USPS 20 | USPS 22 | USPS 34v2 | USPS 91 | YunExpress.

Move the YunExpress row to follow the USPS entries. The correct insertion point is after line 45 (USPS 91 entry):

| **USPS**         | USPS 91 (IMpb)            | 25–34  | `420221539101026837331000039521` `9361289878700317633795` | `RoutingApplicationId` `DestinationZip` `ApplicationIdentifier` `SCNC` `ServiceType` `ShipperId` `PackageId` `CheckDigit` |
+| **YunExpress**   | YunExpress                | 18     | `YT2229521272164446`                                      | `SerialNumber`                                                                                                            |

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In README.md around lines 42 to 45, the YunExpress table row is misplaced
between "UPS Waybill" and "USPS 22"; move the entire YunExpress row (the line
currently at 42) so it appears after the USPS entries (i.e., insert it
immediately after line 45 where the USPS 91 entry ends) to restore correct
alphabetical carrier grouping.

@jkeen
jkeen merged commit dd52b7f into jkeen:main Aug 13, 2026
3 checks passed
github-actions Bot pushed a commit that referenced this pull request Aug 13, 2026
# [1.12.0](v1.11.1...v1.12.0) (2026-08-13)

### Bug Fixes

* loosen FedEx express pattern to match new number formats ([#117](#117)) ([9d19f67](9d19f67))

### Features

* add Canpar, Purolator, and Spee-Dee courier definitions ([#116](#116)) ([fd1f916](fd1f916))
* Add support for GOFO Express (US). ([#110](#110)) ([5912b86](5912b86))
* Add support for the LaserShip 1LSCX format. ([#107](#107)) ([4d3311d](4d3311d))
* Added support for YunExpress tracking numbers. ([#109](#109)) ([dd52b7f](dd52b7f))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.12.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants