Open doolio opened 1 year ago
`(scratch :type git :host github :repo "cbbrowne/scratch-el" :pre-build ,(cl-letf (((symbol-function #'el-get-package-directory) (lambda (package) (straight--repos-dir (format "%S" package)))) (el-get-install-info (straight--el-get-install-info)) (el-get-emacs (straight--emacs-path)) (el-get-dir (straight--repos-dir))) (pcase system-type (_ `(("make"))))) :files (:defaults))
That recipe is from the el-get recipe repository, not MELPA. It looks like the el-get recipe hasn't been updated, either:
https://github.com/dimitri/el-get/blob/84dd1837f9ac80a329ab0c2de6859777f445f8ff/recipes/scratch.rcp
Firstly, thank you for the quick response. That explains one thing. The default value of straight-recipe-repositories
is:
(org-elpa melpa gnu-elpa-mirror nongnu-elpa el-get emacsmirror-mirror)
So doesn't the melpa
recipe have precedence and so should be used first?
(FYI, the README here is out of date.)
So doesn't the melpa recipe have precedence and so should be used first?
If that value of straight-recipe-repositories
was used when initially cloning the repository, yes.
That's also confirmed by running the following test case (which unfortunately does not finish at the moment because codeberg.org is down at the moment, but uses the MELPA recipe):
2022-10-18 13:40:13
gnu/linux
prerelease (HEAD -> develop, origin/develop) ad1c198 2022-09-22
GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.34, cairo version 1.17.6) of 2022-10-06
What may have happened is the el-get recipe was used when you initially installed the package.
That recipe was then cached (see straight--recipe-cache
, straight--repo-cache
, etc) and is being used despite the current value of straight-recipe-repositories
.
Have you tried deleting the repository from $REPOS/scratch and $BUILD/scratch and re-installing?
What may have happened is the el-get recipe was used when you initially installed the package. That recipe was then cached (see straight--recipe-cache, straight--repo-cache, etc) and is being used despite the current value of straight-recipe-repositories.
I see. That would make sense. I do recall some time in the long past straight
informing me that the URL in the recipe had changed from the original author to the fork but I did find today a commit (linked in my original post) of a melpa
commit which would explain that. Perhaps, I gave bad instructions to straight
at the time and the recipe cache got corrupted somehow.
Have you tried deleting the repository from $REPOS/scratch and $BUILD/scratch and re-installing?
Yes, several times before opening this issue but to no avail. Any other way to flush the recipe cache?
2022-10-24 17:29:46
gnu/linux
prerelease (HEAD -> master, origin/master) f21103d 2022-08-19
GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0) of 2021-03-28, modified by Debian
So your test case does use the melpa
receipe to successfully build this package for me also. However, when trying to install this package my straight
is still using the el-get
recipe. As stated already, I removed the relevant directories from both the repos and build directories. I even nuked the build-cache.el
file but to no avail. I'm suffering a similar fate to the spray
package which is now hosted on sourcehut. The melpa
recipe is correct and the repo up to date but am still using a recipe from when it was hosted on github.
It's hard to say without seeing your configuration. Are you utilizing the lockfile/profile system? https://github.com/radian-software/straight.el/tree/develop#lockfile-management
Yes, I am. And as a matter of course I update the lockfile after adding or removing a package(s). My configuration for this package is minimal:
(use-package scratch ; Mode specific scratch buffers.
:bind ("C-c b S" . scratch))
The only straight
customisations I have are as follows (from my custom
file):
(custom-set-variables
'(straight-check-for-modifications '(check-on-save find-when-checking))
'(straight-profiles '((nil . "../../pkg-versions.el")))
'(straight-use-package-by-default t))
This is now happening for more packages namely:
Codeberg
git-timemachine
Sourcehut
fullframe
repl-toggle
modus-themes
The ieure/scratch-el has been moved to Codeberg by its author. Note the repo name has changed from
scratch-el
to simplyscratch
. For me,straight
however fetches from an out-of-date fork that can be found here. Despite updating the recipe repositories,M-x straight-get-receipe
gives the following pointing to that fork:I forked the
melpa
repository and confirmed the recipe points to the new forge and includes the new repo name:Another fork exists on
emacsmirror
here but the repository name was changed fromscratch-el
to simplyscratch
matching that oncodeberg
and seems to be up to date.So I don't understand why
straight
is picking up the out-of-date fork. If it helps the melpa receipe was pointing to that fork at some point as shown by this commit. I'm running the latest version ofstraight
at the time of writing namely:I tried to override the recipe as follows but to no avail:
The backtrace is as follows:
I thought from your explanation here that such a recipe will default to inherit all the information from the upstream recipe that it doesn't override but it seems the
:repo
keyword is not overridden or am I misunderstanding the backtrace?Thanks for your time and this package.