Skip to content

Commit dd0d3bd

Browse files
committed
Adopt committed PHAR release distribution
Switch distribution to a single tracked `builds/quickpay` PHAR used by Composer (`bin` now points to it), and move Laravel Zero to dev-only dependencies so runtime installs avoid the framework graph. Remove the custom release script/workflow and related quality build job, update release/contributor docs for the new manual signed-tag flow, and add architecture/feature test updates to enforce and accommodate versioned PHAR output.
1 parent deafa34 commit dd0d3bd

17 files changed

Lines changed: 5052 additions & 5348 deletions

File tree

‎.gitattributes‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
* text=auto eol=lf
2+
/builds/quickpay -text
23
/.agents export-ignore
34
/.github export-ignore
45
/.gitignore export-ignore

‎.github/workflows/build-release.yml‎

Lines changed: 0 additions & 99 deletions
This file was deleted.

‎.github/workflows/quality.yml‎

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -97,19 +97,3 @@ jobs:
9797
tools: composer:2.10.2
9898
- run: composer install --no-interaction --no-progress --prefer-dist
9999
- run: composer format:test
100-
101-
build:
102-
runs-on: ubuntu-latest
103-
steps:
104-
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.2.2
105-
with:
106-
persist-credentials: false
107-
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
108-
with:
109-
php-version: '8.5'
110-
coverage: none
111-
tools: composer:2.10.2
112-
- run: composer install --no-interaction --no-progress --prefer-dist
113-
- run: composer build
114-
- run: builds/quickpay --version
115-
- run: builds/quickpay list --raw

‎.gitignore‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
/vendor
2-
/builds/
2+
# Packagist installs this one committed PHAR; every other build is generated.
3+
/builds/*
4+
!/builds/quickpay
35
/.idea
46
/.vscode
57
/.vagrant

‎AGENTS.md‎

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
## Project
44

55
This is a PHP 8.4+ command-line client for Quickpay, built with Laravel Zero 12.
6-
It targets Quickpay API v10. Composer installs the source package and `quickpay`
7-
launcher; GitHub releases additionally publish a generated standalone PHAR.
6+
It targets Quickpay API v10. Composer and GitHub releases distribute the same
7+
tracked standalone PHAR without installing Laravel Zero at runtime.
88

99
Use `php quickpay` when running from source. See `README.md` for the public
1010
command reference and `skills/quickpay/SKILL.md` for the agent-facing usage
@@ -92,19 +92,15 @@ as security-sensitive. Include hostile and malformed inputs in their tests.
9292

9393
## Packaging
9494

95-
`builds/` is ignored generated output. Do not commit a PHAR. After packaged
96-
runtime code, configuration, Composer inputs, the launcher, or `box.json`
97-
changes, run:
95+
`builds/quickpay` is the tracked Packagist binary. Other files beneath
96+
`builds/` are ignored generated output. Do not update the tracked release binary
97+
in an ordinary change. Develop and test from source with `php quickpay`.
9898

99-
```bash
100-
composer build
101-
builds/quickpay --version
102-
builds/quickpay list --raw
103-
```
104-
105-
Use `composer release:build -- 1.0.0` only for a versioned release candidate.
106-
Follow `RELEASING.md`; the GitHub workflow publishes artifacts without writing
107-
generated binaries back to the source branch.
99+
For a release candidate, run `composer verify`, then build with
100+
`php quickpay app:build quickpay --build-version=1.0.0 --no-interaction` and
101+
smoke-test `builds/quickpay`. Commit that one binary in the release pull request.
102+
Follow `RELEASING.md`; after `Quality` passes, maintainers sign the tag and
103+
manually publish that exact committed binary without rebuilding it.
108104

109105
## Verification
110106

‎CHANGELOG.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66

77
## [Unreleased]
88

9+
### Fixed
10+
11+
- Packagist releases now install the bundled PHAR without Laravel Zero's
12+
dependency graph, using a single Quality-gated release build, signed tag, and
13+
manually published immutable GitHub release.
14+
15+
### Removed
16+
17+
- Automated GitHub release publication, custom release scripts, and the
18+
separate development PHAR. Releases now use Laravel Zero's native build
19+
command, the `Quality` workflow, and one committed `builds/quickpay` binary.
20+
921
## [0.1.0] - 2026-08-09
1022

1123
### Added

‎CONTRIBUTING.md‎

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,9 @@ git diff --check
8787
also enforces at least 90% application coverage, validates package metadata,
8888
and audits the locked dependencies. Coverage requires PCOV or Xdebug.
8989

90-
If packaging behavior changes, also exercise the ignored development artifact:
91-
92-
```bash
93-
composer build
94-
builds/quickpay --version
95-
builds/quickpay list --raw
96-
```
97-
98-
Generated files beneath `builds/` are never committed. The release workflow
99-
builds the versioned PHAR from a tagged source commit.
90+
The versioned `builds/quickpay` PHAR is the only tracked build output because
91+
Packagist installs it directly. Do not update it in an ordinary contribution;
92+
maintainers build and commit it in a release pull request.
10093

10194
## Pull requests
10295

‎README.md‎

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,9 @@ verify` additionally enforces coverage, validates package metadata, and audits
8585
the locked dependencies. The test suite uses HTTP fakes and does not contact
8686
Quickpay API.
8787

88-
Build an ignored development PHAR when packaging behavior changes:
89-
90-
```bash
91-
composer build
92-
builds/quickpay --version
93-
builds/quickpay list --raw
94-
```
95-
96-
The PHAR is a generated release artifact, not repository source. Versioned
97-
release artifacts are built with `composer release:build -- 1.0.0`.
88+
The versioned `builds/quickpay` PHAR is tracked so Packagist can install it
89+
without Laravel Zero's dependency graph. Maintainers build it with Laravel
90+
Zero's `app:build` command and commit it as described in `RELEASING.md`.
9891

9992
See [CONTRIBUTING.md](CONTRIBUTING.md) before changing commands or security behavior.
10093

0 commit comments

Comments
 (0)