Description
At the moment, wiby test
will create a branch called wiby-[dependency name]
on the dependent being tested (and wiby result
will check here).
This is very restricting - it means that you can only test one set of changes in the dependency at a time (i.e. if you have multiple PRs open on wiby
, they would both try to write into wiby-wiby
). Moreover, this does not allow automated linking of multiple dependencies into a single test branch.
The proposal here is to name the branch based on the dependency branch, i.e. if I'm testing feat/new-stuff
on wiby
, then the test branch would be called wiby-feat/new-stuff
on the dependent. This way other dependencies could have feat/new-stuff
and would all link into the same wiby-feat/new-stuff
branch.
- The
wiby-
prefix is necessary, to avoid touching non-wiby branches that people may be working on. It also makes it easier to implement thewiby clean
... - If the dependency branch already starts with
wiby-
- the prefix will not get added multiple times. Rationale: people may need to make tweaks to make the tests pass, esp. when linking multiple dependencies together. - If the dependent already has a branch called
feat/new-stuff
, thenwiby
should base thewiby-feat/new-stuff
off that, rather than offmain
/master
. - Bonus points: figure out how to best name the
wiby-*
branch when the branch being tested is amaster
/main
on a fork of the dependency.wiby-author-master
?wiby-pr-NNN
[if PR already exists - it might not in the pure CLI case]?
Examples
Assuming the following imaginary dependency tree:
update-notifier
is-ci
ci-info
ci-info
Someone is authoring things in ci-info
and wants to make sure they don't break is-ci
and update-notifier
.
New feature in ci-info
- The author has push access to
ci-info
, they create a new branch withfeat/awesome-stuff
- They
wiby test
wiby
creates awiby-feat/awesome-stuff
branch inis-ci
and inupdate-notifier
where it updates theci-info
to be pulled from git#feat/awesome-stuff
.
New feature spanning ci-info
and is-ci
- The author has push access to
ci-info
, they create a new branch withfeat/awesome-stuff
- The author has push access to
is-ci
, they create a new branch withfeat/awesome-stuff
- They
wiby test
inci-info
wiby
creates awiby-feat/awesome-stuff
branch inis-ci
(based offfeat/awesome-stuff
) and inupdate-notifier
where it updates theci-info
to be pulled from git#feat/awesome-stuff
.- They
wiby test
inis-ci
wiby
updateswiby-feat/awesome-stuff
inupdate-notifier
to pullis-ci
from#wiby-feat/awesome-stuff
- This means that
update-notifier
now hasci-info
linked from git, and deduped as well.
- This means that
New feature in ci-info
, wiby uncovers tweaks required in is-ci
- The author has push access to
ci-info
, they create a new branch withfeat/awesome-stuff
- They
wiby test
is-ci
breaks - the author pushes some modifications to fix that directly intowiby-feat/awesome-stuff
branch- They
wiby test
inis-ci
wiby
seeswiby-feat/awesome-stuff
branch inupdate-notifier
and linksis-ci
from git#wiby-feat/awesome-stuff
branch.
(I'll consider drawing up some diagrams for this...)