From 48f8ebf65dc18f3a9a720bfa35955cc0a9111f84 Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Mon, 28 Jan 2019 21:08:52 +0000 Subject: [PATCH 1/2] Bug 1520579 - RFC for identifier length --- rfcs/0139-longer-identifiers.md | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 rfcs/0139-longer-identifiers.md diff --git a/rfcs/0139-longer-identifiers.md b/rfcs/0139-longer-identifiers.md new file mode 100644 index 0000000..dcb51bc --- /dev/null +++ b/rfcs/0139-longer-identifiers.md @@ -0,0 +1,43 @@ +# RFC 139 - Increase identifier length from 20 to 44 +* Comments: [#139](https://api.github.com/repos/taskcluster/taskcluster-rfcs/pull/139), [Bug 1520579](https://bugzilla.mozilla.org/show_bug.cgi?id=1520579) +* Proposed by: @djmitche / @mitchhentges + +# Summary + +For identifiers that typically contain structure (vs. those containing only +slugid's), increase the maximum length from 22 to 40 characters, while ensuring +that we do not overflow AMQP routing key lengths. + +## Motivation + +We have an established pattern of encoding meaning into some identifiers, such as workerTypes (e.g., `aws-provisioner-v1/gecko-1-b-*`), but these are limited to 22 characters. +That is too short to encode much meaning. +We cannot allow arbitrary lengths, as these identifiers are included in AMQP routes which have a hard limit of 255 characters. +We can, however, allow more than 22 characters. + +# Details + +We will define two types of identifiers: + +* "identifiers" -- up to 40 characters, generally containing human-readable identifiers + * `provisionerId`, `workerType`, `workerGroup`, `workerId` + * `schedulerId` + * `organization`, `repository` (in tc-github) + +* "slugids" -- up to 22 characters, always a slugid + * `taskGroupId` + * `taskId` + +This change requires changes to schemas and API declarations in services in the monorepo, as well as to `aws-provisioner` and possibly `ec2-manager`, workers, and client libraries. +Much of this work has [already been done](https://github.com/taskcluster/taskcluster/pull/110) by @OjaswinM. + +We already have checks on AMQP routing key lengths, and the increased length does not cause any failures in that code. + +# Open Questions + +TBD + +# Implementation + +* https://github.com/taskcluster/taskcluster/pull/110 +* TBD From 60397a6a5a5652541a410723b641fecf032dbc5c Mon Sep 17 00:00:00 2001 From: "Dustin J. Mitchell" Date: Tue, 29 Jan 2019 13:45:41 +0000 Subject: [PATCH 2/2] slugids are always exactly 22 characters --- rfcs/0139-longer-identifiers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/0139-longer-identifiers.md b/rfcs/0139-longer-identifiers.md index dcb51bc..16b9213 100644 --- a/rfcs/0139-longer-identifiers.md +++ b/rfcs/0139-longer-identifiers.md @@ -24,7 +24,7 @@ We will define two types of identifiers: * `schedulerId` * `organization`, `repository` (in tc-github) -* "slugids" -- up to 22 characters, always a slugid +* "slugids" -- exactly 22 characters, always a slugid * `taskGroupId` * `taskId`