From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id +ONmF4F9dWM15QAAbAwnHQ (envelope-from ) for ; Thu, 17 Nov 2022 01:17:05 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id UKI3F4F9dWM3GQAAauVa8A (envelope-from ) for ; Thu, 17 Nov 2022 01:17:05 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 1138A175EA for ; Thu, 17 Nov 2022 01:17:05 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ovSZb-00053x-EY; Wed, 16 Nov 2022 19:16:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ovSZZ-00053V-GT for emacs-orgmode@gnu.org; Wed, 16 Nov 2022 19:16:05 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ovSZX-0003rR-KS; Wed, 16 Nov 2022 19:16:05 -0500 Received: by mail-pl1-x630.google.com with SMTP id p21so72463plr.7; Wed, 16 Nov 2022 16:16:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:message-id:in-reply-to:date:subject:cc:to:from :user-agent:references:from:to:cc:subject:date:message-id:reply-to; bh=+HPLPe9vITdFwcQXUqLsm+K2DBHSy+MNHx7AJ4AykFE=; b=AujAC1Y8nE1gY6DySIbZfr243b/GI8aZ/TrOeC5iYIg69VNiKemUBL1WBs7cza4/WM xh8QnXCc6QBgTjzQ0oybE0uDwWhtwk8Ay2NE31f54qqTY95FYOoOVhpTmkdHz7JjhTPT Lr9VE8dIpeHKOTzJBuMf+KTmCixpGJjyWqT5KC4c3qz1OFw/XjieApnN0+X6VAk0bBfo lEYwCaKpBEVASgdHIGmQkkSmrPF0dm/6/zdtuD7uMkFbRUU6u6DwR4wj8a5I+vlYMdF/ 2vVMu8Fus+f7cG3KG/CUdCXu4S0j158cUgLtHFyGaHa2rly5o/LbTSW0lkMCpb3cu5iT n6sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:in-reply-to:date:subject:cc:to:from :user-agent:references:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+HPLPe9vITdFwcQXUqLsm+K2DBHSy+MNHx7AJ4AykFE=; b=cB4gi42Aqgt/p7QBgUUIHk5LUWhcM2vv+0TCclqD2KkruHxfFZaZW+kxMZ7UVhIEmB pa6E1x/IxSNSN0g/M78LZ/bmMfMg1LxI0tMhGzny5rNCFQPR3LvKQ01tVnVbDNwDO9yb uQlYY40RRt3JRzlflwWqYiUAUIc+2vRiCCRKPCzwlJabjPPTsTjvPpu5ne8DhNscC1Uv DBR4y+WL2P8+8mfoXYeIpqxhBeb2ppfD+uxWZT3FcwgY4iIHXvu/C9ukqyhnJhFxhTcv 0mA7AY7KfLNIEi9D/YVjeLCJMNCnApFBTZ1k5Y8omcWkjpHu7VoyBITNmLUJJ5yRrP3z DlnA== X-Gm-Message-State: ANoB5pmM2fKsLIwZMrVgaJq+6nDIU3DDktw/tfbIk7i+JDv0jAR5uUjd yIy1g0PSX+gcEN+rbLSC0S5wrByTtYc= X-Google-Smtp-Source: AA0mqf4NwB0XdIPEd4rdQCWR2CWco9iavB1dfvo0BB8rz2PYTWRN8vMVURdX7XM7Oy54DBl5rUrm/Q== X-Received: by 2002:a17:90b:4fcc:b0:213:2913:3870 with SMTP id qa12-20020a17090b4fcc00b0021329133870mr6255799pjb.119.1668644160779; Wed, 16 Nov 2022 16:16:00 -0800 (PST) Received: from dingbat (220-235-181-183.dyn.iinet.net.au. [220.235.181.183]) by smtp.gmail.com with ESMTPSA id e89-20020a17090a6fe200b002137d3da760sm2201269pjk.39.2022.11.16.16.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 16:16:00 -0800 (PST) References: <87h6z69myp.fsf@localhost> User-agent: mu4e 1.9.2; emacs 29.0.50 From: Tim Cross To: Ihor Radchenko Cc: Bastien , emacs-orgmode@gnu.org Subject: Re: [MAINTENANCE] Do we have any backwards-compatibility policy for third-party packages? Date: Thu, 17 Nov 2022 09:33:10 +1100 In-reply-to: <87h6z69myp.fsf@localhost> Message-ID: <86wn7ubflw.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=theophilusx@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1668644225; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=+HPLPe9vITdFwcQXUqLsm+K2DBHSy+MNHx7AJ4AykFE=; b=H1tbGQF6gj5swrXstZz9Ekkg077z9bsWpQq9/efEWKh7sptnIQlA25tcbozS9sbK8VqS+b Nx0VJpdIiEiNUjJVR6cZh2tE3yxMvlFE3840DzL1JAo7E2aSFUuEprjuk7ImEg2GQkSY3e tzBjiARew+lSfg0i5hupglCDNNEEKOzSysQSIhjm1oDTQUHu2mPTLDQ0bRdiZf2+NKlpP/ 46YgKkkXe4A74PYIfzxlmkvhnxqKlsw3iwdI47cWeMlZrl7HgAQnWmVU8L8w4ptWc01NJj PSE1pP70bHX35aJNbhFmfvIAnJmogU8Ht8BfhK34phrwdrQAzFW9DRRox9UZYg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1668644225; a=rsa-sha256; cv=none; b=U8Jf8VJrNgHIG+EiJlEZHvB6W3KU9DTMQa0ksspu1RDJgIlAr0aY6fS6XYABkbh2Md+dJ2 C2/I0NhD1Kbp5BmZshX692lNOccX4Kl7OGThZ3y7hy6mcIF+E+kwdqMERvZ+MJ2ABCzWqQ QSPUwYNRS2C1Ls6xvZ/gEFDAmLCKxlQfnQqk8Ebh7TkfJwMGyWO4VRlZcT7G609Z3iNU7G 4y6yleD4GNFFXY9Pa/NvvgW5id4AMJe074wmupxPgrv5YsLHNCU7016GUQ0Qcim15hvIYf loOeU7m7zz8+4LpJYqm4ldAP0mYF5QsQm7jWjKLNPK9Kbvmbas8raSux+kQxWQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=AujAC1Y8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -3.04 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=AujAC1Y8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 1138A175EA X-Spam-Score: -3.04 X-Migadu-Scanner: scn0.migadu.com X-TUID: duo/JbmHBrSj Ihor Radchenko writes: > Hi, > > Org promises to support the last three Emacs releases. > However, it is less clear what is our policy wrt third-party packages. > > We do need third-party packages, for example, in babel backends. > Sometimes, we have to make changes to the ob-*.el files in order to > accommodate changes in the required third-party packages. Like in recent > changes to ob-scheme where `run-geiser' function is now obsolete > upstream. > > Should we try to support obsolete functions/variables in third-party > packages? Should we try to work around breaking changes and support both > before/after package versions? > > The answer is not obvious as older Emacs versions might not be supported > by some third-party packages. Then, logically, we have to support older > package versions compatible with the oldest Emacs version we support. > But it might be hard to keep track of such scenarios. > It might be worthwhile defining what is meant by 3rd party packages. For example, ob-scheme relying on geiser as a 3rd party package is one thing. Org roam is another type of 3rd party package. I think they need different approaches. The first is about our (org) interface to them and the latter is about their (org roam) interface with org. For the former (e.g. geiser type), I don't think backwards compatibility is as important. Thanks to package.el and GNU ELPA/NONGNU ELPA, it is fairly trivial to update to the current version. We just need to support the current version. For the latter (e.g. org-roam), backwards compatibility is much more important. Org needs to provide as stable a public API for such packages as possible. It may even be worthwhile separating the API into a public/external API and an internal/private API. The former would be as stable as possible and when changes are made, all efforts to provide backwards compatibility are made. The latter is also stable, but more subject to change. It is the API intended for internal org use. If external packages use it, it is at their own risk. We would still try to keep it stable, but with less of a guarantee and we may not provide backwards compatibility if doing so was going to cause too much complexity or maintenance burden etc. The big thing here is IMO avoiding surprise. We probably should add a section to the 'Hacking' section of the manual which outlines our position wrt backwards compatibility and API (public/private) and change etc. I think most people expect change (even if they might not like it). What they don't like is unexpected change. As long as we are conservative and communicate change when necessary, we will likely be OK.