| Age | Commit message (Collapse) | Author |
|
This is just a proof-of-concept. Until that changes its dead weight
that should not be packaged. Removing it from version control is the
only way to prevent it from getting packaged anyway.
|
|
Or one typo, which ended up being copy-pasted.
|
|
We are not doing that currently and haven't been for a while.
Should we ever start doing it again, we can just revert this;
no need to keep it around while we don't.
|
|
|
|
|
|
|
|
For older Emacs releases we depend on an updated `seq' release from
GNU ELPA, for `seq-keep'. Unfortunately something else may already
have required `seq', before `package' had a chance to put the more
recent version earlier on the `load-path', and thus the outdated
built-in version might be loaded. If that is the case, unload it
and require `seq' again, to load the new version.
If you are wondering whether it is worth the trouble, keep in mind
that going forward we might want to use other additions in the future.
Also I really want to use this function. I was the one who suggested
its addition because it was one of the few significant gaps in `seq'
and `cl-lib' in comparison to `dash'.
Closes #5011.
|
|
In [1: 84eaa203f3] we only did this for `magit' itself.
1: 2023-09-21 84eaa203f3c70d55f29fbe6a8d6d9d5334cb6818
Use seq-keep instead of delq and mapcar
This is not strictly necessary for `git-commit' because there we don't
*currently* use `seq-keep', but in the future we might very well start
using it there as well, without remembering that a dependency has to
be added. So let's just do it now.
|
|
It is not autoloaded. Re #5011.
|
|
|
|
|
|
|
|
|
|
|
|
"N-git" < "N"; but "N.50-git" > "N".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Use the following groups:
1. Require essential core libraries (such as `cl-lib').
2. Require `magit-*' libraries, and `git-commit' and `git-rebase'.
3. Require other non-magit libraries, including `with-editor' and
`transient'.
4. Declare variables and functions, and such.
Separate groups with an empty line even if each group consists of
just a single `require' form. The 2nd section is sorted logically
(more or less), all other sections alphabetically.
|
|
Load all essential core libraries upfront in Magit's root libraries.
* Essential core libraries are libraries that provide functionality
that I consider essential (more or less "part of the language")
but that are not loaded by default because the Emacs maintainers
disagree.
I want to be able to use such functionality without having to
scroll to the top to see whether it happens to be already be
required or not in the file that I am currently editing.
In the context of Magit, this currently includes the built-in
libraries `cl-lib', `eieio', `seq' and `subr-x', as well as the
third-party `dash'.
* Magit root libraries are libraries that do not require any other
Magit libraries. As a consequence they cannot rely on some
other library already having taken care of loading the essential
libraries.
Strictly speaking not only `magit-utils', `magit-section' and
`magit-libgit' are root libraries, but also `git-commit'. However
because it is distributed separately we don't quite treat the same.
We now require *all* essential core libraries in all `magit-*' root
libraries regardless of whether those libraries actually use all
those core libraries.
As a consequence non-root libraries *can* rely on all core libraries
always being available without an explicit require. We take advantage
of that by not requiring the core libraries in any non-root libraries,
because that avoids adding five lines of noise to every library.
We explicitly require `subr-x' at run-time even though its library
commentary advises against that. Some libraries that are loaded
whenever Magit is loaded really do need `subr-x' at run-time, so
trying to avoid "needlessly" loading it has been futile.
|
|
|
|
|
|
|
|
|