Update the merging policy #17594

issue hebasto openend this issue on November 25, 2019
  1. hebasto commented at 2:56 pm on November 25, 2019: member

    After #17586 will be fixed, should we update the merging policy to require successful AppVeyor build?

    From IRC:

    <wumpus> I mean the reason that appveyor breaks all the time is because people ignore appveyor before merging, because it breaks all the time, we kind of need to break that circle shrug <meshcollider> true, appveyor has failed on pretty much every single open PR so it kinda just becomes cry-wolf <meshcollider> we need to fix it and then rebase every PR at once ;)

  2. fanquake added the label Brainstorming on Nov 25, 2019
  3. MarcoFalke commented at 3:24 pm on November 25, 2019: member

    we need to fix it and then rebase every PR at once ;)

    While rebasing does fix this, a simple “re-run build” might be sufficient as well. Not sure who has the rights to re-run a build, but re-opening the pull request is a work around

    should we update the merging policy to require successful AppVeyor build?

    That is already the merging policy. However, sometimes there are intermittent failures, so we can’t enforce it.

    Also, in this particular case the error came from a package that was upgraded below our feet. This has trade-offs:

    • Either we not fetch the latest package and risk that the documentation (list of packages) goes stale
    • or we check that the documentation is still up to date and risk that appveyor returns red

    Pick one, but not both ;)

  4. MarcoFalke commented at 3:24 pm on November 25, 2019: member
  5. laanwj commented at 1:09 pm on November 26, 2019: member
    True, that is already the merging policy. Sometimes the CIs break, it’s a fact of life, adding words to a document won’t change that. Although annoying, I also don’t see it as particularly problematic, as long as people are motivated to fix it (which happened really quickly).
  6. sipsorcery commented at 1:22 pm on November 26, 2019: member

    For my 2 cents I find appveyor CI to be marginally beneficial. Mostly due to the build time and fragility or maintaining it. That being said for a project like Bitcoin Core where catching problems far outweighs rapid development cycles it does seem justified.

    As I’m writing I have just succeeded in porting the appveyor job to Github Actions and have run a successful build (minus tests). It looks like build time and maintenance overhead will be approximately the same as appveyor but the usage limits do look a lot more appealing. If it does support 20 concurrent CI jobs that could significantly improve the situation for Bitcoin Core PR writers waiting for the build results.

  7. MarcoFalke commented at 1:46 pm on November 26, 2019: member

    An alternative to GitHub actions would be CirrusCi, which at least gives twice the amount of parallel builds: https://cirrus-ci.org/faq/#are-there-any-limits Another alternative would be to ask Appveyor to raise our limit.

    Anyway, thanks for working on this. I am lacking the background on Windows to be of any use here.

  8. sipsorcery commented at 1:57 pm on November 26, 2019: member

    An alternative to GitHub actions would be CirrusCi

    Probably worth doing some benchmarking on. Once I’ve got GitHub actions working will take a look at CirrusCi.

    Another alternative would be to ask Appveyor to raise our limit.

    +1 for that. There are currently 13 appveyor jobs queued for PR’s. That’s an improvement from about 20 at this time yesterday but at approx an hour a job that’s a long wait.

  9. MarcoFalke commented at 3:42 pm on November 26, 2019: member

    Hmm, on https://www.appveyor.com/pricing/ it says that an additional machine is $25/month for FOSS. However, on the billing page they say 50$.

    Edit: I guess on the billing page the price is for additional jobs and not for the total amount of jobs?

    Screenshot from 2019-11-26 10-39-12

  10. MarcoFalke commented at 5:14 pm on November 26, 2019: member

    Ok, we just sent them 50$ and there are now two parallel builds on https://ci.appveyor.com/project/DrahtBot/bitcoin/history

    We can upgrade/downgrade as needed in the future.

  11. MarcoFalke commented at 5:17 pm on November 26, 2019: member
    Closing this for now. Let’s revisit when a problem pops up in the future.
  12. MarcoFalke closed this on Nov 26, 2019

  13. sipsorcery commented at 8:09 pm on November 26, 2019: member

    I’m agnostic on CI but the Github Actions first impressions are that it will facilitate a lot higher loads than AppVeyor and is free (of course the load could suffer once usage increases and pricing could also change).

    I was able to run 10 consecutive Bitcoin Core build jobs (before I stopped adding more).

    actions_running

    The jobs are almost identical to appveyor except for the unit tests which I’ve had some problems with.

    ghactions_build

    A comparison of two jobs chosen at random for the msbuild stage:

    github action: 16m 50s appveyor: 38m 33s

    actions_completedjobs

    The github action job is contained in a single yml file, same as appveyor. I have it configured in a branch on my fork and will leave it running. As far as I can tell it couldn’t do any harm to enable it on the main Bitcoin repo. It doesn’t need to be integrated into the PR workflow. It would be interesting to see how the build queue performed with a trigger for PR’s.

    If there’s interest I can create a PR for the job.

  14. laanwj commented at 9:30 am on November 28, 2019: member

    Why I don’t blame AppVeyor too much for these kind of temporary issues: today, it’s again the turn for Travis CI to fail due to a dependency issue outside our control (#17626).

    If there’s interest I can create a PR for the job.

    Well, the “faster for free” part is kind of nice. The essential thing is that it tests the MSVC build system and runs the unit/functional tests.

  15. sipsorcery commented at 9:50 am on November 28, 2019: member
    I’ll submit a PR with the GitHub Actions job for consideration. Note that if it does get merged it will need an admin on the repo to manually create the action (once off task).
  16. MarcoFalke referenced this in commit fab9d115cd on Dec 11, 2019
  17. sidhujag referenced this in commit da1e7d15d7 on Dec 12, 2019
  18. sidhujag referenced this in commit 583765cb2e on Nov 10, 2020
  19. PastaPastaPasta referenced this in commit 21bd0c30d9 on Jun 27, 2021
  20. PastaPastaPasta referenced this in commit 75a7bc2588 on Jun 28, 2021
  21. PastaPastaPasta referenced this in commit d3752e2586 on Jun 29, 2021
  22. PastaPastaPasta referenced this in commit cfa8bf6ac8 on Jul 1, 2021
  23. PastaPastaPasta referenced this in commit 60744f57b7 on Jul 1, 2021
  24. PastaPastaPasta referenced this in commit 4b6b47c640 on Jul 14, 2021
  25. linuxsh2 referenced this in commit 936542afea on Sep 16, 2021
  26. MarcoFalke locked this on Dec 16, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-10-05 04:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me