Skip to content
  • Georges Racinet's avatar
    Merged upstream v13.7.1 in heptapod branch · efa00a757f7c
    Georges Racinet authored
    Upstream switched to Ruby 2.7, and we're taking the
    opportunity to upgrade the standard PostgreSQL version
    to 12, meaning this will be the one used in CI.
    
    Points of interest:
    
    - upstream went further in decoupling repositories from
      projects, with a unique `repository_path` internal reference,
      instead of the previous pair of namespace path and repository
      file name and various special cases and conventions. Notably,
      this occurred in `GitAccess`. This had by far the greatest impact
      on our code base, and can lead to further adaptations or
      simplifications:
    
      + perhaps we can let go of our `namespace_fs_path` arguments
        in `HgGitRepository.create_repository` and similar
      + perhaps it's time to refactor `HgAccess` to introduce a class
        hierarchy with the analogs of `GitAccessProject`, `GitAccessWiki`
        etc.
    - 2FA for SSH: new feature to be tested and adapted if needed, two-factor
      authentication for SSH repository operations. It works with
      a stateful Redis session and a separate call:
      `ssh heptapod.example 2fa_verify`
    - `user_{block,deactivation}_effects.html.haml` was removed upstream
      in favor of direct methods in `UsersHelpers`, where our changes (VCS
      neutral wording) had to be ported.
    - `projects/issues/show.html.haml` was split upstream, leading to
      a big conflict. Our change being in gating the rendering of the new
      branch proposal, we included it into `IssuesHelper#show_new_branch_button?`
    - Page for empty projects now resynced with upstream changes, without the
      conditionals based on permission to push on default branch in the case of
      Mercurial (can be improved later)
    - `_how_to_merge.html.haml` (Merge instructions modal dialog) has been ported
      upstream to VueJS. Ported our changes there.
    - New project page: choice between "blank", "import" and "template" is now
      a mandatory first screen instead of three tabs with "blank" selected by default.
      Our functional tests must be adapted to this new page flow.
    efa00a757f7c