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.
Examples
Assuming the following imaginary dependency tree:
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 with feat/awesome-stuff
- They
wiby test
wiby creates a wiby-feat/awesome-stuff branch in is-ci and in update-notifier where it updates the ci-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 with feat/awesome-stuff
- The author has push access to
is-ci, they create a new branch with feat/awesome-stuff
- They
wiby test in ci-info
wiby creates a wiby-feat/awesome-stuff branch in is-ci (based off feat/awesome-stuff) and in update-notifier where it updates the ci-info to be pulled from git #feat/awesome-stuff.
- They
wiby test in is-ci
wiby updates wiby-feat/awesome-stuff in update-notifier to pull is-ci from #wiby-feat/awesome-stuff
- This means that
update-notifier now has ci-info linked from git, and deduped as well.
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 with feat/awesome-stuff
- They
wiby test
is-ci breaks - the author pushes some modifications to fix that directly into wiby-feat/awesome-stuff branch
- They
wiby test in is-ci
wiby sees wiby-feat/awesome-stuff branch in update-notifier and links is-ci from git #wiby-feat/awesome-stuff branch.
(I'll consider drawing up some diagrams for this...)
At the moment,
wiby testwill create a branch calledwiby-[dependency name]on the dependent being tested (andwiby resultwill 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 intowiby-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-stuffonwiby, then the test branch would be calledwiby-feat/new-stuffon the dependent. This way other dependencies could havefeat/new-stuffand would all link into the samewiby-feat/new-stuffbranch.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...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.feat/new-stuff, thenwibyshould base thewiby-feat/new-stuffoff that, rather than offmain/master.wiby-*branch when the branch being tested is amaster/mainon 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-notifieris-cici-infoci-infoSomeone is authoring things in
ci-infoand wants to make sure they don't breakis-ciandupdate-notifier.New feature in
ci-infoci-info, they create a new branch withfeat/awesome-stuffwiby testwibycreates awiby-feat/awesome-stuffbranch inis-ciand inupdate-notifierwhere it updates theci-infoto be pulled from git#feat/awesome-stuff.New feature spanning
ci-infoandis-cici-info, they create a new branch withfeat/awesome-stuffis-ci, they create a new branch withfeat/awesome-stuffwiby testinci-infowibycreates awiby-feat/awesome-stuffbranch inis-ci(based offfeat/awesome-stuff) and inupdate-notifierwhere it updates theci-infoto be pulled from git#feat/awesome-stuff.wiby testinis-ciwibyupdateswiby-feat/awesome-stuffinupdate-notifierto pullis-cifrom#wiby-feat/awesome-stuffupdate-notifiernow hasci-infolinked from git, and deduped as well.New feature in
ci-info, wiby uncovers tweaks required inis-cici-info, they create a new branch withfeat/awesome-stuffwiby testis-cibreaks - the author pushes some modifications to fix that directly intowiby-feat/awesome-stuffbranchwiby testinis-ciwibyseeswiby-feat/awesome-stuffbranch inupdate-notifierand linksis-cifrom git#wiby-feat/awesome-stuffbranch.(I'll consider drawing up some diagrams for this...)