diff options
authordistix ticketing system <>2018-06-26 16:11:07 +0000
committerdistix ticketing system <>2018-06-26 16:11:07 +0000
commit88a5c05505041a6ac1f4f31751934d20738b4548 (patch)
parent9dad8473e20f349de0866fda42837bc24aae00ae (diff)
imported mails
5 files changed, 161 insertions, 0 deletions
diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/cur/.this-dir-not-empty/.empty/empty-file b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/cur/.this-dir-not-empty/.empty/empty-file
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/cur/.this-dir-not-empty/.empty/empty-file
diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/.this-dir-not-empty/.empty/empty-file b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/.this-dir-not-empty/.empty/empty-file
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/.this-dir-not-empty/.empty/empty-file
diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/1530029467.M646054P10047Q1.koom b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/1530029467.M646054P10047Q1.koom
new file mode 100644
index 0000000..3ca6d0e
--- /dev/null
+++ b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/new/1530029467.M646054P10047Q1.koom
@@ -0,0 +1,155 @@
+Return-Path: <>
+Received: from ( [])
+ by (Postfix) with ESMTPS id D902C42F0D
+ for <>; Tue, 26 Jun 2018 16:10:48 +0000 (UTC)
+Received: from (unknown [])
+ by (Postfix) with ESMTP id 9F812417C0
+ for <>; Tue, 26 Jun 2018 17:10:48 +0100 (BST)
+Received: from ip6-localhost.nat ([::1]
+ by with esmtp (Exim 4.80 #2 (Debian))
+ id 1fXqYK-0003jg-Is; Tue, 26 Jun 2018 17:10:48 +0100
+Received: from ([]
+ by with esmtpsa (Exim 4.80 #2 (Debian))
+ id 1fXqYI-0003jJ-SN
+ for <>; Tue, 26 Jun 2018 17:10:46 +0100
+Received: from exolobe3 ( [])
+ by (Postfix) with ESMTPSA id 4BB2842C80
+ for <>; Tue, 26 Jun 2018 16:10:46 +0000 (UTC)
+Message-ID: <>
+From: Lars Wirzenius <>
+To: ick discussions <>
+Date: Tue, 26 Jun 2018 19:10:41 +0300
+X-Mailer: Evolution 3.28.2-1
+Mime-Version: 1.0
+X-Pepperfish-Transaction: 4507-3886-d519-a9cc
+X-Pepperfish-Transaction-By: platypus
+Subject: Distributed CI
+X-Mailman-Version: 2.1.5
+Precedence: list
+List-Id: discussions about the ick CI system <>
+List-Unsubscribe: <>,
+ <>
+List-Archive: <>
+List-Post: <>
+List-Help: <>
+List-Subscribe: <>,
+ <>
+Content-Type: multipart/mixed; boundary="===============3970042335603488410=="
+Mime-version: 1.0
+Content-Type: multipart/signed; micalg="pgp-sha512";
+ protocol="application/pgp-signature"; boundary="=-/eOJnGcNVZ8bINwC8SEr"
+Content-Type: text/plain; charset="UTF-8"
+Content-Transfer-Encoding: quoted-printable
+We've had a short disucssion on IRC about maybe adding support to Gitano (a
+git server) and ick for ActivityPub instead of having explicit triggers
+configured in Gitano to trigger builds in ick. I thought I'd expand on that
+a little bit.
+The thing I'm grasping at is that currently, each git server instance needs
+to notify each CI instance separetely, creating a fairly tight coupling.
+Alternatively, each CI instance needs to poll each git server, which is
+unworkable at scale.
+So currently, if there are three users, one using, one using, and one using the Debian gitlab instance (salsa), and each user
+is developing their own software, then each user needs to configure their
+own git server to notify their own CI server. So far, so good.
+However, if each of the three also wants to build and deploy each other's
+software, so that if user A makes a change, it gets put through CI by A's,
+B', and C's CI, and then deployed to A's, B's, and C's production server,=
+and likewise for B's and C's software, then each of the three needs to add
+a trigger hook on each of th three git repositories. That's three
+repositories, three CI servers, and a total of nine trigger hooks.
+That's still manageable, but there are problems. Not all git servers allow
+random strangers to add trigger hooks on each repository. Also, three
+repositories and three CI servers is small potatoes. Imagine having fifty
+thousand repositories! Debian has about that many binary packages.
+Also imagine that those fifty thousand repositories are used by a million
+users. Not all of them by all users, but many repositories by each of the
+million. Having millions of hooks does not scale. Having that much polling
+also doesn't scale.
+So here's the solution I'm thinkin of: instead of having the git server
+notify each CI server, have the git server send a message to an ActivityPub
+server, and have each CI server listen on such messages on their own
+ActivityPub server. The AP servers federate (send messages to each other),
+so each git server and each CI server only needs to post to and listen on
+one AP server.
+With this design, many-to-lots communication becomes feasible.
+A makes a change, and pushes to their git server. The git server posts a
+message to its own AP server, saying "this branch on this repo on this git
+server has changed, new commit it CAFEBEEF." The AP server knows who's
+"following" A's repository, and so the message flows out to the AP server
+network to every AP server where a CI server is interested in that
+repository. Each of those CI servers can then trigger a build and deploy of
+A's software.
+I don't actually know much about ActivityPub yet. It's the protocol behind
+the Mastodon system (, and it works fine for a
+Twitter clone. I don't know yet if it would work for what I'm talking about
+above, but I think so.
+Of course, doing distributed CI at this scale might not be something that
+anyone actually cares about. We'll see. But even at a small scale, I'd like
+to break the necessity of the git server having to know about each CI
+server that is interested in each of its repositories.
+Also, this needs thinking for non-public repositories.
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: This is a digitally signed message part
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+ick-discuss mailing list
diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/tmp/.this-dir-not-empty/.empty/empty-file b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/tmp/.this-dir-not-empty/.empty/empty-file
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/Maildir/tmp/.this-dir-not-empty/.empty/empty-file
diff --git a/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml
new file mode 100644
index 0000000..783046f
--- /dev/null
+++ b/tickets/d3799e67b0cd45d29e6c2eef00ae7a3e/ticket.yaml
@@ -0,0 +1,6 @@
+- open
+- d3799e67b0cd45d29e6c2eef00ae7a3e
+- Distributed CI