Bump version to 0.30.0
This commit is contained in:
@@ -4,6 +4,44 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||||
|
|
||||||
|
## [0.30.0] - 2026-09-30
|
||||||
|
### Added
|
||||||
|
- Manual vouchers (an integrated carrier's voucher typed in by hand) can be
|
||||||
|
edited and tracked by hand from the order page: "Edit number" (the number
|
||||||
|
stays required) and "Add tracking update" now show for them, as they do
|
||||||
|
for manual carriers. An In Transit / Collected update dispatches the
|
||||||
|
order and sends the "on its way" email; Delivered marks it delivered and
|
||||||
|
stops tracking polls for it. The carrier's own checkpoints keep coming in
|
||||||
|
alongside.
|
||||||
|
- A shipping method's "Tracking URL" can now be set for every driver, not
|
||||||
|
only `manual`. For an integrated carrier it's copied onto vouchers added
|
||||||
|
with "Add manual voucher", so they get the "Carrier tracking" link in the
|
||||||
|
admin and a "Track your parcel" link in the dispatched email.
|
||||||
|
API-created shipments still send customers to the order page. Vouchers
|
||||||
|
added before this have no link.
|
||||||
|
- The customer's delivery instructions are sent to the carrier: ELTA's
|
||||||
|
remarks (ΠΑΡΑΤΗΡΗΣΕΙΣ, one line, 90 characters) and ACS's
|
||||||
|
`Delivery_Notes`. ELTA labels print them in the ΠΑΡΑΤΗΡΗΣΕΙΣ box (up to 3
|
||||||
|
lines on A4, 2 on A6 and the payment stub).
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Tracking polls run one queued job per shipment: `PollShipmentTrackingJob`
|
||||||
|
now only finds the shipments to poll and dispatches a
|
||||||
|
`RefreshShipmentTrackingJob` for each as a batch (`allowFailures`). A
|
||||||
|
slow or failing carrier call only affects its own job, with its own 45s
|
||||||
|
timeout; a failed one is retried by the next poll, five minutes later.
|
||||||
|
Needs the `job_batches` table (Laravel's default jobs migration).
|
||||||
|
- `PollShipmentTrackingJob` is unique, so a scheduled run is dropped while
|
||||||
|
the previous one is still pending. `RefreshShipmentTrackingJob` is unique
|
||||||
|
per shipment, so the same shipment is never refreshed twice at once,
|
||||||
|
which could record a checkpoint twice and fire its emails twice.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- "Add manual voucher" and a manual carrier's "Create Shipment" failed
|
||||||
|
with an SQL error ("missing FROM-clause entry for table lunar_orders")
|
||||||
|
whenever a voucher number was entered: their unique check on the
|
||||||
|
shipments table also excluded the current order's id.
|
||||||
|
|
||||||
## [0.29.3] - 2026-09-30
|
## [0.29.3] - 2026-09-30
|
||||||
### Fixed
|
### Fixed
|
||||||
- Queued shipping jobs did nothing: `PollShipmentTrackingJob` and
|
- Queued shipping jobs did nothing: `PollShipmentTrackingJob` and
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"name": "boboko/core",
|
"name": "boboko/core",
|
||||||
"description": "Core module — authentication and shared panel behaviour",
|
"description": "Core module — authentication and shared panel behaviour",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"version": "0.29.3",
|
"version": "0.30.0",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Modules\\Core\\": "src/"
|
"Modules\\Core\\": "src/"
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@boboko/core",
|
"name": "@boboko/core",
|
||||||
"version": "0.29.3",
|
"version": "0.30.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Portable Stimulus controllers and styles for boboko-core's cart + checkout module. Installed as a real npm dependency (file:../boboko-core in dev, a tagged git install in prod) so a consuming app's `npm install` resolves this package's own dependencies (leaflet, @hotwired/stimulus) transitively, the same way `composer update boboko/*` does for PHP. See CONTRIBUTE.md's \"JS/CSS: a real npm package\" section.",
|
"description": "Portable Stimulus controllers and styles for boboko-core's cart + checkout module. Installed as a real npm dependency (file:../boboko-core in dev, a tagged git install in prod) so a consuming app's `npm install` resolves this package's own dependencies (leaflet, @hotwired/stimulus) transitively, the same way `composer update boboko/*` does for PHP. See CONTRIBUTE.md's \"JS/CSS: a real npm package\" section.",
|
||||||
|
|||||||
Reference in New Issue
Block a user