corgi-emacs / corgi

Unbundled Emacs configuration aimed at Clojure developers
180 stars 18 forks source link

Emacs version and compatibility #16

Closed theophilusx closed 2 years ago

theophilusx commented 2 years ago

Is there a position regarding supported Emacs versions for corgi? Emacs 28.1 has been released and is what I'm running. However, most distros will be shipping with Emacs 27.

Asking so that I know what versions of Emacs I should test with when I develop a fix, enhancement or extension.

plexus commented 2 years ago

My general philosophy with these things is: take the current stable version at the time of the first release, and from then on keep that as the minimum version we try to maintain compatibility with. We can bump that up later if there's a good reason for it, but generally we don't do that until at least a few versions have passed, i.e. when the version we started with can be considered "old".

The idea behind this is: we can assume that early adopters are fairly up-to-date, and people who aren't can just decide not to use the thing, but once people are using it they should be able to continue to do so, or be given plenty of time to upgrade. Don't break user's setup unless there's a very compelling reason.

That's the theory. Looking a the changelog I see mention of Emacs 26.3, so that's probably the oldest version I've tested with at the time of the 1.0 release. That said I mainly run from master so it's entirely possible things broke since then. Since it seems Emacs 27 is still very widely used I'd say it's probably the minimum we should be targeting at the moment.

theophilusx commented 2 years ago

Agree with the philosophy and think Emacs 27 is a good base version. I suspect in the main, it will still be compatible with Emacs 26 as I don't think there is much here which depends on features added in 27+ (with exception of corgi-stateline). Given the aim to keep it fairly simple and avoiding options and leaving as much as possible to the user's personal preferences/choices, it should be possible to keep the core fairly version agnostic. I'm running Emacs 28.1, but I also have a couple of VMs I use for testing some other projects I work on and they are still running Emacs 27, so I can do some basic smoke tests from time to time to verify Emacs 27 works fine.

BTW thanks for the tip in the manual regarding use of chemacs2. A very useful package. I can now easily switch between my old spacemacs, my own 'from scratch' config, corgi and my hacked/extended version of corgi which I call husky (my dog is a Siberian Husky). Works great.