-
-
Notifications
You must be signed in to change notification settings - Fork 759
Description
Is your feature request related to a problem? Please describe.
If developers outside of NV Access wish to make their own Appveyor based builds of NVDA, it is currently necessary for them to modify several scripts and a configuration file in order to generate a successful build.
Those files must either be patched on every push, or an elaborate system for causing Appveyor to download both appveyor.yml, and many of the build scripts under the appveyor/ directory, must be put in place.
I designed a method for that in my original "Personal Compiles via Appveyor" document, published in 2022. However it involved causing appveyor.yml to fetch all of the build scripts from a separate branch from the one being worked on, in addition to the appveyor.yml file itself, and overwriting all of the build scripts provided by NV Access with slightly altered ones. One needed to carefully modify the install section, and those scripts, making the process very fragile, and complex merge conflicts with appveyor.yml inevitable. It was also sensitive to NV Access changing the build scripts, as happened a time or two I believe.
In recently attempting to update this how-to in response to some people desiring to build with Appveyor, I decided that there had to be a better way.
Describe the solution you'd like
With some minor modifications to the build scripts and to appveyor.yml, it would be possible to cause the troublesome parts of the build process to be easily disabled by variable.
By allowing NV Access specific build steps which fail for everybody else (at least if unmodified) to be easily disabled by commenting out a line in appveyor.yml, and by making other NV Access specific tasks only run if it's being done on an actual nvaccess owned repo, the process for third party builders becomes much easier:
- Copy the
appveyor.ymlfile to a gist, web page, or separate branch. - Comment out or change a few lines in the
environmentsection of that file. - Tell Appveyor where to find the file.
And that's it.
The NV Access build scripts don't have to be changed at all, if they are responsive to variables in appveyor.yml.
That dramatically simplifies the process.
Describe alternatives you've considered
Continue using the current clunky methodology.
Additional context
While I know it's not the standard method for a proposal, in order to test my assumptions about how this could be simplified, it was necessary to actually do the work. As such I will forward a pull request as soon as I debug an annoying Appx build issue that has appeared.