understanding Auto-Test

Seb seb at wilzba.ch
Thu Mar 22 05:16:43 UTC 2018


On Thursday, 22 March 2018 at 05:00:07 UTC, John Belmonte wrote:
> On Thursday, 22 March 2018 at 04:25:00 UTC, Seb wrote:
>> - Every time a PR is merged at dmd, druntime or phobos ALL 
>> auto-tester results get invalidated
>
> If a change on the destination branch causes a PR to require an 
> automatic merge, certainly build and tests should be rerun.  
> But if the two changes are unrelated do the results of all 
> pending PR's need to be invalidated?

Well, auto-tester is in place for a few years already. Its git 
history [1] goes back to 2010, but I assume the auto-tester to be 
even older.
Back in these old, dark ages, a commit in another PR (even if 
it's a different repo), was a bit more likely to break the 
current PR.
Nowadays, that's a lot less common, but still happens from time 
to time (e.g. you make a PR to deprecate sth., but in the 
meanwhile a new usage got added to Phobos or a new @safe-ty 
violation got added).

Anyhow, the idea is to guarantee that `master` is always 
buildable and passes all tests no matter what and this constant 
invalidation is the only way to deal with this as there's no way 
to automatically determine whether the new changes in master are 
really unrelated.

Note that what the auto-tester does for you automatically, is 
very similar to GitHub's "Require branches to be up to date 
before merging" branch setting, except that instead of manually 
needing to rebase the branch all the time, auto-tester does the 
rebases automatically and is "cross-repository aware".

[1] https://github.com/braddr/at-client


More information about the Digitalmars-d mailing list