[Ietf-and-github] FYI: W3C and GitHub tooling

Mark Nottingham <mnot@mnot.net> Tue, 17 September 2019 08:53 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: ietf-and-github@ietfa.amsl.com
Delivered-To: ietf-and-github@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3286712022A for <ietf-and-github@ietfa.amsl.com>; Tue, 17 Sep 2019 01:53:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=TA9/NvSl; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=APo7a2JG
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QFvKiqSLTO6w for <ietf-and-github@ietfa.amsl.com>; Tue, 17 Sep 2019 01:53:37 -0700 (PDT)
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EA40312080D for <ietf-and-github@ietf.org>; Tue, 17 Sep 2019 01:53:36 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 317BC21C24 for <ietf-and-github@ietf.org>; Tue, 17 Sep 2019 04:53:35 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Tue, 17 Sep 2019 04:53:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=from :content-type:mime-version:subject:message-id:date:to; s=fm3; bh=2ao/SZCG2HvMiXt24MswlRQXp/vi1GSGdEooCEXDUf0=; b=TA9/NvSlBlK/ hpH/daAlbmdU2FPrsRTvZtxRAmAJfMx2NMiYrltaEyPbCikn+n+G0v2wk/OgRr5L jwUKiRAFphguliAD9Sb9dxIU4Khcor8msqU2vl8rsYWyupqtvP0/rR+y958k0nww NFM9q7tftbjN8VKjycS1W1foOOp9py/djhi/0ZbZbt/glPA96/+n3m4TIRxLyrL/ DFcapow0yBBTJjMuHtO1GOEo9nZVZw9YklGt/uvxy2G7QyrrkT6TD0FU81mpkOL4 YhcKcUuOwgUTNz5lI3mSy0wIPCOanlA4L/CxWWwY7iE6hCXm8isQWzMW7RkjCMmV D8NpOk1Fng==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=2ao/SZCG2HvMiXt24MswlRQXp/vi1 GSGdEooCEXDUf0=; b=APo7a2JG7qm8QaLn9PphysOufBWaaA9R2sCIWzaDqjnjT rpNx2M0664Nq+u7m64BJtjfqH4a3jTh5dGa8pZbFnfCqltXMiNM1IIh6DbkdxxZo a41JjrlXzyl25oqSJbnVv9Af9DXq7UdUFd3RhDuT7wH8jb/2SPgmKhKqhr6rT5UQ xQFdHfrXJnLVR+SJMde2EPnL52Mf7NP5VRmLMT+LlV0pApU33VUtZiRIS7ab/fWL 9izIJzZF9gJ9XAZNAevTm8X1a0giFsv9Ej1cTKQE+t+kLrowMr7yJASyETo98bES iqAqMw/DnmMDoT8W5IN/PKCh4dTxjnTHunyr5xNxw==
X-ME-Sender: <xms:DZ-AXWXVNqR_DZMjOpXeu9oQbsu_p8pEQSyc_wNsgymqGhQqF6wYKQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrudehgddtkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecuogfuuhhsphgvtghtffhomhgrihhnucdlgeelmdenuc fjughrpefhtggguffkfffvofesrgdtmherhhdtvdenucfhrhhomhepofgrrhhkucfpohht thhinhhghhgrmhcuoehmnhhothesmhhnohhtrdhnvghtqeenucffohhmrghinhepfiefrd horhhgpdhgihhthhhusgdrihhopdhgihhthhhusgdrtghomhdpmhhnohhtrdhnvghtnecu kfhppedvtddvrddujeekrdduuddurddvudeinecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmnhhothesmhhnohhtrdhnvghtnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:DZ-AXdCnxkdvXiCVSUmzLtsrbFqMrUauapnqh8o1ClYhWvdnCJrlVw> <xmx:DZ-AXR7ShHApbsxnjEOBxGux5Sv7pJ_6sDYV8ZaG9xe1TD7Yn3BUEQ> <xmx:DZ-AXU2M7HGdnp5AGMZ7TdSjTfWBIPhvwNPq0D9FrDi5s2ZBuIkt8Q> <xmx:Dp-AXRvVKm7UrUxuSE6EJeyHLjOPhkYu7QaHBHlDyY_uMrghKPWf8A>
Received: from [10.1.150.88] (unknown [202.178.111.216]) by mail.messagingengine.com (Postfix) with ESMTPA id 62A6480068 for <ietf-and-github@ietf.org>; Tue, 17 Sep 2019 04:53:25 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: multipart/alternative; boundary="Apple-Mail=_8E389EBB-AEB1-4423-BE30-C09CF11668A3"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Message-Id: <5EAD54C8-CBCB-4E26-BA0E-366BED04D65F@mnot.net>
Date: Tue, 17 Sep 2019 17:51:46 +0900
To: ietf-and-github@ietf.org
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf-and-github/2ql9c0-qOQND5VT04JQ52FZ0SZI>
Subject: [Ietf-and-github] FYI: W3C and GitHub tooling
X-BeenThere: ietf-and-github@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussion of using GitHub in IETF activities, particularly for Working Groups" <ietf-and-github.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf-and-github>, <mailto:ietf-and-github-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf-and-github/>
List-Post: <mailto:ietf-and-github@ietf.org>
List-Help: <mailto:ietf-and-github-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf-and-github>, <mailto:ietf-and-github-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Sep 2019 08:53:44 -0000

I spent some time at W3C TPAC (their yearly plenary event) talking to folks about the tooling that they use on GitHub, to see if there was anything we could leverage (ideas or code), or even collaborate on (everything referenced is Open Source, and they're very amenable to collaboration where it makes sense). This is a bit of a brain dump, but there's lots of interesting potential here, I think; I'll explore what we might do in a followup.

At a high level, their philosophy is that data should be public wherever feasible, and maintained as close as possible to its source. Since they use GitHub for all of their work, that means keeping state in checked-in files wherever possible.

For example, they have a `w3c.json` file that WGs are required to check into their repos; see documentation at:
  https://w3c.github.io/w3c.json.html

This, in turn, is used by several of their tools to track and manage their process. The validate-repos tool:
  https://github.com/w3c/validate-repos
spiders their repos regularly to extract metadata and assure that they are conforming to best practices; see report at:
  https://w3c.github.io/validate-repos/report.html

They also have a repository manager:
   https://github.com/w3c/ash-nazg/
... that helps them create and interact with repos:
  https://labs.w3.org/repo-manager/repos

For example, it validates that a contributor has signed the IPR policy for the appropriate WG, as seen in the 'checks' for this PR:
  https://github.com/w3c/webvtt/pull/470

See attached screenshot for a creation view.

They also have a beta of an exploration API up:
  https://github.com/w3c/gargantua
For example:
  https://www.w3.org/PM/Groups/browse.html?gid=107714
Note that this is pulling all of the data (some of it aggregated into static files) and presenting it in the client; there's no back-end database, per se, for much of it.	

Where there is a backend db, there are also APIs, documented at:
  https://api.w3.org/doc
And
  https://github.com/w3c/w3c-api

They manage spec transitions (roughly, the IESG discussion/approval process) using a dedicated Github repo:
  https://github.com/w3c/transitions
... (see the issues list), and are talking about developing some GitHub-centric tooling to improve that.

Some groups also manage their review process (roughly analogous to our directorates) using tools built on top of GitHub; e.g.,
  http://w3c.github.io/i18n-activity/reviews/
  http://w3c.github.io/i18n-activity/projects/

Repos are spidered for lots of document checks, e.g., for reference quality and statistics:
  https://github.com/tidoust/reffy-service

Repos can also trigger e-mails for notifications of things like document state transitions:
  https://github.com/plehegar/transition-notifier

For more general info, see:
   https://w3c.github.io
... and their labs page:
  https://www.w3.org/2015/labs/

I asked how concerned they were about taking such a dependency upon GitHub; I'd characterise their position as accepting that risk (re-tooling on something like GitLab would incur a significant delay) in return for the capabilities, reach, scalability and reliability they get from GitHub. They do take backups, etc. I didn't ask about whether they're looking at GitHub Actions, but that seems like an interesting area to explore.

Cheers,



--
Mark Nottingham   https://www.mnot.net/