Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add * tags to all non-tagged configs #4068

Merged
merged 1 commit into from Oct 4, 2023

Conversation

CaseyCarter
Copy link
Member

... in our test matrices.

RUNALL_CROSSLIST forms the cross product of all lines from above with all lines from below, and from each pairing whose tag sets intersect produces a new line tagged with the intersection that defines all variables defined on either line, with values that are the concatenation of the values from x and y. Non-tagged lines are treated as if they are all tagged with the same value, and * is the identity element for tag set intersection. For example:

	MEOW=A
X	MEOW=B
Y	MEOW=C
*	MEOW=D
RUNALL_CROSSLIST
	WOOF=1
X,Y	WOOF=2
X	WOOF=3
Y	MEOW=E WOOF=4

is equivalent to:

	MEOW=A WOOF=1
X	MEOW=B WOOF=2
X	MEOW=B WOOF=3
Y	MEOW=C WOOF=2
Y	MEOW="C E" WOOF=4
	MEOW=D WOOF=1
X,Y	MEOW=D WOOF=2
X	MEOW=D WOOF=3
Y	MEOW="D E" WOOF=4

GH-4052 added * tags to all non-leaf lines so they would properly combine with leaf configurations that have either an ASAN or empty tag. There's a danger of "losing" ASAN configurations if we add a crosslist that inadvertently matches untagged lines with ASAN lines. We decided that all lines should be tagged with either ASAN or * to lessen the likelihood of such a mistake.

... in our test matrices.

`RUNALL_CROSSLIST` forms the cross product of all lines from above with all lines from below, and
from each pairing whose tag sets intersect produces a new line tagged with the intersection that
defines all variables defined on either line, with values that are the concatenation of the values
from `x` and `y`. Non-tagged lines are treated as if they are all tagged with the same value, and
`*` is the identity element for tag set intersection. For example:

```
	MEOW=A
X	MEOW=B
Y	MEOW=C
*	MEOW=D
RUNALL_CROSSLIST
	WOOF=1
X,Y	WOOF=2
X	WOOF=3
Y	MEOW=E WOOF=4
```
is equivalent to:
```
	MEOW=A WOOF=1
X	MEOW=B WOOF=2
X	MEOW=B WOOF=3
Y	MEOW=C WOOF=2
Y	MEOW="C E" WOOF=4
	MEOW=D WOOF=1
X,Y	MEOW=D WOOF=2
X	MEOW=D WOOF=3
Y	MEOW="D E" WOOF=4
```

[microsoftGH-4052](microsoft#4052) added `*` tags to all non-leaf lines
so they would properly combine with leaf configurations that have either an `ASAN` or empty tag.
There's a danger of "losing" `ASAN` configurations if we add a crosslist that inadvertently matches
untagged lines with `ASAN` lines. We decided that all lines should be tagged with either `ASAN` or
`*` to lessen the likelihood of such a mistake.
@CaseyCarter CaseyCarter added the infrastructure Related to repository automation label Oct 3, 2023
@github-actions github-actions bot added this to Work In Progress in Code Reviews Oct 3, 2023
@CaseyCarter CaseyCarter marked this pull request as ready for review October 4, 2023 00:01
@CaseyCarter CaseyCarter requested a review from a team as a code owner October 4, 2023 00:01
@CaseyCarter CaseyCarter moved this from Work In Progress to Final Review in Code Reviews Oct 4, 2023
@CaseyCarter CaseyCarter changed the title Add '*' tags to all non-tagged configs Add * tags to all non-tagged configs Oct 4, 2023
@CaseyCarter

This comment was marked as resolved.

@azure-pipelines

This comment was marked as resolved.

@StephanTLavavej
Copy link
Member

I searched carefully for any missed lines and didn't find them.

@StephanTLavavej StephanTLavavej moved this from Final Review to Ready To Merge in Code Reviews Oct 4, 2023
@StephanTLavavej StephanTLavavej self-assigned this Oct 4, 2023
@StephanTLavavej
Copy link
Member

There are no stealth conflicts with the Ready To Merge PRs (a few are adding env.lsts that just RUNALL_INCLUDE the normal ones). As this is test-only I can add it to the batch and get this out of the way. Thanks!

@CaseyCarter
Copy link
Member Author

I agree, this should not be problematic. I manually queued an ASAN run for good measure (https://dev.azure.com/vclibs/STL/_build/results?buildId=15321&view=results) and it is nicely green.

@StephanTLavavej StephanTLavavej merged commit 283cf32 into microsoft:main Oct 4, 2023
37 checks passed
Code Reviews automation moved this from Ready To Merge to Done Oct 4, 2023
@StephanTLavavej
Copy link
Member

⭐ 🌟 🤩

@CaseyCarter CaseyCarter deleted the stars branch October 5, 2023 02:16
CaseyCarter added a commit to CaseyCarter/STL that referenced this pull request Nov 29, 2023
CaseyCarter added a commit to CaseyCarter/STL that referenced this pull request Dec 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Related to repository automation
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

2 participants