georges racinet - heptapod · what is heptapod ? heptapod = gitlab ce + mercurial a friendly fork...

33
Heptapod Georges Racinet Octobus, https://octobus.net Mercurial Conference – Paris 2019, Hosting mini track This presentation: slides: https://slides.racinet.fr/2019/hg-paris source: https://dev.heptapod.net/slides/2019-hg-paris Heptapod: Docker: https://hub.docker.com/r/octobus/heptapod source: https://dev.heptapod.net/heptapod Georges Racinet Heptapod

Upload: others

Post on 20-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod

Georges Racinet

Octobus, https://octobus.net

Mercurial Conference – Paris 2019, Hosting mini track

This presentation:

slides: https://slides.racinet.fr/2019/hg-paris

source:https://dev.heptapod.net/slides/2019-hg-paris

Heptapod:

Docker: https://hub.docker.com/r/octobus/heptapod

source: https://dev.heptapod.net/heptapod

Georges Racinet Heptapod

Page 2: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

What is Heptapod ?Heptapod = GitLab CE + Mercurial

A friendly fork

Excellent relationship with GitLab

Featuring modern Mercurial workflows: evolve, topicOne should never had to force-push

Georges Racinet Heptapod

Page 3: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

What is Heptapod ?Heptapod = GitLab CE + Mercurial

A friendly fork

Excellent relationship with GitLab

Featuring modern Mercurial workflows: evolve, topicOne should never had to force-push

Georges Racinet Heptapod

Page 4: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

What is Heptapod ?Heptapod = GitLab CE + Mercurial

A friendly fork

Excellent relationship with GitLab

Featuring modern Mercurial workflows: evolve, topicOne should never had to force-push

Georges Racinet Heptapod

Page 5: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

What is Heptapod ?Heptapod = GitLab CE + Mercurial

A friendly fork

Excellent relationship with GitLab

Featuring modern Mercurial workflows: evolve, topicOne should never had to force-push

Georges Racinet Heptapod

Page 6: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod history

First commit: november 2017

First prototype: december 2017

February 2018: demo to GitLab developers at FOSDEM

Blog post: september 2018

Fully self hosted: april 2019

Official Docker images: april 2019

Georges Racinet Heptapod

Page 7: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodReminder: topics

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

Georges Racinet Heptapod

Page 8: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodReminder: topics

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

Georges Racinet Heptapod

Page 9: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodReminder: topics

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

Georges Racinet Heptapod

Page 10: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodReminder: topics

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

Georges Racinet Heptapod

Page 11: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodReminder: topics

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

Georges Racinet Heptapod

Page 12: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodReminder: topics

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

Georges Racinet Heptapod

Page 13: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodHeptapod 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/TARGET_BRANCH_NAME/TOPIC_NAME

Georges Racinet Heptapod

Page 14: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodHeptapod 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/TARGET_BRANCH_NAME/TOPIC_NAME

Georges Racinet Heptapod

Page 15: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodHeptapod 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/TARGET_BRANCH_NAME/TOPIC_NAME

Georges Racinet Heptapod

Page 16: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodHeptapod 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/TARGET_BRANCH_NAME/TOPIC_NAME

Georges Racinet Heptapod

Page 17: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics in HeptapodTopic examples

branch/default/my-cool-feature

branch/stable/fix435

branch/1.0.x/fix435

Georges Racinet Heptapod

Page 18: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Topics and Merge Requests

Creation, diff, review, discussions: just normal GitLab

Merge: rebase + publish

Georges Racinet Heptapod

Page 19: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod in action

time for a live demo. . .

Georges Racinet Heptapod

Page 20: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod nowDon’t call it a prototype any more

Many stabilisation actions in 2019:

Better concurrency supportMore streamlined Docker deploymentYet, still internally based on hg-git

Self hosted

In regular use at Octobus and some of our partners

Support available through Octobus

Georges Racinet Heptapod

Page 21: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod nowDon’t call it a prototype any more

Many stabilisation actions in 2019:

Better concurrency supportMore streamlined Docker deployment

Yet, still internally based on hg-git

Self hosted

In regular use at Octobus and some of our partners

Support available through Octobus

Georges Racinet Heptapod

Page 22: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod nowDon’t call it a prototype any more

Many stabilisation actions in 2019:

Better concurrency supportMore streamlined Docker deploymentYet, still internally based on hg-git

Self hosted

In regular use at Octobus and some of our partners

Support available through Octobus

Georges Racinet Heptapod

Page 23: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod nowDon’t call it a prototype any more

Many stabilisation actions in 2019:

Better concurrency supportMore streamlined Docker deploymentYet, still internally based on hg-git

Self hosted

In regular use at Octobus and some of our partners

Support available through Octobus

Georges Racinet Heptapod

Page 24: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod nowDon’t call it a prototype any more

Many stabilisation actions in 2019:

Better concurrency supportMore streamlined Docker deploymentYet, still internally based on hg-git

Self hosted

In regular use at Octobus and some of our partners

Support available through Octobus

Georges Racinet Heptapod

Page 25: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Heptapod nowDon’t call it a prototype any more

Many stabilisation actions in 2019:

Better concurrency supportMore streamlined Docker deploymentYet, still internally based on hg-git

Self hosted

In regular use at Octobus and some of our partners

Support available through Octobus

Georges Racinet Heptapod

Page 26: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Current developmentsOn the current code base

stabilisation/publication of Gitlab CIcurrently running at Logilab

Work on importing large projects

Finer permission control (publication)

Basic documentation (install instructions)

Georges Racinet Heptapod

Page 27: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

CaveatsNot a prototype, yet still. . .

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 toneeds, but in the long run we better jump to. . .

Georges Racinet Heptapod

Page 28: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

The Next PhaseStarting now!

Hg + Gitaly

Gitaly: abstraction layer for internal Git access

Development of a Mercurial version

No more hg-git

much faster

catching up onto current GitLab

Georges Racinet Heptapod

Page 29: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

How you can help

Contributing

codedocumentationbug reports

Sponsoring

missing features on the current versionlong term developments

Georges Racinet Heptapod

Page 30: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

How you can help

Contributing

codedocumentationbug reports

Sponsoring

missing features on the current versionlong term developments

Georges Racinet Heptapod

Page 31: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

How you can help

Contributing

codedocumentationbug reports

Sponsoring

missing features on the current versionlong term developments

Georges Racinet Heptapod

Page 32: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Current sponsors

Octobus

Notile

Logilab https://logilab.fr

Pythonian https://pythonian.fr

Georges Racinet Heptapod

Page 33: Georges Racinet - Heptapod · What is Heptapod ? Heptapod = GitLab CE + Mercurial A friendly fork Excellent relationship with GitLab Featuring modern Mercurial work ows: evolve, topic

Thank you

Any questions?

Georges Racinet Heptapod