Skip to content

Ship a Symfony Flex recipe with every release - #189

Merged
derpixler merged 6 commits into
developfrom
fix/rr/182/flex-recipe
Nov 9, 2026
Merged

derpixler merged 6 commits into
developfrom
fix/rr/182/flex-recipe

Conversation

@derpixler

@derpixler derpixler commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Refs #182

What

  • Recipe source in src/Bridge/Symfony/recipe/3.2/ (recipes-contrib layout): registers SymfonyBundle, copies config/packages/zammad.yaml, adds ZAMMAD_URL / ZAMMAD_TOKEN to .env. Excluded from the Composer dist via export-ignore.
  • bin/build-flex-endpoint.php turns that source into a Flex endpoint (index.json + zammad.zammad-api-client-php.3.2.json). The index declares is_contrib: false, so no allow-contrib is needed.
  • release.yml builds the endpoint on every published release and attaches it as release assets. It can be run by hand for a tag that lacks them.
  • Install test: the Symfony path now applies the recipe through a local endpoint built by the same script, and checks that composer remove reverts it. The manual fallback is gone from the test, so a broken recipe fails the job.
  • Docs: README Symfony section and SymfonyBundle docblock describe the Flex setup first, manual registration second. CHANGELOG entry under [Unreleased].

Users add the source once, before composer require:

composer config --json extra.symfony.endpoint \
  '["https://github.com/zammad/zammad-api-client-php/releases/latest/download/index.json", "flex://defaults"]'

Verified (locally, PHP 8.4)

  • Fresh symfony/skeleton 6.4, 7.4 and 8.1: recipe applied, ZammadClient resolves, composer remove reverts all changes. Laravel 13 unchanged.
  • Already-installed package: composer recipes:install zammad/zammad-api-client-php --force applies the recipe afterwards.
  • GitHub's releases/latest/download/… redirect chain (two redirects, host change, application/octet-stream) is followed by Composer's HttpDownloader; Flex applied the recipe through a local reproduction of that chain.
  • Not verified yet: the real release assets. The first release after merging is the end-to-end proof.

Notes

  • The recipe version is 3.2, so it applies to every client from 3.2.0 on, including the upcoming patch release that ships it. Flex compares only major.minor: a 3.2.1 folder would not apply before 3.3.0 (tested).
  • A PR to symfony/recipes-contrib can follow from the same source, so that the extra endpoint line becomes unnecessary.

@derpixler derpixler self-assigned this Nov 9, 2026
@coderabbitai

coderabbitai Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review: 1

  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2167a14f-59f8-4c8d-a065-a1f4859626bf

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@derpixler
derpixler merged commit 4d88388 into develop Nov 9, 2026
39 checks passed
@derpixler
derpixler deleted the fix/rr/182/flex-recipe branch November 9, 2026 12:37
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