Skip to content

feat(ycst-org-uk): add signup_streamline private repo - #74

Merged
robinbowes merged 1 commit into
mainfrom
feat/ycst-signup-streamline
Aug 19, 2026
Merged

feat(ycst-org-uk): add signup_streamline private repo#74
robinbowes merged 1 commit into
mainfrom
feat/ycst-signup-streamline

Conversation

@robinbowes

Copy link
Copy Markdown
Contributor

Adds data/ycst-org-uk/signup_streamline.yaml so Terraform creates the repository for the CiviCRM extension that packages the membership signup streamlining.

The extension exists locally with 20 commits on a build/extension branch and 56 passing tests. It has never been installed on a server — the first staging deploy is still ahead of it.

Config

Matches board-docs, website-testing and wp-mu-plugins: builtin_ruleset_names: [] (rulesets are paywalled on free-tier private repos), the admins team at admin, issues on, and both Dependabot settings enabled.

auto_init is omitted so the repository is created empty and the existing local history can be pushed into it without a merge. create_default_branch is omitted per the repo conventions — main is established on the first push.

Two choices worth a look

Underscore, not hyphen. CiviCRM discovers an extension by directory, and the directory conventionally matches the <file> key in info.xml, which is signup_streamline. It also keeps this distinct from signup-streamline, the separate repo holding the runbook and decision records it was built from — the two already sit side by side on disk.

Private. It carries no credentials, but it does encode this site's contribution page id and page slugs as setting defaults. Private is the direction that can be reversed later; public isn't. If the intent is to publish it to the CiviCRM community, say so and this becomes a one-line change.

🤖 Generated with Claude Code

https://claude.ai/code/session_019tzJQb7R3SpTKWw6wEVytC

Holds the CiviCRM extension that packages the membership signup streamlining
currently running as mu-plugins on the clone. Twenty commits exist locally on a
build branch: the profile migration and its rollback, the Stripe billing-address
request, the post-payment address write-back and CMS account creation, the
stylesheet, the logout control, and four status checks for the failure modes
that otherwise present only as a contribution stuck Pending.

Underscore rather than the hyphens the org's other repos use. CiviCRM discovers
an extension by directory and the directory conventionally matches the key in
info.xml, which is signup_streamline. It also keeps the extension distinct from
signup-streamline, the separate repo holding the runbook and decision records
that this was built from.

Private, matching board-docs, website-testing and wp-mu-plugins. It carries no
credentials, but it does encode this site's page ids and slugs as defaults, and
private is the direction that can be reversed later.

auto_init is omitted so the repository is created empty and the existing local
history can be pushed into it without a merge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019tzJQb7R3SpTKWw6wEVytC
@robinbowes

Copy link
Copy Markdown
Contributor Author

Private now, public later — recording the plan so it isn't lost

Merging this as private is a sequencing decision, not the final answer. The intent is to flip it to public.

Why public is where this ends up

The licence is already AGPL-3.0. info.xml declares it and LICENSE.txt is present — civix's default, and the CiviCRM ecosystem's norm. AGPL §13 obliges offering source to users who interact with the software over a network, and members using the signup form are exactly that. Whether a CiviCRM extension is a derivative work of CiviCRM is a long-standing grey area, but adopting CiviCRM's own licence is the ecosystem's answer to it. Staying private does not cleanly discharge that obligation.

Private is currently the less protected option. builtin_ruleset_names: [] is set because repository rulesets are paywalled on free-tier private repos — the module's own variable documents this. So today the choice is private with no rulesets, or public with them.

Some of it is generally useful. The billing-address write-back from Stripe Checkout, and the status check for a missing webhook signing secret, address gaps that are not specific to this site.

Why not yet

  • The extension has never run on a server. The first staging deploy is still ahead of it. Publishing something installable that nobody has deployed invites installs that then need supporting.
  • It isn't presentable. info.xml still carries three https://FIXME URLs from the civix scaffold, and README.md is a 12-line stub.

Order of work

  1. Merge and apply this PR as private; push the existing 20 commits.
  2. Staging deploy (see docs/superpowers/plans/2026-08-19-staging-deploy-checks.md in the signup-streamline repo) and the Task 12–13 equivalence run against the Playwright coverage.
  3. Fix the FIXME URLs and write a real README.
  4. Flip to public: change visibility here, and add builtin_ruleset_names back now that rulesets are free on a public repo.

Step 4 is a two-line change to data/ycst-org-uk/signup_streamline.yaml.

🤖 Generated with Claude Code

https://claude.ai/code/session_019tzJQb7R3SpTKWw6wEVytC

@yo61-lastlight yo61-lastlight Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds the ycst-org-uk/signup_streamline repository config. I checked it against the org team metadata, module defaults, and the existing ycst-org-uk private repo patterns; no blocking issues found.

@robinbowes
robinbowes merged commit db25920 into main Aug 19, 2026
2 checks passed
@robinbowes
robinbowes deleted the feat/ycst-signup-streamline branch August 19, 2026 13:14
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