There will be about 1h of downtime on 2020-03-02 at 13:00 UTC+1 (change of servers and upgrade to Heptapod 0.20.0 final)

  1. 10 Nov, 2020 2 commits
    • Georges Racinet's avatar
      Setting version for release · 30788b68d15b
      Georges Racinet authored
    • Georges Racinet's avatar
      Repository loading: returning proper error if not found · 66a4803f0f22
      Georges Racinet authored
      We already had good enough error responses for the case when
      the *storage* is not found, but it was missing for the case
      when the repository is not found in an existing storage.
      This is important, because it can actually break the landing page
      of some users: the Rails application does not seem to expect an
      unspecified Gitaly error here, but it should recover from
      I've been impaired by this on dev setup after
      with some repository removals, but don't have anything of that
      kind on hand any more, which would be more reassuring.
      We could have a better separation in concerns, as the
      subsequent change in `RepositoryExists()` indicates, but that's
      not a blocker for the imminent release.
  2. 09 Nov, 2020 5 commits
  3. 31 Oct, 2020 1 commit
  4. 01 Nov, 2020 3 commits
  5. 28 Oct, 2020 1 commit
  6. 16 Oct, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: using the new base CI images · 37d21a0e709c
      Georges Racinet authored
      This raises the question of homegeneity of branch naming conventions
      between py-heptapod and HGitaly (see long comment, with reference to
      There was also a glitch while installing py-heptapod. The solution
      adopted is a path of least resistance.
  7. 15 Oct, 2020 5 commits
  8. 13 Oct, 2020 2 commits
    • Georges Racinet's avatar
      GetArchive: honouring the path parameter · fd5edb7b17e6
      Georges Racinet authored
      In the GitLab application, this is used for download
      links in "subtrees" of the repository.
      An archival metadata file is not expected (nor is it on
      the Git side).
      I've checked that `git archive` behaves similarly, i.e., just
      an inclusion rule, with no re-anchoring of the files at the top
      of the archive.
    • Georges Racinet's avatar
      path: validation utilities · 3be51d8ba0ad
      Georges Racinet authored
      We'll need to perform the same kind of validation on paths
      that Gitaly does, and Mercurial itself already provides us
      with utilities to re-expose.
  9. 12 Oct, 2020 1 commit
  10. 13 Oct, 2020 1 commit
    • Georges Racinet's avatar
      Streaming utilities, starting with WRITE_BUFFER_SIZE · 510895fa5f79
      Georges Racinet authored
      Gitaly centralizes the sizes of chunks for streaming
      of binary large objects, with default values and
      tuning possibilities from environment. We are doing the
      same here.
      First use case will be repository archive production.
  11. 14 Oct, 2020 1 commit
  12. 10 Oct, 2020 5 commits
    • Georges Racinet's avatar
      server: Unix Domain socket support · d79a7c2370c8
      Georges Racinet authored
      This will in particular be a boon for HDK users, once it
      becomes the default in RSpec integration tests.
      On servers, it'll provide better insulation and reduce latency
      a little bit.
      Closes #4
    • Georges Racinet's avatar
      coverage: fully testing hgext3rd.hgitaly · 580677ba3695
      Georges Racinet authored
      There were previously no tests at all, and it wasn't in
      coverage report.
      Testing in Mercurial extension context is a bit more painful,
      but it's become easier now that the extension is just a thin
    • Georges Racinet's avatar
      server: moved init/start logic outside of Mercurial extension · e5d2c2bd6139
      Georges Racinet authored
      This provides a more natural and easier to test setting, with
      the extension being now only a thin wrapper for command-line
      arguments, configuration and startup exceptions.
      This also makes inner code more natural by stopping to insist that
      any string must be bytes: URLs are now str in `hgitaly.server`.
      On the other hand, storage root paths will keep on being bytes, as
      is natural for file system paths.
    • Georges Racinet's avatar
      grpcio: requiring at least 1.32 for exception uniformity · 3865ccd5be6f
      Georges Racinet authored
      In cases of socket bind failures, grpcio 1.31.0 returns a zero
      port value, whereas 1.32.0 raises RuntimeError.
      To avoid making special cases that seem useless, let's just make
      explicit that we are using at least 1.32.
    • Georges Racinet's avatar
      Python 2: dropping support · edda7778ca27
      Georges Racinet authored
      See heptapod#353 for rationale. Actually, this is more along
      the lines of not bothering about *potential* Python 2 support,
      as HGitaly wasn't really working under Python 2 anyway, notably
      because of type annotations (granted, we could have dropped them,
      but it doesn't matter any more).
  13. 09 Oct, 2020 4 commits
  14. 28 Sep, 2020 2 commits
  15. 14 Sep, 2020 1 commit
  16. 30 Jul, 2020 1 commit
  17. 29 Jul, 2020 1 commit
    • Georges Racinet's avatar
      Server command: made --repositories-root work · 3d8700a45b28
      Georges Racinet authored
      Apparently, `None` as default argument for an option is
      incompatible with it having a value. The only way to detect
      a missing string argument is to evaluate to bool. In this case,
      it's not a problem.
  18. 27 Jun, 2020 3 commits