Skip to content

Release v1.1.2: ergonomic generated endpoint signatures - #9

Merged
roncodes merged 2 commits into
mainfrom
release/v1.1.2
Sep 3, 2026
Merged

Release v1.1.2: ergonomic generated endpoint signatures#9
roncodes merged 2 commits into
mainfrom
release/v1.1.2

Conversation

@roncodes

@roncodes roncodes commented Sep 3, 2026

Copy link
Copy Markdown
Member

Summary

  • normalize all 220 generated Fleetbase and Core API endpoint methods around positional URL identifiers and direct request-data arrays
  • preserve every structured-envelope call published in 1.1.0 and 1.1.1, including PHP 8 named parameters: and options: calls
  • keep request options as the final optional argument and reject ambiguous duplicate body, query, or multipart inputs
  • derive signatures from ordered path variables and contract payload metadata rather than endpoint-specific special cases
  • regenerate executable SDK examples and the stable-ID website catalog using only the preferred public style
  • invoke all 220 mapped methods ergonomically in the disposable Fleetbase/Postman contract bridge
  • add an authoritative 1.1.0 public API baseline and retain compatibility checks for 1.0.2 and 1.0.3

Signature policy

Preferred generated calls follow these shapes:

$fleetbase->drivers->changeDriverPassword($driverId, $passwordData, $requestOptions);
$fleetbase->orders->scheduleOrder($orderId, $scheduleData, $requestOptions);
$fleetbase->drivers->listDriverManifests($driverId, $query, $requestOptions);
$fleetbase->orders->capturePhotoForOrder($orderId, $subjectId, $data, $requestOptions);

The 1.1.0 envelope remains accepted:

$fleetbase->drivers->changeDriverPassword(
    ['id' => $driverId, 'body' => $passwordData],
    $requestOptions
);

The generated contract classifies 90 requests without a payload, 97 JSON requests, 30 query requests, two raw-JSON requests, and one multipart request. Five endpoints have two ordered path identifiers; none has more than two.

Compatibility and local verification

  • every locked method is invoked in both ergonomic and legacy forms and compared for verb, encoded URL, query/body semantics, multipart content, and request-option forwarding
  • focused tests cover missing/invalid identifiers, resource identifiers, argument counts, malformed multipart data, and ambiguous duplicate payload sources
  • generated docs contain no internal body envelope and execute all 220 exact snippets
  • composer check: 35 tests, 3,906 assertions, PHPStan max, formatting, deterministic generation, AGPL metadata, and compatibility checks all passing
  • Xdebug coverage: 100.00% classes, methods, lines, and branches
  • full-source mutation run: 1,802 mutants, 87.85% MSI, 100% mutation-code coverage, four timeouts, no uncovered or ignored mutants

Final-SHA GitHub evidence

All evidence below ran against 3e7e608dd4dd25fd76c71cf78d530effcd7921b0.

  • CI run 33733299076: PHP 7.4-8.5 lowest/latest matrix, plain/Laravel/Symfony consumers, quality and compatibility contracts, exact coverage, mutation baseline, and distribution/release-candidate jobs passed
  • Security run 33733299049: dependency review, Composer audit and AGPL metadata, secret scan, and CodeQL passed
  • CodeQL run 33733296512: workflow analysis passed
  • Disposable contract run 33733299038: both official collections ran through the PHP SDK bridge with zero Postman failures; the SDK verifier recorded 220/220 stable request IDs and the direct live smoke covered auth, validation, create, retrieve, delete, and not-found responses
  • independently downloaded live evidence contains exactly 220 expected IDs, no missing or unexpected IDs, valid response status for every invocation, and 242 total attempts; responses were 178 HTTP 200 and 42 HTTP 201
  • Fleetbase API image tested: fleetbase/fleetbase-api@sha256:005e7da6e367ccd2e8242747c9cb09371bd193932c42d3c359692125e7a1cd67
  • release candidate fleetbase-php-1.1.2.tar.gz SHA-256: 06f6f61af68fdade7fdc1af92ab5881d84bc00f0ea3a3884744bb928bd435240
  • the uploaded SHA256SUMS verifies the archive and CycloneDX 1.7 SBOM; the distribution excludes tests, tools, docs, vendor, and workflow internals and retains AGPL-3.0-or-later metadata with PHP 7.4/8.x support

Coordinated API reference PR: fleetbase/fleetbase.io#95

This is the follow-up release for normalization commit dbd2d21, which was pushed after 1.1.1 had already been merged and published. Published 1.1.1 history and release notes remain unchanged.

@roncodes
roncodes merged commit 4980305 into main Sep 3, 2026
30 checks passed
@roncodes
roncodes deleted the release/v1.1.2 branch September 3, 2026 09:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant