PRs: Ubuntu toolchain PPAs on Drone CI

Alexander Grund via Boost <[email protected]>
Newsgroups gmane.comp.lib.boost.devel
Message-ID <[email protected]>
Hi maintainers,

I recently opened a PR for ~30 repos on Github titled
"Enable adding Ubuntu toolchain PPA by default"
and wanted to give some background.

TLDR: This is an intermediate fix for Drone to avoid failures when an 
upcoming change in Boost.CI [3] is merged.
The proper solution is to update .drone.star from e.g. Boost.CI [4], 
which has to be done by the maintainers who decide which configurations 
shall be tested

The `.drone.star` CI config eventually calls 
`ci/drone/linux-cxx-install.sh` from Boost.CI [1]
This, for a long time, added the ubuntu-toolchain-r/test PPA to be able 
to install older or newer compilers than available in the "default" 
Ubuntu repositories for the used image/container.
However this is causing issues:
1. Overhead for adding and downloading from other sources
2. Additional (Avoidable) flakiness when Launchpad isn't reachable, as 
currently surfaced by many intermediate failures
3. Potential for conflicts with other system software due to "unusual" 
combinations of e.g. compiler and stdlibs

=> Standard compilers should be preferred instead of this PPA

The Drone script mentioned above will no longer add the PPA by default 
in the near future [3], flipping the default from opt-out to opt-in.
Setting `$ADD_UBUNTU_TOOLCHAIN_PPA=true` allows to *selectively* add it 
automatically (again)

However the changed default will cause failures for Drone jobs using 
some combinations of compiler and OS.
A short term remedy is to globally set 
`$ADD_UBUNTU_TOOLCHAIN_PPA=true`for the Drone workflow in the repos 
`.drone.star` with the disadvantages mentioned above.
This is what my PRs do, as the right solution below is unfeasible to do 
alone for the 30 repos.

The better solution is to update the CI config to only use "supported" 
combinations, i.e. compilers that are natively available in the OS version.
This can be done by taking the .drone.star from Boost.CI [4] or, for 
special needs, at least use it to find supported configurations.

I strongly encourage authors/maintainers to update their CI accordingly 
and take that opportunity to ensure all CI (still) passes.

- Alex

[1] 
https://github.com/boostorg/boost-ci/blob/master/ci/drone/linux-cxx-install.sh
[3] https://github.com/boostorg/boost-ci/pull/252
[4] https://github.com/boostorg/boost-ci/blob/master/.drone.star

_______________________________________________
Boost mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.boost.org/mailman3/lists/boost.lists.boost.org/
Archived at: https://lists.boost.org/archives/list/[email protected]/message/53S5ARDJNBZIGXN7I42IC4NDCJCC3PED/
smime.p7s (application/pkcs7-signature, 4.7 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.