Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id F0958431FBC for ; Sun, 2 Dec 2012 16:59:03 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.7 X-Spam-Level: X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id irq0lpjO9sZX for ; Sun, 2 Dec 2012 16:59:03 -0800 (PST) Received: from dmz-mailsec-scanner-1.mit.edu (DMZ-MAILSEC-SCANNER-1.MIT.EDU [18.9.25.12]) by olra.theworths.org (Postfix) with ESMTP id 71EB1429E2E for ; Sun, 2 Dec 2012 16:58:59 -0800 (PST) X-AuditID: 1209190c-b7f886d000000936-48-50bbf9527ced Received: from mailhub-auth-4.mit.edu ( [18.7.62.39]) by dmz-mailsec-scanner-1.mit.edu (Symantec Messaging Gateway) with SMTP id 0F.45.02358.259FBB05; Sun, 2 Dec 2012 19:58:58 -0500 (EST) Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by mailhub-auth-4.mit.edu (8.13.8/8.9.2) with ESMTP id qB30wvcX018780 for ; Sun, 2 Dec 2012 19:58:58 -0500 Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91]) (authenticated bits=0) (User authenticated as amdragon@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id qB30wtvE011024 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Sun, 2 Dec 2012 19:58:57 -0500 (EST) Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.80) (envelope-from ) id 1TfKN5-0006SF-ED for notmuch@notmuchmail.org; Sun, 02 Dec 2012 19:58:55 -0500 From: Austin Clements To: notmuch@notmuchmail.org Subject: [PATCH 00/10] CLI output versioning In-Reply-To: <1354416002-3557-1-git-send-email-amdragon@mit.edu> References: <1354416002-3557-1-git-send-email-amdragon@mit.edu> User-Agent: Notmuch/0.14+100~gcb9b0b0 (http://notmuchmail.org) Emacs/23.4.1 (i486-pc-linux-gnu) Date: Sun, 02 Dec 2012 19:58:55 -0500 Message-ID: <87pq2sx86o.fsf@awakening.csail.mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKIsWRmVeSWpSXmKPExsUixG6nrhv0c3eAQfMROYvrN2cyOzB6PFt1 izmAMYrLJiU1J7MstUjfLoEro6V9N1vBd86KZWu+sjYwTuPoYuTkkBAwkTjcMo8RwhaTuHBv PVsXIxeHkMA+Roll95YzQThnGSWa+x+zQjjvmCRuX+qAyhxilFh7aBoTSD+bgIbEtv3LwWaJ CEhL7Lw7mxXEFhbQkTj+7h/QXA4OTgEHiRXdPCBhIQF7if+/r4GFRQXiJS4vVQAJswioSsxt OcoCEuYFum7jd0OQMK+AoMTJmU9YQGxmAS2JG/9eMk1gFJiFJDULSWoBI9MqRtmU3Crd3MTM nOLUZN3i5MS8vNQiXUO93MwSvdSU0k2MoNDjlOTZwfjmoNIhRgEORiUe3gdfdgcIsSaWFVfm HmKU5GBSEuVt/wYU4kvKT6nMSCzOiC8qzUktBnqbg1lJhHdxBVCONyWxsiq1KB8mJc3BoiTO eznlpr+QQHpiSWp2ampBahFMVoaDQ0mCt/gHUKNgUWp6akVaZk4JQpqJgxNkOA/Q8FiQGt7i gsTc4sx0iPwpRkUpcd5ZIAkBkERGaR5cLyw1vGIUB3pFmJcHpIoHmFbgul8BDWYCGvxCCGxw SSJCSqqBMTRP6sO3J21vkz/mG65Zv8Bz8rmpvtnJ759GfC2P7TF+unuy5yluuy0yunPP3Uo5 tjNn8U/e6ZOUvWfd7J/1+Ca/kN217eudjt9UO7nbje9L9/8lsnd3FloJ/NzutUNng8i8wPBd 3nyaL0Ptc/SfeX2b9mbRj4or7R37Fy1YHbM0Lf+ri7zvWS4lluKMREMt5qLiRACmvkQ/6AIA AA== X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2012 00:59:04 -0000 (Sorry; I forgot to include a cover letter.) This series is intended to help with our long-standing output format versioning issue. While the JSON format is amenable to extension, there's still a high barrier to extensions because of the need to support them going forward, and an even higher barrier to modifications that break backwards compatibility. Versioning will make the format more dynamic, enabling us to easily improve and iterate on it. It will also address the slew of confusing bugs that people encounter when they use a mismatched CLI and front-end. On IRC we've talking about adding version information to the output format itself. This series takes a different and, I think, better approach: callers request a specific output format version on the command line. This allows notmuch to remain backwards compatible with older format versions when it's easy or necessary. This also doesn't require shoehorning a version number into the output, which would be awkward for both the CLI and the consumer. I called the argument --use-schema, but I'm open to other suggestions. --use-schema is technically accurate, but perhaps not as self-describing as something like --schema-version or --format-version (to parallel --format).