Skip to content
Snippets Groups Projects
  1. Nov 21, 2024
    • Matt Harbison's avatar
      setup: require TLS 1.2 support from the Python interpreter (BC) · a820a7a1
      Matt Harbison authored
      Before it was optional, and either 1.1 or 1.2 was sufficient.  Now that the
      default minimum is 1.2, it needs to be present to work out of the box.
      
      The code here is more convoluted than the corresponding checks in `sslutil.py`,
      but I'm leaving it alone because it can all be simplified when py38 is dropped.
      a820a7a1
    • Matt Harbison's avatar
      run-tests: refactor the HGPORT handling code to use a constant for the max val · d49144a1
      Matt Harbison authored
      Simple enough, and then we don't need comments to cross-reference other areas of
      code that need to be kept in sync.  Since the `_getreplacements()` list is now
      partially dynamically generated and needed to change anyway, also move the one
      line that was being appended separately to the list for some reason, for clarity.
      d49144a1
  2. Nov 18, 2024
  3. Nov 04, 2024
  4. Oct 29, 2024
    • Raphaël Gomès's avatar
      rust-vfs: rename `open` to `open_write` and `open_read` to `open` · 645d247d
      Raphaël Gomès authored
      `open` being read *and* write is surprising because it differs from the
      Rust stdlib where `std::fs::File::open` is read-only by default.
      
      More importantly, writing is more dangerous than reading, so let's make it
      more explicit.
      645d247d
    • Raphaël Gomès's avatar
      rust-status: fix a future compilation error · 644c696b
      Raphaël Gomès authored
      This was the warning by clippy 1.82.0, which explains the change:
      
      ```
      warning: this function depends on never type fallback being `()`
         --> hg-core/src/dirstate_tree/status.rs:397:5
          |
      397 | /     fn traverse_fs_directory_and_dirstate<'ancestor>(
      398 | |         &self,
      399 | |         has_ignored_ancestor: &'ancestor HasIgnoredAncestor<'ancestor>,
      400 | |         dirstate_nodes: ChildNodesRef<'tree, 'on_disk>,
      ...   |
      404 | |         is_at_repo_root: bool,
      405 | |     ) -> Result<bool, DirstateV2ParseError> {
          | |___________________________________________^
          |
          = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
          = note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
          = help: specify the types explicitly
      note: in edition 2024, the requirement `!: rayon::iter::FromParallelIterator<()>` will fail
         --> hg-core/src/dirstate_tree/status.rs:453:28
          |
      453 |                 .collect::<Result<_, _>>()?;
          |                            ^^^^^^^^^^^^
          = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default
      ```
      644c696b
    • Raphaël Gomès's avatar
      rust-cpython: remove outdated test · 4361d787
      Raphaël Gomès authored
      This test wasn't testing anything anymore since the feature has been removed.
      This was caught by clippy 1.82.0.
      4361d787
    • Raphaël Gomès's avatar
      rust: fix clippy lints · f90796d3
      Raphaël Gomès authored
      These were highlighted by the latest version of clippy (1.82.0).
      f90796d3
    • Raphaël Gomès's avatar
      rust: normalize `_for_unchecked_rev` naming among revlogs and the index · a3fa37bd
      Raphaël Gomès authored
      This normalizes the naming scheme between the `Revlog`, `Changelog`, etc.
      which is less suprising, though no real bugs could stem from this because of
      the type signature mismatch.
      
      The very high-level `Repo` object still uses an `UncheckedRevision` parameter
      for its methods because that's what most callers will want.
      a3fa37bd
  5. Nov 12, 2024
  6. Nov 11, 2024
  7. Dec 22, 2020
    • Matt Harbison's avatar
      sslutil: add support for clients to set TLSv1.3 as the minimum protocol · 323e3626
      Matt Harbison authored
      AFAICT, all of the TLS versions are supported by the server without doing any
      explicit work, and there's only a `devel` config to specify an exact version on
      the server side.  Clients would also use TLSv1.3 if available, but this prevents
      the server from negotiating down.  This also causes "tls1.3" to be listed in
      `hg debuginstall`, even though it was previously supported (if the Python
      intepreter supported it- IDK if there's a good way to proactively test for and
      show future protocols without requiring manual updates like this).
      
      The v1.3 tests are nested inside the v1.2 tests for simplicity.  The v1.2 blocks
      already assume v1.0 and v1.1 support, so this seems reasonable for now.  If/when
      the older protocols start getting dropped, this will have to be reworked anyway.
      323e3626
  8. Dec 21, 2020
    • Matt Harbison's avatar
      run-tests: add a 4th `HGPORT` value · 7f8d0c2c
      Matt Harbison authored
      I want to add tls1.3 support, and test-https.t already uses the existing ports
      to test tls1.0 through 1.2.  It doesn't look to me like it can easily be
      converted to a bunch of #testcases, because this also tests downgrades to prior
      versions for the given client version.
      
      This partially reverts bc010fcd836b.
      7f8d0c2c
  9. Nov 11, 2024
  10. Nov 20, 2024
  11. Nov 09, 2024
    • Matt Harbison's avatar
      sslutil: drop support for Python prior to 3.7 · 94cf83d9
      Matt Harbison authored
      There's also a block of code around line 47 related to `ssl.HAS_TLSv1` to
      determine the supported protocols that references "Python 3.7", but I'm not
      altering that because the commit referenced there wasn't landed until just prior
      to the 3.9 release, and I'm not sure what flavors of py38 might not have a
      backport.
      
      Avoid de-indenting for now for a clearer text diff.
      94cf83d9
  12. Nov 12, 2024
    • Raphaël Gomès's avatar
      rust-manifest: use `memchr` crate for all byte-finding needs · f4aede0f
      Raphaël Gomès authored
      While writing a very dumb manifest diffing algorithm for a proof-of-concept
      I saw that `Manifest::find_by_path` was much slower than I was expecting.
      
      It turns out that the Rust stdlib uses slow (all is relative) code when
      searching for byte positions for reasons ranging from portability, SIMD
      API stability, nobody doing the work, etc. `memch` is much faster for these
      purposes, so let's use it.
      
      I was measuring ~670ms of profile time in `find_by_path`, after this patch
      it went down to ~230ms.
      f4aede0f
  13. Oct 31, 2024
  14. Nov 20, 2024
Loading