Heptapod
Georges Racinet, Octobus
Mercurial Conference – Paris 2019, Hosting mini track
- This presentation:
- Heptapod:
What is Heptapod ?
Heptapod = GitLab CE + Mercurial
What is Heptapod ?
Heptapod = GitLab CE + Mercurial
What is Heptapod ?
Heptapod = GitLab CE + Mercurial
- A friendly fork
- Excellent relationship with GitLab
What is Heptapod ?
Heptapod = GitLab CE + Mercurial
- A friendly fork
- Excellent relationship with GitLab
- Featuring modern Mercurial workflows: evolve, topic
One should never have to force-push
Heptapod history
- Fist commit: november 2017
- First prototype: january 2018 (demo to GitLab developers)
- Blog post: september 2018
- Fully self hosted: april 2019
- Official Docker images: april 2019
Topics in Heptapod
Reminder: topics
- are lightweight short-lived branches
- disappear upon publication of their changesets
- suited for features or bugfixes
While named (classical) Mercurial branches are
- permanent
- global
- suited for support branches, stable/default etc
Topics in Heptapod
- Heptapod is meant for topics
- From GitLab point of view, both topics and named branches are…
just branches.
GitLab branch mappings:
- named branch:
branch/BRANCH_NAME
- topic:
topic/BRANCH_NAME/TOPIC_NAME
Topics in Heptapod
More topic examples:
- branch/default/my-cool-feature
- branch/stable/fix435
- branch/1.0.x/fix435
Topics and Merge Requests
- Creation, diff, review, discussions: just normal GitLab
- Merge: rebase + publish
Heptapod in action
time for a live demo…
Heptapod now
- Don't call it a prototype any more
- Many stabilisation actions in 2019:
- Better concurrency support
- More streamlined Docker deployment
- Still internally based on hg-git
- Self hosted
- In regular use at Octobus and some of our partners
- Support available through Octobus
Current developments
on the current code base:
- stabilisation/publication of Gitlab CI
- currently running at Logilab
- Work on importing large projects
- Finer permission control (publication)
- Basic documentation (install instructions)
Caveats
Not a prototype but:
- no SSH support
- forking is disabled
- no Git support (!)
- base GitLab version now quite old
Some of these will be solved on the current code base according to needs,
but in the long run we better jump to…
The Next Phase: Hg + Gitaly
Starting now!
- Gitaly: abstraction layer for internal Git access
- Development of a Mercurial version
- No more hg-git
- much faster
- catching up onto current GitLab
How you can help
- Contributing
- code
- documentation
- bug reports
- Sponsoring
- missing features on the current version
- long term developments