v16.1.0 — Stable v16 Migration Release
This release marks the stable migration of Cargo Management from ERPNext/Frappe v15 to the v16
The main focus of this version is compatibility with Frappe Framework v16, cleanup of legacy v15 UI behavior, workspace/sidebar updates, carrier management improvements, translation updates, and code compliance adjustments for the new app structure
Major Changes
- Updated project configuration for the v16 app structure, including pyproject.toml, linting configuration, pre-commit hooks, and formatting rules.
- Updated hooks and migration patch structure for the v16 layout, including clearer pre/post model sync sections
- DocType Fields migrated, references of Package to Parcel
Workspace and UI Updates
- Removed legacy v15 sidebar-hiding behavior.
- Updated workspaces for Parcels, Sea Parcels, Air Parcels, Warehouse Operations, Shipments, Issues, and Tasks.
- Added the new v16-compatible Desktop Icon and Workspace Sidebar structure for Parcels.
- Improved the Parcel search popup so dialog size is selected dynamically based on the number of fields
Carrier Management Refactor
- Added a more “Frappe-native” carrier model using DocTypes instead of relying only on static JSON.
- Added the Carrier DocType and the child table Carrier Tracking URL.
- Added support for 17Track, AfterShip, and EasyPost as tracking API options.
- Added regex validation on the Carrier DocType to prevent invalid carrier detection patterns from being saved.
- Added the new Cargo Core module to that will have logistics engines.
- Published carrier fixtures and carrier detection patterns.
Bootinfo and Frontend Cleanup
- Moved carrier-related data toward bootinfo-based loading instead of relying on carriers.json.
- Removed old JavaScript logic that loaded carrier settings from the static carrier JSON file.
- Refactored carrier frontend behavior to better match the new DocType-based carrier architecture
Dependencies and Tooling
- Pinned easypost to 10.3
Translations
- Updated POT and Spanish PO translation files for v16
- Added ignore_translatable_strings_from structure in hooks, intended to avoid pulling unnecessary translatable strings from frappe, erpnext, and hrms
Important Notes / Breaking Changes
This release should be treated as a major platform migration, not a small patch
- requires-python = ">=3.14"
- Carrier configuration has moved toward DocType/fixtures-based management
- Workspace and sidebar fixtures changed significantly for v16
- Migration of Historic field package to parcel
- Refactor of the Whole Warehouse Receipt Doctype