Hi Michael, Have you tried to upstream the edk2 specific elements to the uncrustify project? That would be a path to remove the fork and eventually all the distros would catch up.
Mike > -----Original Message----- > From: Michael Kubacki <mikub...@linux.microsoft.com> > Sent: Monday, November 13, 2023 12:22 PM > To: Pedro Falcato <pedro.falc...@gmail.com>; devel@edk2.groups.io; > ler...@redhat.com > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Andrew Fish > <af...@apple.com>; Marcin Juszkiewicz <marcin.juszkiew...@linaro.org>; > Leif Lindholm (Quic) <quic_llind...@quicinc.com> > Subject: Re: [edk2-devel] edk2 uncrustify update (73.0.8)? > > On 11/13/2023 2:07 PM, Pedro Falcato wrote: > > On Mon, Nov 13, 2023 at 11:58 AM Laszlo Ersek <ler...@redhat.com> > wrote: > >> > >> Hi Michael, > >> > >> recently I encountered an uncrustify failure on github. > >> > >> The reason was that my local uncrustify was *more recent* (73.0.8) > than > >> the one we use in edk2 CI (which is 73.0.3, per the edk2 file > >> ".pytool/Plugin/UncrustifyCheck/uncrustify_ext_dep.yaml"). > > > > Wait, you can use upstream uncrustify? I'm just using whatever > > uncrustify version I took from the project-mu fork... > > > The fork version is needed for edk2 specific conventions. More details > are here - > https://dev.azure.com/projectmu/uncrustify?anchor=edk-ii-poc-details > > >> > >> Updating the version number in the YAML file (i.e., advancing edk2 > to > >> version 73.0.8) seems easy enough, but: > >> > >> - Do you think 73.0.8 is mature enough for adoption in edk2? > >> > >> This upstream uncrustify release was tagged in April (and I > can't see > >> any more recent commits), so I assume it should be stable. > >> > >> - Would the version update require a whole-tree re- > uncrustification? > > > > Please, no. I didn't mind doing an initial reformatting at first, > but > > doing this continuously is both 1) problem-prone 2) just amazing > > amounts of churn. > > Let's say I have version N, you have version N+1 - we may never get > > any final, formatted output as your version formats it differently > > from mine. > > > > I don't know how the CI is doing its thing atm (I haven't merged > > anything myself to edk2), but the uncrustify check should be relaxed > > to just a warning. There's nothing wrong with what my uncrustify > > version is formatting to, there's nothing wrong with yours either, > and > > CI isn't necessarily wrong either. > > > > And, to be fair, I already find uncrustify a large pain in the butt > to > > use (requiring a custom fork really does not help), but I find the > > benefits worth it *locally*, as my coding style is also quite > > different from the NT-esque style. > > > It should be simple to update and ensure everyone is using the same > version. This requires stuart commands to be used > (https://github.com/tianocore/edk2-pytool-extensions). I know there's > aversion to stuart but that's how these extensions plug into the edk2 > build process right now. > > If you use it, as an end user, you just run "stuart_update -c > .pytool/CISettings.py" and it will get the Uncrustify binary for your > host OS with the version used by the project. > > --- > > The version pulled and the source feed used by stuart are defined in > edk2 here: > https://github.com/tianocore/edk2/blob/master/.pytool/Plugin/Uncrustif > yCheck/uncrustify_ext_dep.yaml > > That file and command are used locally, in CI, and the file is checked > into edk2. At any given point in time, a user at a given point in edk2 > history should be using the same version and configuration. > > More details, for those interested, are here > https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Code- > Formatting. > That tries to cover some niche use cases so it may seem more > overwhelming than it actually is to just get and use the executable. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111181): https://edk2.groups.io/g/devel/message/111181 Mute This Topic: https://groups.io/mt/102559740/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-