You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
idnaEncodedURL / idnaDecodedURL on String and Substring: URL-aware variants that transform only the host of a URL-shaped string ([scheme://][userinfo@]host[:port][/path?query#fragment]), leaving every other component unchanged. Use these instead of applying idnaEncoded to a full URL.
Linux support, verified by CI (swift build / swift test on the official Swift container).
GitHub Releases are now created automatically when a version tag is pushed.
CI Success aggregate check for branch protection.
Community files: CHANGELOG.md, CONTRIBUTING.md, SECURITY.md, issue and PR templates.
Changed
Breaking: Package.swift requires swift-tools 5.9 (Xcode 15 or later for SPM consumers) and declares explicit platforms: macOS 10.13, iOS 12, tvOS 12, watchOS 4, visionOS 1.
Product bundle identifiers renamed from com.gumob.* to dev.futamura.*, completing the account rename.
CI runs on pushes and pull requests to main and develop, on current macOS runner images, resolving simulator destinations at runtime.
Releasing is now a separate tag-triggered workflow that verifies the tag against the project version before publishing. Version tags are immutable.
Development tooling: Ruby 3.4 / Bundler 2.7, gems updated to clear all outstanding Dependabot alerts.
Fixed
punycodeDecoded returned garbage characters for malformed input instead of nil: inputs ending mid-digit-sequence (e.g. "y-z") and inputs decoding to C1 control characters (e.g. "abcd") now return nil (#78).
punycodeDecoded / punycodeEncoded could crash on adversarial input due to unchecked integer overflow; the RFC 3492 overflow checks are now implemented and such inputs return nil (#78).
idnaDecoded now accepts an uppercase XN-- ACE prefix (RFC 5890 defines it as case-insensitive).
Changed
Breaking: idnaEncoded now maps the hostname before encoding — NFKC compatibility folding (full-width forms, alternate dots), lowercasing, and NFC — so inputs like "GOO.GL" encode to "goo.gl" (#4). The full UTS #46 mapping table is intentionally not implemented. punycodeEncoded remains the raw RFC 3492 single-label transformation, now documented as such.
Deprecated
CocoaPods distribution ends when the trunk becomes read-only on 2026-12-02. Migrate to Swift Package Manager.
Carthage support is best-effort and no longer CI-verified.