Skip to content
Snippets Groups Projects
  1. Sep 01, 2022
  2. Aug 30, 2022
  3. Aug 31, 2022
  4. Aug 29, 2022
  5. Aug 30, 2022
  6. Aug 25, 2022
  7. Aug 26, 2022
    • Arseniy Alekseyev's avatar
      tests: remove flakiness in test-nointerrupt.t · 8c75ae3f0eea
      Arseniy Alekseyev authored
      The problem was that the reaction to the signal was racing against
      the completion of the command.
      Since reaction to the signal is to print a line of warning,
      we can fix this by waiting for that warning to appear before
      allowing the command to complete.
      8c75ae3f0eea
  8. Jul 20, 2022
    • Gregory Szorc's avatar
      automation: set PATH when building on Windows · e4e33b779fa2
      Gregory Szorc authored
      Sometime in the 6.2 release cycle the Windows building automation
      broke. Building the wheel and even PyOxidizer based installers now fails
      with:
      
      ```
      Exception: PowerShell execution failed:   error: subprocess-exited-with-error
      Getting requirements to build wheel did not run successfully.
      exit code: 1
      [1 lines of output]
      Unable to find a working hg binary to extract the version from the repository tags
      [end of output]
      note: This error originates from a subprocess, and is likely not a problem with pip.
      ```
      
      I have a hunch this is a regression from upgrading pip in 1c00777702da,
      but I haven't verified this. It may not be, as PyOxidizer has its own
      bundled Python/pip. So maybe it is something in `setup.py`.
      e4e33b779fa2
  9. Jul 17, 2022
  10. Jun 04, 2022
    • Gregory Szorc's avatar
      automation: transition to Windows Server 2022 · f1dcddb7f328
      Gregory Szorc authored
      Let's keep our Windows build environment modern by upgrading to the
      latest OS.
      
      As part of the upgrade, we pick up a migration to EC2Launch Version 2.
      This has a different config mechanism. So we need to port how we manage
      the administrator password.
      
      As part of migrating to the new YAML/JSON config file mechanism, we move
      the code to the powershell script that is run when the instance first
      launches. This ensures that the config is retained during the reboot we
      perform as part of building the Windows AMI.
      
      The motivation for this is I'm currently unable to build the Windows
      2019 AMI due to an issue installing OpenSSH. This _just works_ on
      Windows Server 2022. I have no clue what the root cause is. I think
      it might have something to do with Microsoft not publishing the files
      in the right location.
      
      Differential Revision: https://phab.mercurial-scm.org/D12630
      f1dcddb7f328
    • Gregory Szorc's avatar
      automation: refresh requirements · ef40864bc074
      Gregory Szorc authored
      I'm hitting errors installing the old version of cffi due to an
      apparent issue where older versions of cffi aren't compatible with
      the modern Clang I'm using. So let's upgrade packages to unbreak
      things and to keep things modern.
      
      Differential Revision: https://phab.mercurial-scm.org/D12629
      ef40864bc074
  11. Aug 17, 2022
  12. Aug 05, 2022
  13. Jul 11, 2022
    • kiilerix's avatar
      rust: bump to memmap2 0.5.3, micro-timer 0.4.0, and crossbeam-channel 0.5.0 · 1bad05cfc818
      kiilerix authored
      The merge in 12adf8c695ed had conflicts in rust/Cargo.lock and
      rust/hg-core/Cargo.toml . Let's ignore rust/Cargo.lock - it is regenerated.
      
      For rust/hg-core/Cargo.toml, stable had dd6b67d5c256 "rust: fix unsound
      `OwningDirstateMap`" which introduced ouroboros (and dropped
      stable_deref_trait).
      
      Default had ec8d9b5a5e7c "rust-hg-core: upgrade dependencies" which had a lot
      of churn bumping minimum versions - also patch versions. It is indeed a good
      idea to bump to *allow* use of latest package. That means that major versions
      should be bumped for packages after 1.0, and for packages below 1.0 minor
      versions should be bumped too. But it doesn't work to try enforce a policy of
      using latest patch by bumping versions at arbitrary times.
      
      For good or bad, the merge doesn't seem to have resolved the conflicts
      correctly, and many of the minor "upgrade dependencies" were lost again.
      
      Unfortunately, it also lost the bump of memmap2 to 0.5.3, which is needed for
      Fedora packaging where 0.4 isn't available. Same with micro-timer bump to 0.4
      (which already is used in rhg). crossbeam-channel bump was also lost.
      
      This change fixes that regression by redoing these "important" lines of the
      merge "correctly".
      
      I propose this for stable, even though dependency changes on stable branches
      are annoying.
      1bad05cfc818
  14. Jul 28, 2022
  15. Jul 27, 2022
  16. Jul 26, 2022
  17. Jul 19, 2022
    • Matt Harbison's avatar
      packaging: bump dulwich to 0.20.45 · 98645c1bfeaa
      Matt Harbison authored
      I'm told the new dulwich avoids hg-git test failures.
      98645c1bfeaa
    • Matt Harbison's avatar
      packaging: update keyring on Windows to avoid spurious stacktraces · 9d427cc2e742
      Matt Harbison authored
      When challenged for a network password, this would spew on Windows before it
      actually used the stored password:
      
      ```
      Error initializing plugin EntryPoint(name='libsecret', value='keyring.backends.libsecret', group='keyring.backends').
      Traceback (most recent call last):
        File "keyring.backend", line 198, in _load_plugins
          init_func = ep.load()
        File "importlib.metadata", line 77, in load
          module = import_module(match.group('module'))
        File "importlib", line 127, in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
        File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
        File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
      ModuleNotFoundError: No module named 'keyring.backends.libsecret'
      Error initializing plugin EntryPoint(name='macOS', value='keyring.backends.macOS', group='keyring.backends').
      Traceback (most recent call last):
        File "keyring.backend", line 198, in _load_plugins
          init_func = ep.load()
        File "importlib.metadata", line 77, in load
          module = import_module(match.group('module'))
        File "importlib", line 127, in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
        File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
        File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
      ModuleNotFoundError: No module named 'keyring.backends.macOS'
      ```
      
      We're kinda threading a needle here because the next version of `keyring`
      (currently at 23.7.0) requires `importlib-metadata` 3.6+, which PyOxidizer 0.22
      doesn't support[1].
      
      [1] https://github.com/indygreg/PyOxidizer/issues/609
      9d427cc2e742
    • Georges Racinet's avatar
      mergestate: action name was str · 34e15bbab67c
      Georges Racinet authored
      Apparently the standard for them is still to use byte strings.
      Found while looking at something else
      34e15bbab67c
  18. Jul 13, 2022
    • Ondřej Pohořelský's avatar
      sslutil: another use proper attribute to select python 3.7+ · 4a1f0bc0713e
      Ondřej Pohořelský authored
      The previous attribute was python 3.6+, but guarded a python 3.7+ block
      
      Using the correct attribute avoids:
      +    File "/tmp/hgtests.bc0_uk2d/install/lib/python/mercurial/sslutil.py", line 577, in wrapserversocket
      +      sslcontext.minimum_version = ssl.TLSVersion.TLSv1_1
      +  AttributeError: module 'ssl' has no attribute 'TLSVersion'
      4a1f0bc0713e
  19. Jul 12, 2022
    • Mathias De Mare's avatar
      sslutil: use proper attribute to select python 3.7+ · be3828081624
      Mathias De Mare authored
      The previous attribute was python 3.6+, but guarded a python 3.7+ block.
      
      Using the correct attribute avoids:
        File "/usr/lib64/python3.6/site-packages/mercurial/sslutil.py", line 334, in wrapsocket
          sslcontext.minimum_version = ssl.TLSVersion.TLSv1_1
      AttributeError: module 'ssl' has no attribute 'TLSVersion'
      be3828081624
  20. Jul 06, 2022
  21. Jul 04, 2022
  22. Jul 11, 2022
  23. Jul 10, 2022
    • Manuel Jacob's avatar
      procutil: make stream detection in make_line_buffered more correct and strict · 094a5fa3cf52
      Manuel Jacob authored
      In make_line_buffered(), we don’t want to wrap the stream if we know that lines
      get flushed to the underlying raw stream already.
      
      Previously, the heuristic was too optimistic. It assumed that any stream which
      is not an instance of io.BufferedIOBase doesn’t need wrapping. However, there
      are buffered streams that aren’t instances of io.BufferedIOBase, like
      Mercurial’s own winstdout.
      
      The new logic is different in two ways:
      
      First, only for the check, if unwraps any combination of WriteAllWrapper and
      winstdout.
      
      Second, it skips wrapping the stream only if it is an instance of io.RawIOBase
      (or already wrapped). If it is an instance of io.BufferedIOBase, it gets
      wrapped. In any other case, the function raises an exception. This ensures
      that, if an unknown stream is passed or we add another wrapper in the future,
      we don’t wrap the stream if it’s already line buffered or not wrap the stream
      if it’s not line buffered. In fact, this was already helpful during development
      of this change. Without it, I possibly would have forgot that WriteAllWrapper
      needs to be ignored for the check, leading to unnecessary wrapping if stdout is
      unbuffered.
      
      The alternative would have been to always wrap unknown streams. However, I
      don’t think that anyone would benefit from being less strict. We can expect
      streams from the standard library to be subclassing either io.RawIOBase or
      io.BufferedIOBase, so running Mercurial in the standard way should not regress
      by this change. Py2exe might replace sys.stdout and sys.stderr, but that
      currently breaks Mercurial anyway and also these streams don’t claim to be
      interactive, so this function is not called for them.
      6.2
      094a5fa3cf52
  24. Jul 05, 2022
  25. May 25, 2022
    • Raphaël Gomès's avatar
      rust: remove excessive calls to `#[timed]` · 6b04f702c501
      Raphaël Gomès authored
      This makes trace output *really* noisy and is only useful in case you want to
      take a look at a single revlog.
      
      This is easy to add back on a case-by-case basis and does not need to stay with
      the more permanent timers.
      6b04f702c501
Loading