wiki:MoveOffTrac

Version 22 (modified by btlogy, at 2025-08-21T09:10:29Z) (diff)

--

Move Off Trac

The goal of this page is to cover the phases of a project aiming at moving some critical features from Trac to an other solution (or combination of).

More information about the start of this project can be found in ticket #4095.

Discussions also happened in Nuts&Bolts meetings: see from WeeklyMeeting#April22024.

In addition, and as mentioned in the deliverables, more details can be found in this dedicated ​MoveOffTrac repository.

Scope

Goals and Requirements

  1. MUST replace Trac as currently used for Ticket and Wiki by some alternative(s):
    • MUST look better: current UI looks old which makes the Tahoe-LAFS project looking dead
    • MUST be better maintained: Trac is dying? max 2 contributors per month - ​https://openhub.net/p/trac
    • MUST be easier to maintain: Trac is difficult to update (current = v1.0.13/2016-09-11, latest = v1.6.0/2023-09-23)?
    • MUST allow Self-Registration (Trac requires manual registration via email)
    • COULD support OAuth2 with Github?
    • MUST be (F)OSS
    • MUST be self-hostable
      • note "able": MUST be a story for getting to a self-hosted instance if we want
      • ..but doesn't have to be self-hosted right away
  2. MUST replace the current landing page (start/home page from the Trac/Wiki?):
  3. MUST replace the current binary repository for Tahoe-LAFS releases (​https://tahoe-lafs.org/downloads)
    • by providing at least a similar way to transfer files via ssh
  4. COULD be used to replace:
    • Github code hosting and review (pull request), keeping only a mirrored clone
    • Github Actions (to avoid leaving secrets in environment variables)
    • Circle CI (to avoid giving them too many permissions)

Inclusions

  • Trac users of the Tahoe-LAFS project
  • Trac issues of the Tahoe-LAFS project
  • Trac wiki pages of the Tahoe-LAFS project
  • Trac HTML home page of the Tahoe-LAFS project
  • Hall of Fame HTML page of the Tahoe-LAFS project
  • The related DNS records (mostly: tahoe-lafs.org)

Exclusions

  • Other Trac projects (see DevInfra)
  • Buildbot master instances for some other Trac projects
  • DARCS SCM for some of the other Trac projects
  • Any other services provided by the current server and not yet documented in DevInfra

Deliverables

  1. A VPS (hosted by Hetzner) providing the following features powered by NixOS and Gitea or Forgejo:
    • a tracking system provisioned with the issues migrated from Trac (same numbers)
    • a Wiki system provisioned with the relevant pages migrated from Trac (same names)
    • a static website replacing the landing page from Trac with the code required for CI and CD
    • a blog post for the Hall of Fame page (if sensible - fallback = static page)
    • a (Git) repository defining the VPS it-self and its configuration as code (including the secrets using sops)
    • optionally including the ToFu code allowing to manage the related DNS records (if Gandi supports it)
  2. A detailed migration plan to handle the transition (DNS changes and/or redirections)
    • documented in a this wiki page
    • covering the possible manual steps related to DNS records, HTTP redirections or URL rewriting
    • with a (Git) repository including/referring to the tools used to actually migrate
  3. An high-level migration plan for the features hosted on the VPS described to be later hosted on CodeBerg SaaS (assuming it is possible)
    • documented in this wiki page too

Deliverable 1 - self-hosted server

  1. DONE - Testing/PoC (retired):
  2. IN PROGRESS - Production:
    1. PENDING - Website only: VPS + OS + NGinx + website + redirect/proxy rules to legacy resources
    2. PENDING - All features from the PoC above: issues and wiki hosted by Forgejo
      • ⏸️ Steps described in #4161 (will require new data dump from Trac)

Deliverable 2 - migration plan from Trac to self-hosted Gitea or Forgejo

  • Tool: ​trac2gitea
  • Caveats:
    • tables are not always correctly converted to MD (e.g. #1170 - possibly wrongly formatted)
    • some original links are still not converted and points to tahoe-lafs.org (e.g. ​http://!?)
    • tickets authors need to be created as user before the migration to link contributions to their profile
    • changes history of wiki pages will be not be linked to their authors
  • Steps: TBD

Deliverable 3 - high-level migration plan from self-hosted to an SaaS provider

  1. DONE - Migration of the Forgejo repository/ies:
    • ✅ Plan:
      1. Sign-in to ​Forgejo and create an API token on Forgejo with Read access on repositories own by the ​Tahoe-LAFS org
      2. Sign-in to CodeBerg as a member of the ​Tahoe-LAFS org
      3. Use the ​migration tool on CodeBerg to migrate the repository/ies from ​Forgejo
      4. Archive the migrated repository/ies on ​Forgejo
    • ✅ PoC (examples):
      • Issues and Wiki pages originally hosted on Trac (archived)
        • Outcome: ​https://codeberg.org/Tahoe-LAFS/trac-2024-07-25
        • Caveats:
          • all links to contributors are broken (likely because CodeBerg will not allow this)
          • all links to comments are broken (likely because they use the ID from the source!)
          • all the link to attachment are broken (likely because the migration tool does not cover them - yet)
      • Code, issues, pull requests and CI/CD of the new static website (archived)
  2. IN PROGRESS - Migration of the static website
    • ▶️ Prospects:
      1. ​CodeBerg Pages, which will break legacy links (e.g. from GitHub)
      2. ​StaticHost, which might support redirect/proxy rules and avoid broken links.