As discussed at the weekly tools meeting, I am proposing that all
unsupported tool chains get removed from tools_def.template in the
Basetools/Conf folder (edk2/tools_def.template
at master · tianocore/edk2 (github.com)). The fact that
VS2008 is still listed there is proof of a problem. Many of these
old tool chains are not available and if found would not reliably
work anyway (see dozens of emails on the list, most recent by
rebecca).
The suggestion from the tools meeting discussions is that we
should setup maintainers for each tool chain tag and any tool
chain tag without a maintainer would then be removed.
Today the CI and PR system is testing the most recent versions of
VS and GCC. As of this email that tag is VS2019 and GCC5. There
has also been a desire to add clang (clangpdb tag) to the list of
CI builds but it is currently only partially supported and needs
some community effort. The GCC5 tag might need more clarity as I
know this supports many different versions so I am not sure how to
correctly communicate what is the actual supported version. Maybe
the container discussion would help ([CI]
Use containers on Linux · Discussion #2732 · tianocore/edk2
(github.com)) and it could be N and N-1 on the latest
container images?
Finally, the question is how to define a supported tool chain and
what are the expectations for the "maintainer". I would propose
two things.
1. A category/tag created for the tool chain in the issue
tracking system and the maintainer will be the default assigned
owner for incoming bugs and is responsible for triage and
resolution.
a. If all maintainers resign the community would be notified
and if no one came forward the toolchain would be dropped.
b. If the tag had a high bug count and low
resolution/response rate the toolchain maintainer role would be
re-evaluated.
2. At defined points in the edk2 development process, each
package is compiled in debug, release, and noopt for the toolchain
for all supported architectures. The report is made available.
A. Suggested at minimum for each hard freeze stable tag point
but could be CI, nightly, weekly, etc.
B. Suggestion is this should somehow be automated for the CI
system and tool chains supported.
3. Update maintainers.txt to indicate tool chain maintainers
Please use this email and/or tools meeting to discuss the
proposal or becoming a toolchain maintainer.
RFC will be implemented after the may stable tag if no issues are
raised.
Thanks
Sean