Re: [Tools-arch] Recommendation 10: One-stop shop tool

Jay Daley <jay@ietf.org> Fri, 09 April 2021 06:50 UTC

Return-Path: <jay@ietf.org>
X-Original-To: tools-arch@ietfa.amsl.com
Delivered-To: tools-arch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 743983A11CA for <tools-arch@ietfa.amsl.com>; Thu, 8 Apr 2021 23:50:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 703N6aXq0-61; Thu, 8 Apr 2021 23:50:31 -0700 (PDT)
Received: from [192.168.1.101] (unknown [158.140.230.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPSA id 5869D3A11C4; Thu, 8 Apr 2021 23:50:31 -0700 (PDT)
Content-Type: multipart/alternative; boundary="Apple-Mail-6BA86128-849F-4D1F-9EEE-FAD80660109B"
Content-Transfer-Encoding: 7bit
From: Jay Daley <jay@ietf.org>
Mime-Version: 1.0 (1.0)
Date: Fri, 09 Apr 2021 18:50:28 +1200
Message-Id: <19445DF8-707C-4A27-81FC-8672EA8BBE90@ietf.org>
References: <99513940-7253-49B3-B06D-8B53E127ABF1@mnot.net>
Cc: tools-arch@ietf.org
In-Reply-To: <99513940-7253-49B3-B06D-8B53E127ABF1@mnot.net>
To: Mark Nottingham <mnot@mnot.net>
X-Mailer: iPad Mail (18D70)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tools-arch/KjeLSTjHtGs1-ZzR8GDGE_ykuj8>
Subject: Re: [Tools-arch] Recommendation 10: One-stop shop tool
X-BeenThere: tools-arch@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Tools Architecture and Strategy Team <tools-arch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tools-arch>, <mailto:tools-arch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tools-arch/>
List-Post: <mailto:tools-arch@ietf.org>
List-Help: <mailto:tools-arch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tools-arch>, <mailto:tools-arch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Apr 2021 06:50:36 -0000



> On 9/04/2021, at 5:58 PM, Mark Nottingham <mnot@mnot.net> wrote:
> 
> I think my concern here is that the way this is phrased (e.g., with 'plugins'), it appears that we're going to 'pick a winner' -- always a bad idea when it comes to editors and developers! -- and centre the work around that.
> 
> I'd like to see the emphasis on providing discrete, atomic functions in the most generic way possible, which can then accommodate adaptation to different ecosystems (e.g., various editors, web UIs, CLI, etc.). The Tools team might even provide some of those adaptations, and might package it up in a way that's easy for newcomers to consume, and might even promote that packaging so that they can find it more easily. But it should also be possible for others to provide different adaptations, and we should facilitate that (e.g., by helping them promote them to the community).
> 
> Does that make sense?

Yes and I think we want the same goals but I don’t think we’re talking about mutually exclusive solutions. 

Imagine we were to give people everything they wanted:
- ability to use XML or Markdown or ?? end to end
- a single one-stop-shop tool and all the tools as separate command line tools, as separate web interfaces, as separate plugins to their favourite editor, as separate automatable services 
- ability to integrate with GitHub, GitLab, Bitbucket, etc

Then could we do it and how could we do it?  I think this is exactly the problem that APIs solve - we build and maintain a central set of functionality that is exposed by API, we build plugins to a chosen tool to give the one-stop-shop, we build separate web interfaces on top of those same APIs and we build separate CLI tools that call those APIs. If others want to build a plug-in for their favourite editor then all they need do is build calls to the API, nothing more. 

Jay

-- 
Jay Daley
IETF Executive Director
> 
> 
> 
>> On 9 Apr 2021, at 3:25 pm, Jay Daley <jay@ietf.org> wrote:
>> 
>> I understand the concerns but this came through from multiple respondents who consider our DIY, multi-tool approach to be a big barrier to participation so I would really like us to think through the details before coming to a view. 
>> 
>> For example, I can see how we might achieve this using Atom as a base editor as that has XML, XSLT, schema validation and version control already handled by existing plugins and us writing new plugins for 
>> - data tracker submission/retrieval
>> - YANG validators
>> - conversion to TXT, PDF etc
>> - boilerplate insertion/update
>> - and so on
>> 
>> If those plugins are actually just lightweight clients of central APIs that deliver the heavy lifting then it becomes even easier. 
>> 
>> Jay
>> 
>> -- 
>> Jay Daley
>> IETF Executive Director
>> 
>> 
>>>> On 9/04/2021, at 4:40 PM, Mark Nottingham <mnot@mnot.net> wrote:
>>> 
>>> This seems to go against the 'small pieces loosely joined' philosophy of tool-making seen in our community (and broader technical communities, such as Unix).
>>> 
>>> It also seems to reinforce the centrality of the tools team -- i.e., if I want to get any leverage in the ecosystem (e.g., with a format validator), I have to write a plugin for the tools team, rather than writing something that merely operates on a format (see eg <https://github.com/mnot/rfc-http-validate>). I don't think that's something we should be doing.
>>> 
>>> Finally, writing a multi-OS GUI tool to 'do everything' is NOT a small undertaking. I'd like to see a trend towards smaller, more controlled tools, not bigger ones.
>>> 
>>> Cheers,
>>> 
>>> 
>>>> On 9 Apr 2021, at 11:13 am, Jay Daley <jay@ietf.org> wrote:
>>>> 
>>>> =  Recommendation
>>>> 
>>>> Recommendation 10:  A ‘one-stop shop’ tool should be investigated. 
>>>> 
>>>> =  Commentary
>>>> 
>>>> By a ‘one-stop shop’ tool we meant a tool with the following characteristics:
>>>> 
>>>>   • GUI based, single tool that works on most OSs and allows an author to do everything they need on I-D drafting/processing in that one place. 
>>>> 
>>>>   • WYSIWYG interface that hides the complexity of the underlying XML, in much the same way that any modern word processor does.  (This does not have to be the only interface as some may want to work on the underlying XML).
>>>> 
>>>>   • Has a plugin mechanism so that any I-D processing tools can be added in for direct invocation.
>>>> 
>>>>   • Interacts with the Datatracker for submission and retrieval of I-Ds and associated metadata.
>>>> 
>>>>   • Interacts with ‘official’ IETF GitHub repositories, including for the processing of issues, pull requests and other collaboration features. (Also see recommendation 13 below)
>>>> 
>>>>   • Directly supports the AUTH48 process.
>>>> 
>>>> In order to produce such a tool, the various I-D processing tools would need to be refactored to work as plugins, going back to the concept under recommendation 6 with them all implemented as APIs, supporting any variety of client.
>>>> 
>>>> Is this something the TAS Team would like to start the ball rolling on recognising that there would be lots of community discussion required?
>>>> 
>>>> 
>>>> 
>>>> -- 
>>>> Jay Daley
>>>> IETF Executive Director
>>>> jay@ietf.org
>>>> 
>>>> -- 
>>>> Tools-arch mailing list
>>>> Tools-arch@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/tools-arch
>>> 
>>> --
>>> Mark Nottingham   https://www.mnot.net/
>>> 
>>> -- 
>>> Tools-arch mailing list
>>> Tools-arch@ietf.org
>>> https://www.ietf.org/mailman/listinfo/tools-arch
> 
> --
> Mark Nottingham   https://www.mnot.net/
>