From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: [OFFTOPIC] Semver (was: Emacs Versions: major, minor and ...?) Date: Wed, 30 Jun 2021 21:49:53 +0200 Message-ID: <87v95v5dzy.fsf@zoho.eu> References: <87sg147b7g.fsf@yandex.com> <87sg12ocse.fsf@cock.li> <87o8bp9e72.fsf@zoho.eu> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23183"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:XMnoQGyQELGF+mONwVPtuPPR8TA= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Jun 30 21:50:38 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lygEI-0005q6-PG for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 30 Jun 2021 21:50:38 +0200 Original-Received: from localhost ([::1]:53466 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lygEH-0003Pe-Hc for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 30 Jun 2021 15:50:37 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34100) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lygDn-0003PT-Aj for help-gnu-emacs@gnu.org; Wed, 30 Jun 2021 15:50:07 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:48828) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lygDl-0005ft-MI for help-gnu-emacs@gnu.org; Wed, 30 Jun 2021 15:50:07 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lygDi-0005Cb-Q6 for help-gnu-emacs@gnu.org; Wed, 30 Jun 2021 21:50:02 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:131357 Archived-At: Stefan Monnier via Users list for the GNU Emacs text editor wrote: > It's simple and clear: > > - "micro/patch" changes preserve both forward and > backward compatibility. > > - "minor" changes break forward compatible but not > backward compatibility. > > - "major" changes break both forward and > backward compatibility. OK, that's a good definition, backward compatibility I think one can understand just be thinking about it, if some version n + 1 is backward compatible then everything that worked for version n will also work for n + 1. And forward compatibility, that's the same thing, only instead of looking backwards, we look into the future, so for the forward compatible version n + 1 everything that works for that will also work for version n + 2 (if that's backward compatible, I suppose the assumption must be?). But what does that really mean? The second paragraph, I mean? And how do you know when that happens or doesn't happen? Backward compatibility, remove something that the old software relied upon, or change the interface somewhere, e.g. shuffle around the arguments of some function (yeah, one shouldn't do that) then the old stuff won't work, so it isn't backward compatible. But what do you do to preserve/break forward compatibility? -- underground experts united https://dataswamp.org/~incal