Skip to content

Document the sibling signal list as an extension point - #2159

Merged
bbatsov merged 2 commits into
masterfrom
docs/sibling-extension-point
Aug 17, 2026
Merged

Document the sibling signal list as an extension point#2159
bbatsov merged 2 commits into
masterfrom
docs/sibling-extension-point

Conversation

@bbatsov

@bbatsov bbatsov commented Aug 17, 2026

Copy link
Copy Markdown
Owner

projectile-sibling-project-functions is a plain list of functions, and adding your own is the intended way to teach Projectile a grouping it can't infer - a workspace manifest, whatever your org uses to say which repos belong together. The manual mentioned the option exactly once, in passing, as the thing that fixes the order of the three built-ins. It never said the list is yours to extend, or what a function has to return.

The worktree equivalent, four sections down the same page, spells all of that out. So this was just an inconsistency between two extension points of the same shape.

Adds a section with the contract, a worked example, and where to put yours relative to the built-ins.

It also writes down something that was true but recorded nowhere: the share cap is applied inside the two inferred signals rather than to the list as a whole, so a function you add is never capped - it's trusted the way a configured group is. Anyone writing one would reasonably assume the cap protects them. That note is in the docstring as well, since that's where they'd look first.

No CHANGELOG entry, matching how the other docs-only PRs this cycle were handled.

Five comments and docstrings used `--' where the house style is a single
dash. Nothing renders these as Markdown, so it was only an internal
inconsistency, but it is the rule everywhere else.
`projectile-sibling-project-functions' is a plain list of functions, and
adding your own is the intended way to teach Projectile a grouping it
can't infer. The manual mentioned the option once, in passing, as the
thing that fixes the order of the three built-ins - never that the list
is yours to extend, and never what a function has to return. The worktree
equivalent four sections down documents exactly that, so the omission was
just an inconsistency.

Adds a section with the contract, a worked example, and where to put
yours relative to the built-ins.

Also states something that was true but written down nowhere: the share
cap is applied inside the two inferred signals rather than to the list as
a whole, so a function you add is never capped. Someone writing one would
reasonably assume the cap protects them. That note goes in the docstring
too, which is where they'd actually look.
@bbatsov
bbatsov merged commit a99daed into master Aug 17, 2026
10 checks passed
@bbatsov
bbatsov deleted the docs/sibling-extension-point branch August 17, 2026 09:33
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