Date
1 - 3 of 3
Follow-up for the issue about DSC LibraryClass precedence rule
Bob Feng
Hello,
On 30th June, we merged a BaseTools patch "Fix DSC LibraryClass precedence rule" to edk2 repo. This patch changed the DSC LibraryClass precedence rule to make the basetools behavior consistent with DSC spec. About 21th Aug, it was found that that patch introduced a regression issue that cause MdeModulePkg gcc build to fail. And after syncing that basetools patch to edk2-repo and updating edk2 pip-requirements.txt, that regression issue was also caught by edk2 CI. Finally, that patch was reverted from edk2 repo and edk2-basetools repo.
But the issue about that the DSC LibraryClass precedence rule is inconsistent in BaseTools implementation and DSC spec still exists. As the follow-up, the bug submitter, me and other stakeholders did an offline discussion, we got aligned that we will update DSC spec to make basetools implantation and DSC spec consistent. If there is no objection from the community, we will update DSC spec and reuse bug https://bugzilla.tianocore.org/show_bug.cgi?id=3965 to track DSC spec update.
Further, to avoid similar issues happening, I'd suggest the improvement in basetools python tools work process. We must merge the basetools changes to edk2-basetools first and then sync them to edk2 repo.
1. Maintain process
1. After the patch gets reviewed, the maintainer creates a PR to edk-basetools repo, and merges it into edk2-basetools repo if the CI checks pass
2. Wait for the new version pip module generated in pypi.org
3. Update edk2-basetools value to the latest basetools pip module version from edk2/pip-requirements.txt file. Create a PR to edk2 repo to trigger edk2 CI to do the packages build tests.
Notes: The above 3 steps is to make edk2 CI test the basetools changes.
1. Create a pip-requirement patch and send it to community review.
2. Get the Reviewed-by
Notes: Can we remove the above 2 steps to optimize the process since the basetools patch has been got reviewed and tested?
1. Create a PR and merge the pip-requirement change to edk2 repo
2. Create a PR and merge the basetools patch to edk2 repo
1. edk2-basetools repo CI enhancement
1. enable the edk2 packages build test in edk2-basetools CI, so that we can remove the step c from the above maintain process.
Also, we need every edk2 downstream consumer to be ready to use basetools pip module so that we can remove the python code from edk2 repo and reduce the edk2 basetools maintenance efforts.
Thanks,
Bob
On 30th June, we merged a BaseTools patch "Fix DSC LibraryClass precedence rule" to edk2 repo. This patch changed the DSC LibraryClass precedence rule to make the basetools behavior consistent with DSC spec. About 21th Aug, it was found that that patch introduced a regression issue that cause MdeModulePkg gcc build to fail. And after syncing that basetools patch to edk2-repo and updating edk2 pip-requirements.txt, that regression issue was also caught by edk2 CI. Finally, that patch was reverted from edk2 repo and edk2-basetools repo.
But the issue about that the DSC LibraryClass precedence rule is inconsistent in BaseTools implementation and DSC spec still exists. As the follow-up, the bug submitter, me and other stakeholders did an offline discussion, we got aligned that we will update DSC spec to make basetools implantation and DSC spec consistent. If there is no objection from the community, we will update DSC spec and reuse bug https://bugzilla.tianocore.org/show_bug.cgi?id=3965 to track DSC spec update.
Further, to avoid similar issues happening, I'd suggest the improvement in basetools python tools work process. We must merge the basetools changes to edk2-basetools first and then sync them to edk2 repo.
1. Maintain process
1. After the patch gets reviewed, the maintainer creates a PR to edk-basetools repo, and merges it into edk2-basetools repo if the CI checks pass
2. Wait for the new version pip module generated in pypi.org
3. Update edk2-basetools value to the latest basetools pip module version from edk2/pip-requirements.txt file. Create a PR to edk2 repo to trigger edk2 CI to do the packages build tests.
Notes: The above 3 steps is to make edk2 CI test the basetools changes.
1. Create a pip-requirement patch and send it to community review.
2. Get the Reviewed-by
Notes: Can we remove the above 2 steps to optimize the process since the basetools patch has been got reviewed and tested?
1. Create a PR and merge the pip-requirement change to edk2 repo
2. Create a PR and merge the basetools patch to edk2 repo
1. edk2-basetools repo CI enhancement
1. enable the edk2 packages build test in edk2-basetools CI, so that we can remove the step c from the above maintain process.
Also, we need every edk2 downstream consumer to be ready to use basetools pip module so that we can remove the python code from edk2 repo and reduce the edk2 basetools maintenance efforts.
Thanks,
Bob
Bob Feng
Fix the numbering inline.
toggle quoted message
Show quoted text
On Sun, Oct 2, 2022 at 11:01 PM, Bob Feng wrote:
Hello,
On 30th June, we merged a BaseTools patch "Fix DSC LibraryClass precedence
rule" to edk2 repo. This patch changed the DSC LibraryClass precedence rule to
make the basetools behavior consistent with DSC spec. About 21th Aug, it was
found that that patch introduced a regression issue that cause MdeModulePkg
gcc build to fail. And after syncing that basetools patch to edk2-repo and
updating edk2 pip-requirements.txt, that regression issue was also caught by
edk2 CI. Finally, that patch was reverted from edk2 repo and edk2-basetools
repo.
But the issue about that the DSC LibraryClass precedence rule is inconsistent
in BaseTools implementation and DSC spec still exists. As the follow-up, the
bug submitter, me and other stakeholders did an offline discussion, we got
aligned that we will update DSC spec to make basetools implantation and DSC
spec consistent. If there is no objection from the community, we will update
DSC spec and reuse bug https://bugzilla.tianocore.org/show_bug.cgi?id=3965 to
track DSC spec update.
Further, to avoid similar issues happening, I'd suggest the improvement in
basetools python tools work process. We must merge the basetools changes to
edk2-basetools first and then sync them to edk2 repo.
1. Maintain process
a. After the patch gets reviewed, the maintainer creates a PR to
edk-basetools repo, and merges it into edk2-basetools repo if the CI checks
pass
b. Wait for the new version pip module generated in pypi.org
c. Update edk2-basetools value to the latest basetools pip module version
from edk2/pip-requirements.txt file. Create a PR to edk2 repo to trigger edk2
CI to do the packages build tests.
Notes: The above 3 steps is to make edk2 CI test the basetools changes.
d. Create a pip-requirement patch and send it to community review.
e. Get the Reviewed-by
Notes: Can we remove the above 2 steps to optimize the process since the
basetools patch has been got reviewed and tested?
f. Create a PR and merge the pip-requirement change to edk2 repo
g. Create a PR and merge the basetools patch to edk2 repo
2. edk2-basetools repo CI enhancement
a. enable the edk2 packages build test in edk2-basetools CI, so that we can
remove the step c from the above maintain process.
Also, we need every edk2 downstream consumer to be ready to use basetools pip
module so that we can remove the python code from edk2 repo and reduce the
edk2 basetools maintenance efforts.
Thanks,
Bob
Michael D Kinney
Hi Bob,
Thank you for following up on this important topic.
Adding devel@edk2.groups.io<mailto:devel@edk2.groups.io> to make sure everyone sees this proposal.
Mike
From: Feng, Bob C <bob.c.feng@...>
Sent: Sunday, October 2, 2022 8:01 AM
To: discuss@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming <gaoliming@...>; Chen, Christine <yuwei.chen@...>; Huang, Long1 <long1.huang@...>; Ni, Ray <ray.ni@...>
Subject: Follow-up for the issue about DSC LibraryClass precedence rule
Hello,
On 30th June, we merged a BaseTools patch “Fix DSC LibraryClass precedence rule” to edk2 repo. This patch changed the DSC LibraryClass precedence rule to make the basetools behavior consistent with DSC spec. About 21th Aug, it was found that that patch introduced a regression issue that cause MdeModulePkg gcc build to fail. And after syncing that basetools patch to edk2-repo and updating edk2 pip-requirements.txt, that regression issue was also caught by edk2 CI. Finally, that patch was reverted from edk2 repo and edk2-basetools repo.
But the issue about that the DSC LibraryClass precedence rule is inconsistent in BaseTools implementation and DSC spec still exists. As the follow-up, the bug submitter, me and other stakeholders did an offline discussion, we got aligned that we will update DSC spec to make basetools implantation and DSC spec consistent. If there is no objection from the community, we will update DSC spec and reuse bug https://bugzilla.tianocore.org/show_bug.cgi?id=3965 to track DSC spec update.
Further, to avoid similar issues happening, I’d suggest the improvement in basetools python tools work process. We must merge the basetools changes to edk2-basetools first and then sync them to edk2 repo.
1. Maintain process
1. After the patch gets reviewed, the maintainer creates a PR to edk-basetools repo, and merges it into edk2-basetools repo if the CI checks pass
2. Wait for the new version pip module generated in pypi.org
3. Update edk2-basetools value to the latest basetools pip module version from edk2/pip-requirements.txt file. Create a PR to edk2 repo to trigger edk2 CI to do the packages build tests.
Notes: The above 3 steps is to make edk2 CI test the basetools changes.
1. Create a pip-requirement patch and send it to community review.
2. Get the Reviewed-by
Notes: Can we remove the above 2 steps to optimize the process since the basetools patch has been got reviewed and tested?
1. Create a PR and merge the pip-requirement change to edk2 repo
2. Create a PR and merge the basetools patch to edk2 repo
1. edk2-basetools repo CI enhancement
1. enable the edk2 packages build test in edk2-basetools CI, so that we can remove the step c from the above maintain process.
Also, we need every edk2 downstream consumer to be ready to use basetools pip module so that we can remove the python code from edk2 repo and reduce the edk2 basetools maintenance efforts.
Thanks,
Bob
Thank you for following up on this important topic.
Adding devel@edk2.groups.io<mailto:devel@edk2.groups.io> to make sure everyone sees this proposal.
Mike
From: Feng, Bob C <bob.c.feng@...>
Sent: Sunday, October 2, 2022 8:01 AM
To: discuss@edk2.groups.io
Cc: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming <gaoliming@...>; Chen, Christine <yuwei.chen@...>; Huang, Long1 <long1.huang@...>; Ni, Ray <ray.ni@...>
Subject: Follow-up for the issue about DSC LibraryClass precedence rule
Hello,
On 30th June, we merged a BaseTools patch “Fix DSC LibraryClass precedence rule” to edk2 repo. This patch changed the DSC LibraryClass precedence rule to make the basetools behavior consistent with DSC spec. About 21th Aug, it was found that that patch introduced a regression issue that cause MdeModulePkg gcc build to fail. And after syncing that basetools patch to edk2-repo and updating edk2 pip-requirements.txt, that regression issue was also caught by edk2 CI. Finally, that patch was reverted from edk2 repo and edk2-basetools repo.
But the issue about that the DSC LibraryClass precedence rule is inconsistent in BaseTools implementation and DSC spec still exists. As the follow-up, the bug submitter, me and other stakeholders did an offline discussion, we got aligned that we will update DSC spec to make basetools implantation and DSC spec consistent. If there is no objection from the community, we will update DSC spec and reuse bug https://bugzilla.tianocore.org/show_bug.cgi?id=3965 to track DSC spec update.
Further, to avoid similar issues happening, I’d suggest the improvement in basetools python tools work process. We must merge the basetools changes to edk2-basetools first and then sync them to edk2 repo.
1. Maintain process
1. After the patch gets reviewed, the maintainer creates a PR to edk-basetools repo, and merges it into edk2-basetools repo if the CI checks pass
2. Wait for the new version pip module generated in pypi.org
3. Update edk2-basetools value to the latest basetools pip module version from edk2/pip-requirements.txt file. Create a PR to edk2 repo to trigger edk2 CI to do the packages build tests.
Notes: The above 3 steps is to make edk2 CI test the basetools changes.
1. Create a pip-requirement patch and send it to community review.
2. Get the Reviewed-by
Notes: Can we remove the above 2 steps to optimize the process since the basetools patch has been got reviewed and tested?
1. Create a PR and merge the pip-requirement change to edk2 repo
2. Create a PR and merge the basetools patch to edk2 repo
1. edk2-basetools repo CI enhancement
1. enable the edk2 packages build test in edk2-basetools CI, so that we can remove the step c from the above maintain process.
Also, we need every edk2 downstream consumer to be ready to use basetools pip module so that we can remove the python code from edk2 repo and reduce the edk2 basetools maintenance efforts.
Thanks,
Bob