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/).
|
||||
|
||||
## [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
|
||||
### Fixed
|
||||
- Queued shipping jobs did nothing: `PollShipmentTrackingJob` and
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"name": "boboko/core",
|
||||
"description": "Core module — authentication and shared panel behaviour",
|
||||
"type": "library",
|
||||
"version": "0.29.3",
|
||||
"version": "0.30.0",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Core\\": "src/"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@boboko/core",
|
||||
"version": "0.29.3",
|
||||
"version": "0.30.0",
|
||||
"private": true,
|
||||
"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.",
|
||||
|
||||
Reference in New Issue
Block a user