Workflow blocked on the 3.6 because of AppVeyor; who owns the AppVeyor project?
Hi, It's no longer possible to merge any change in the 3.6 branch of CPython, because the AppVeyor job fails: https://bugs.python.org/issue34575 It seems like AppVeyor has a build cache and this cache is outdated. I tried to use the REST API but I'm not allowed to invalidate the cache: even the most basic REST API query (list my own roles) fails with: {"message":"You do not have required permissions to perform this action."} Who ows the "python" AppVeyor project? Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache? Moreover, would it be possible to give me the administrator permission on the CPython GitHub project, so I would be able to mark the AppVeyor as optional until the issue is solved (to unblock the workflow at least)? I promise I will not mess up the Python project ;-) Thanks in advance, Victor
On Wed, 5 Sep 2018 at 10:55, Victor Stinner <vstinner@redhat.com> wrote:
Hi,
It's no longer possible to merge any change in the 3.6 branch of CPython, because the AppVeyor job fails: https://bugs.python.org/issue34575
It seems like AppVeyor has a build cache and this cache is outdated. I tried to use the REST API but I'm not allowed to invalidate the cache: even the most basic REST API query (list my own roles) fails with:
{"message":"You do not have required permissions to perform this action."}
Who ows the "python" AppVeyor project? Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache?
Moreover, would it be possible to give me the administrator permission on the CPython GitHub project, so I would be able to mark the AppVeyor as optional until the issue is solved (to unblock the workflow at least)? I promise I will not mess up the Python project ;-)
I don't appear to have admin rights on Appveyor either. Also, there doesn't appear to be an appveyor.yml file in the CPython repository, so I'm not clear how the build process has been configured. Does anyone have that information? (And I'd strongly recommend that if we're somehow configuring the builds via the Appveyor UI, we move to using a config file like we do for Travis, so that diagnosis and fixes can be done without needing to access the Appveyor admin interface...) Paul
On Wed, 5 Sep 2018 11:03:48 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
On Wed, 5 Sep 2018 at 10:55, Victor Stinner <vstinner@redhat.com> wrote:
Hi,
It's no longer possible to merge any change in the 3.6 branch of CPython, because the AppVeyor job fails: https://bugs.python.org/issue34575
It seems like AppVeyor has a build cache and this cache is outdated. I tried to use the REST API but I'm not allowed to invalidate the cache: even the most basic REST API query (list my own roles) fails with:
{"message":"You do not have required permissions to perform this action."}
Who ows the "python" AppVeyor project? Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache?
Moreover, would it be possible to give me the administrator permission on the CPython GitHub project, so I would be able to mark the AppVeyor as optional until the issue is solved (to unblock the workflow at least)? I promise I will not mess up the Python project ;-)
I don't appear to have admin rights on Appveyor either. Also, there doesn't appear to be an appveyor.yml file in the CPython repository, so I'm not clear how the build process has been configured.
For some reason it seems to be located in a hidden directory (".github/appveyor.yml"). Not the most intuitive decision IMHO. Travis' own config file ".travis.yml" is still at repository root, which makes things more confusing. Regards Antoine.
On Wed, 5 Sep 2018 at 12:24, Antoine Pitrou <solipsis@pitrou.net> wrote:
For some reason it seems to be located in a hidden directory (".github/appveyor.yml"). Not the most intuitive decision IMHO. Travis' own config file ".travis.yml" is still at repository root, which makes things more confusing.
Thanks, agreed that's confusing. I'd prefer appveyor.yml to be at the project root, as that's what nearly all projects I deal with do. But at least I know where it is now :-) Paul
On Wed, 5 Sep 2018 at 04:56 Paul Moore <p.f.moore@gmail.com> wrote:
On Wed, 5 Sep 2018 at 12:24, Antoine Pitrou <solipsis@pitrou.net> wrote:
For some reason it seems to be located in a hidden directory (".github/appveyor.yml"). Not the most intuitive decision IMHO. Travis' own config file ".travis.yml" is still at repository root, which makes things more confusing.
Thanks, agreed that's confusing. I'd prefer appveyor.yml to be at the project root, as that's what nearly all projects I deal with do. But at least I know where it is now :-)
This was on purpose as the CI files are not directly related to Python itself so they are easier to leave out of any source tarball and such. The reason .travis.yml is top-level is because Travis won't let us have it anywhere else.
On Wed, Sep 5, 2018 at 6:23 AM Antoine Pitrou <solipsis@pitrou.net> wrote:
On Wed, 5 Sep 2018 11:03:48 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
On Wed, 5 Sep 2018 at 10:55, Victor Stinner <vstinner@redhat.com> wrote:
Who ows the "python" AppVeyor project?
That seems to have fallen to me for the most part.
Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache?
I don't appear to have admin rights on Appveyor either.
I've attempted to make a change that should give you both more access; even odds on whether it did anything :). I've never tried to use their REST API, so I don't know whether it will help with that at all.
For some reason it seems to be located in a hidden directory (".github/appveyor.yml"). Not the most intuitive decision IMHO. Travis' own config file ".travis.yml" is still at repository root, which makes things more confusing.
The idea there was to avoid proliferation of root-level dotfiles where possible, but if we would rather keep it at the project root it's a relatively simple change to make. For the actual issue at hand, the problem arises from doing builds on 3.6 with both the VS2015 and VS2017 images. Apparently something built in `/externals` by the VS2015 build gets cached, which then breaks the VS2017 build; I haven't tracked down how exactly that is happening. I think the preferred solution is probably to just drop the VS2017 build on 3.6 on AppVeyor; VSTS runs on VS2017 and dropping one of the builds from 3.6 will make AppVeyor significantly quicker on that branch. -- Zach
Le mer. 5 sept. 2018 à 15:47, Zachary Ware <zachary.ware+pydev@gmail.com> a écrit :
For the actual issue at hand, the problem arises from doing builds on 3.6 with both the VS2015 and VS2017 images. Apparently something built in `/externals` by the VS2015 build gets cached, which then breaks the VS2017 build; I haven't tracked down how exactly that is happening. I think the preferred solution is probably to just drop the VS2017 build on 3.6 on AppVeyor; VSTS runs on VS2017 and dropping one of the builds from 3.6 will make AppVeyor significantly quicker on that branch.
Do we have a VS2017 buildbot on the 3.6 branch? If yes, I vote to drop VS2017 in the pre-commit hook (AppVeyor) since it would make AppVeyor twice faster on 3.6! Victor
On Wed, 5 Sep 2018 at 14:47, Zachary Ware <zachary.ware+pydev@gmail.com> wrote:
On Wed, Sep 5, 2018 at 6:23 AM Antoine Pitrou <solipsis@pitrou.net> wrote:
On Wed, 5 Sep 2018 11:03:48 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
On Wed, 5 Sep 2018 at 10:55, Victor Stinner <vstinner@redhat.com> wrote:
Who ows the "python" AppVeyor project?
That seems to have fallen to me for the most part.
Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache?
I don't appear to have admin rights on Appveyor either.
I've attempted to make a change that should give you both more access; even odds on whether it did anything :). I've never tried to use their REST API, so I don't know whether it will help with that at all.
I do indeed now seem to have admin access on Appveyor. Thanks for that. I guess I should therefore say that if anyone needs help with Appveyor stuff, feel free to ping me and save Zach from getting all the work :-)
For some reason it seems to be located in a hidden directory (".github/appveyor.yml"). Not the most intuitive decision IMHO. Travis' own config file ".travis.yml" is still at repository root, which makes things more confusing.
The idea there was to avoid proliferation of root-level dotfiles where possible, but if we would rather keep it at the project root it's a relatively simple change to make.
When working via github on the web (which I was) rather than on a local checkout where I can search, putting it in a subdiretory is a bit less discoverable (made worse because there's nothing about the name ".github" that suggests it would have Appveyor files in it :-)) I'd prefer it at the top level - but not enough to submit a PR for that at the moment, so I'm fine with it staying where it is.
For the actual issue at hand, the problem arises from doing builds on 3.6 with both the VS2015 and VS2017 images. Apparently something built in `/externals` by the VS2015 build gets cached, which then breaks the VS2017 build; I haven't tracked down how exactly that is happening. I think the preferred solution is probably to just drop the VS2017 build on 3.6 on AppVeyor; VSTS runs on VS2017 and dropping one of the builds from 3.6 will make AppVeyor significantly quicker on that branch.
Nice catch. I'd agree, it's probably not worth having both (particularly as, if Victor says, we have buildbots for the one Appveyor doesn't cover - but even if we don't I think VSTS has it covered). I presume you're suggesting keeping 2017 is so that we don't have stray 2015-built artifacts in the cache, which makes sense to me, and I have a mild preference for keeping the latest compiler, as that's likely the one that people will find easier to get. But 2015 is presumably the version the official 3.6 builds are made with, so there's an argument for keeping that one (although if we do that I guess we need to find a *different* way of fixing the cached artifact issue). tl; dr; I'm inclined to agree with you that just using VS2017 on Appveyor is the simplest option. Paul
On Wed, Sep 5, 2018 at 9:30 AM Paul Moore <p.f.moore@gmail.com> wrote:
I presume you're suggesting keeping 2017 is so that we don't have stray 2015-built artifacts in the cache, which makes sense to me, and I have a mild preference for keeping the latest compiler, as that's likely the one that people will find easier to get. But 2015 is presumably the version the official 3.6 builds are made with, so there's an argument for keeping that one (although if we do that I guess we need to find a *different* way of fixing the cached artifact issue).
My fix was actually to keep VS2015 on AppVeyor and leave VS2017 to VSTS, that way we get pre-commit coverage on both compilers. There shouldn't be any caching issues between branches, since PCbuild is sufficiently different between each branch. I wish there was a cache per branch, but there doesn't seem to be. -- Zach
On Wed, Sep 5, 2018 at 4:32 PM Paul Moore <p.f.moore@gmail.com> wrote:
On Wed, 5 Sep 2018 at 14:47, Zachary Ware <zachary.ware+pydev@gmail.com> wrote:
On Wed, Sep 5, 2018 at 6:23 AM Antoine Pitrou <solipsis@pitrou.net> wrote:
On Wed, 5 Sep 2018 11:03:48 +0100 Paul Moore <p.f.moore@gmail.com> wrote:
On Wed, 5 Sep 2018 at 10:55, Victor Stinner <vstinner@redhat.com> wrote:
Who ows the "python" AppVeyor project?
That seems to have fallen to me for the most part.
Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache?
I don't appear to have admin rights on Appveyor either.
I've attempted to make a change that should give you both more access; even odds on whether it did anything :). I've never tried to use their REST API, so I don't know whether it will help with that at all.
I do indeed now seem to have admin access on Appveyor. Thanks for that. I guess I should therefore say that if anyone needs help with Appveyor stuff, feel free to ping me and save Zach from getting all the work :-)
For some reason it seems to be located in a hidden directory (".github/appveyor.yml"). Not the most intuitive decision IMHO. Travis' own config file ".travis.yml" is still at repository root, which makes things more confusing.
The idea there was to avoid proliferation of root-level dotfiles where possible, but if we would rather keep it at the project root it's a relatively simple change to make.
When working via github on the web (which I was) rather than on a local checkout where I can search, putting it in a subdiretory is a bit less discoverable (made worse because there's nothing about the name ".github" that suggests it would have Appveyor files in it :-)) I'd prefer it at the top level - but not enough to submit a PR for that at the moment, so I'm fine with it staying where it is.
For the actual issue at hand, the problem arises from doing builds on 3.6 with both the VS2015 and VS2017 images. Apparently something built in `/externals` by the VS2015 build gets cached, which then breaks the VS2017 build; I haven't tracked down how exactly that is happening. I think the preferred solution is probably to just drop the VS2017 build on 3.6 on AppVeyor; VSTS runs on VS2017 and dropping one of the builds from 3.6 will make AppVeyor significantly quicker on that branch.
Nice catch. I'd agree, it's probably not worth having both (particularly as, if Victor says, we have buildbots for the one Appveyor doesn't cover - but even if we don't I think VSTS has it covered).
I presume you're suggesting keeping 2017 is so that we don't have stray 2015-built artifacts in the cache, which makes sense to me, and I have a mild preference for keeping the latest compiler, as that's likely the one that people will find easier to get. But 2015 is presumably the version the official 3.6 builds are made with, so there's an argument for keeping that one (although if we do that I guess we need to find a *different* way of fixing the cached artifact issue).
tl; dr; I'm inclined to agree with you that just using VS2017 on Appveyor is the simplest option.
Hello, Let me take this note as an opportunity to nag that I have a still open pull request to add testing of Python on Cygwin to the AppVeyor build, which in theory works quite well: https://github.com/python/cpython/pull/8463 So +1 for dropping one build configuration from AppVeyor if that will make it easier in the future to add this one :) However, Victor has asked that as a prerequisite to adding a Cygwin build to AppVeyor, we first have a relatively stable buildbot. I had thought maybe adding advisory CI on AppVeyor *first* would make getting a stable buildbot easier, but I can see the argument either way, so we have added said buildbot: https://buildbot.python.org/all/#/builders/164 Unfortunately, for the last ~120 builds it has been all but useless due to at least two small, but long outstanding issues preventing 3.7.x from building on Cygwin. Both of those issues have proposed fixes pending review, both of which have PRs linked to from my AppVeyor PR. If anyone is interested in having a look at those I'd appreciate it, thanks (one of them also got some review from Inada Naoki, but we didn't ever agree on some concrete action items for making the patch acceptable, and it has stalled again...) Best, E
I wrote some notes about our CIs. Link to AppVeyor notes: https://pythondev.readthedocs.io/ci.html#appveyor Victor Le mer. 5 sept. 2018 à 12:04, Paul Moore <p.f.moore@gmail.com> a écrit :
On Wed, 5 Sep 2018 at 10:55, Victor Stinner <vstinner@redhat.com> wrote:
Hi,
It's no longer possible to merge any change in the 3.6 branch of CPython, because the AppVeyor job fails: https://bugs.python.org/issue34575
It seems like AppVeyor has a build cache and this cache is outdated. I tried to use the REST API but I'm not allowed to invalidate the cache: even the most basic REST API query (list my own roles) fails with:
{"message":"You do not have required permissions to perform this action."}
Who ows the "python" AppVeyor project? Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache?
Moreover, would it be possible to give me the administrator permission on the CPython GitHub project, so I would be able to mark the AppVeyor as optional until the issue is solved (to unblock the workflow at least)? I promise I will not mess up the Python project ;-)
I don't appear to have admin rights on Appveyor either. Also, there doesn't appear to be an appveyor.yml file in the CPython repository, so I'm not clear how the build process has been configured. Does anyone have that information? (And I'd strongly recommend that if we're somehow configuring the builds via the Appveyor UI, we move to using a config file like we do for Travis, so that diagnosis and fixes can be done without needing to access the Appveyor admin interface...)
Paul
On Wed, Sep 5, 2018 at 12:55 PM Victor Stinner <vstinner@redhat.com> wrote:
Hi,
It's no longer possible to merge any change in the 3.6 branch of CPython, because the AppVeyor job fails: https://bugs.python.org/issue34575
It seems like AppVeyor has a build cache and this cache is outdated. I tried to use the REST API but I'm not allowed to invalidate the cache: even the most basic REST API query (list my own roles) fails with:
{"message":"You do not have required permissions to perform this action."}
Who ows the "python" AppVeyor project? Can someone please give me the administrator permission on this project, so I will be able to invalid the build cache?
Moreover, would it be possible to give me the administrator permission on the CPython GitHub project, so I would be able to mark the AppVeyor as optional until the issue is solved (to unblock the workflow at least)? I promise I will not mess up the Python project ;-)
I've just made the "continuous-integration/appveyor/pr" status check optional on the 3.6 branch to unblock the development for now. Indeed, AppVeyor's REST API doesn't work: $ curl -H "Authorization: Bearer $APPVEYOR_TOKEN" -H "Content-Type: application/json" -X DELETE https://ci.appveyor.com/api/projects/python/cpython/buildcache {"message":"You do not have required permissions to perform this action."} I'm going to try to make you an admin on python/cpython, but I find GitHub's user/team management UI a bit confusing, so no promise :) --Berker
participants (7)
-
Antoine Pitrou
-
Berker Peksağ
-
Brett Cannon
-
Erik Bray
-
Paul Moore
-
Victor Stinner
-
Zachary Ware