Skip to content
Snippets Groups Projects
  1. Nov 13, 2024
    • Pierre-Yves David's avatar
      setup: preserve version part after the "+" on Windows · 309f58964a9e
      Pierre-Yves David authored
      Code introduced in early 2010 (fb203201ce30) was dropping that part after "+".
      The rational is to preserve version on the format w.x.y.z where each part is a
      number. However we have not been using that format for a while (e.g. the rc
      suffix) and nobody reported any fire.
      
      So I am assuming that this code serve no purpose and I am dropping it. We can
      reintroduce a newer version of it (that would actually achieve its purpose) in
      the future if needed.
      309f58964a9e
    • Pierre-Yves David's avatar
      setup: make sure Rust build its extension for the right python · 124c944b71b2
      Pierre-Yves David authored
      Strictly speaking, only "PYTHON_SYS_EXECUTABLE" seems to be necessary, but I
      don't want to take a chances, as in testing "PYTHON" also had an effect.
      124c944b71b2
    • Pierre-Yves David's avatar
      clone: properly exclude rev-branch-cache from post clone cache warming · d57d1606049c
      Pierre-Yves David authored
      When adding "CACHE_REV_BRANCH" to "CACHES_ALL" in e51161b12c7e, I did not
      expected it to impact the clone steps. However the "CACHES_POST_CLONE" set is
      created rather creatively. (we should fix that, but not on stable)
      
      The benchmark caught a quite significant slowdown one hardlink and ssh-stream
      clones. Such slow down can be reduced to around ~5% by fully warming the cache
      before the clone. However keeping this expensive step away from the clone
      operation fully fix the slowdown and preserve the initial intend.
      
      
      Example slowdow for hardlink clone
      
      ### benchmark.name                               = hg.command.clone
        # bin-env-vars.hg.flavor                       = default
        # bin-env-vars.hg.py-re2-module                = default
        # benchmark.variants.explicit-rev              = none
        # benchmark.variants.issue6528                 = default
        # benchmark.variants.protocol                  = local-hardlink
        # benchmark.variants.pulled-delta-reuse-policy = default
        # benchmark.variants.resource-usage            = default
        # benchmark.variants.validate                  = default
       ## data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
      6.8.2:  19.799752
      6.9rc0: 29.017493  (+46.55%, +9.22)
      after:  19.929341
      
       ## data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
      6.8.2:  0.468020
      6.9rc0: 1.701294 (+263.51%, +1.23)
      after:  0.471934
      
       ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
      6.8.2:  2.397564
      6.9rc0: 5.666641 (+137.41%, +3.28)
      after:  2.428085
      d57d1606049c
  2. Nov 12, 2024
  3. Nov 13, 2024
  4. Nov 09, 2024
    • Pierre-Yves David's avatar
      wheel: add a job uploading nightly build · b8efa9013d3f
      Pierre-Yves David authored
      There are various questions around when to actually run it, and which jobs to
      run on the default branch, but having a working job we can decide to run
      manually (by running the manual dependencies) is a good step to get the wheel
      story from one end to the other.
      
      See inline comment for more details.
      b8efa9013d3f
    • Pierre-Yves David's avatar
      wheel: add a platform level to the wheel directories · 05addf266f6f
      Pierre-Yves David authored
      One day, we will gather all wheel in a single directory and be able to pick the
      right one programmatically. This days is not today…
      
      This will help clarify things if we fetch all artifacts at the same time.
      05addf266f6f
  5. Nov 13, 2024
  6. Nov 09, 2024
  7. Nov 10, 2024
  8. Nov 12, 2024
  9. Nov 10, 2024
  10. Nov 09, 2024
  11. Nov 10, 2024
  12. Nov 09, 2024
  13. Nov 10, 2024
  14. Nov 11, 2024
  15. Nov 12, 2024
  16. Nov 09, 2024
  17. Nov 11, 2024
  18. Nov 09, 2024
  19. Nov 08, 2024
  20. Nov 12, 2024
    • Raphaël Gomès's avatar
      rust-update: handle SIGINT from long-running update threads · 96b113d22b34
      Raphaël Gomès authored
      The current code does not respond to ^C until after the Rust bit is finished
      doing its work. This is expected, since Rust holds the GIL for the duration
      of the call and does not call `PyErr_CheckSignals`. Freeing the GIL to do our
      work does not really improve anything since the Rust threads are still going,
      and the only way of cancelling a thread is by making it cooperate.
      
      So we do the following:
      	- remember the SIGINT handler in hg-cpython and reset it after the call
      	  into core (see inline comment in `update.rs` about this)
      	- make all update threads watch for a global `AtomicBool` being `true`,
      	  and if so stop their work
      	- reset the global bool and exit early (i.e. before writing the dirstate)
      	- raise SIGINT from `hg-cpython` if update returns `InterruptReceived`
      96b113d22b34
  21. Nov 08, 2024
    • Pierre-Yves David's avatar
      ci: shard the test run on mac os X · fa58f4f97337
      Pierre-Yves David authored
      This should comes with some benefit:
      - spread the load across more runner,
      - reduce the real-time CI run,
      - reduce the "retry" run when we need them.
      
      We start with the Mac jobs, but that would be tremendously useful for Windows
      too.
      
      For linux, we need to reduce the startup overhead for this to be worth it.
      Building smaller image and speeding up clone should help with that.
      fa58f4f97337
  22. Sep 21, 2022
  23. Nov 08, 2024
  24. Oct 28, 2024
  25. Nov 08, 2024
    • Pierre-Yves David's avatar
      ci: rationalize variable usage · b3d6afa6ebbf
      Pierre-Yves David authored
      The usage of "extends" allow to skip a lot of duplication. We also introduce
      more fine grained variables to help finer override.
      b3d6afa6ebbf
    • Pierre-Yves David's avatar
      ci: move some variables closer to their usage · 74a9fbc1b574
      Pierre-Yves David authored
      These were defined globaly because we had trouble making them inherited. This
      is now fixed, so we can get them were they belong.
      74a9fbc1b574
    • Pierre-Yves David's avatar
      ci: use extends instead of <<: *x · 75bc7557e49f
      Pierre-Yves David authored
      The old form is a yaml construct that make it hard to share variable definition.
      
      The "extends:" key is a gitlab specific that preserve the variable definition
      and just add the new ones. This will help us to reduce duplication.
      
      This has the effect of fixing some of variants definition we though we set while
      we did actually not. Most notably, the "rust" variant for 3.12 and 3.13 seems
      fully broken in the CI (possibly because some rust-cpython version issue?).
      
      This changeset only reveal such breackage and does not introduce them.
      75bc7557e49f
Loading