Skip to content

Let Dependabot watch facebook/php-business-sdk - #21

Closed
loevgaard wants to merge 1 commit into
1.xfrom
dependabot-facebook-sdk
Closed

loevgaard wants to merge 1 commit into
1.xfrom
dependabot-facebook-sdk

Conversation

@loevgaard

Copy link
Copy Markdown
Member

Summary

The Graph API version the client talks to is ApiConfig::APIVersion from whatever facebook/php-business-sdk is installed, so the constraint ^25.0 || ^26.0 caps users at Graph API v26. Meta ships a new major of that package every four to five months:

Major Released
26.0.0 2026-08-06
25.0.0 2026-03-10
24.0.0 2025-10-23
23.0.0 2025-06-16

Until now somebody had to notice the release by hand (#10) and open a PR like #12. This adds .github/dependabot.yml so that PR is opened automatically.

How it is set up

  • Only this one package, through an allow rule. The ranges of the other dependencies already float, and the dev tools are deliberately held on the majors that still support PHP 8.1, so watching them would only produce proposals that go against that policy.
  • versioning-strategy: widen, so ^25.0 || ^26.0 becomes ^25.0 || ^26.0 || ^27.0, the same edit as Allow facebook/php-business-sdk ^26.0 (Graph API v26.0) #12.
  • About three PRs a year. No composer.lock is committed, so a release inside the allowed range produces nothing; only a new major does.
  • Both branches. Dependabot only reads its config from the default branch, which is why this PR targets 1.x. The second entry uses target-branch: "2.x". The file does not need to exist on 2.x.
  • Weekly schedule, labelled dependencies.

What a Dependabot PR still needs from a human

  • CI makes it close to merge-ready: the tests read the version from ApiConfig::APIVersion, and the characterization tests pin the normalized and hashed output, so a behaviour change in the SDK's Normalizer or Util::hash() fails the highest jobs.
  • LiveClientTest does not run in CI, so one live run against the new major before tagging stays manual. CLAUDE.md now says so.
  • Dependabot never drops an old major. Removing ^25.0 once Graph API v25 is retired remains a manual decision.

Test plan

  • The YAML parses and both entries carry the expected ecosystem, target branch, allow rule, strategy, schedule and label
  • The dependencies label exists
  • After merge: the Dependabot tab under Insights → Dependency graph shows both composer entries without a config error

The Graph API version the client talks to is ApiConfig::APIVersion from
facebook/php-business-sdk, and Meta ships a new major of that package
for every Graph API version, roughly three times a year. Until the
constraint is widened, users of this library stay capped at the previous
Graph API version, and so far somebody had to notice the release by hand.

Dependabot now opens a PR that widens the constraint when a new major is
released, for 1.x and, through target-branch, for 2.x. No composer.lock
is committed, so releases inside the allowed range produce no PR. Other
dependencies are left out on purpose: their ranges already float, and
the dev tools are held on the majors that still support PHP 8.1.
@loevgaard

Copy link
Copy Markdown
Member Author

Superseded: the Dependabot config goes on 2.x only, and 2.x is now the default branch, which is where Dependabot reads it from.

@loevgaard loevgaard closed this Sep 21, 2026
@loevgaard
loevgaard deleted the dependabot-facebook-sdk branch September 21, 2026 09:45
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