Not sure if this is a really considered a bug 🙂. Apologies.
I learned about text properties and their string representation just now. My configuration, when producing lockfiles on macOS, outputs commit strings with properties from ws-butler. This is due to my usage of ws-butler-global-mode. Relevant bit in ws-butler that produces the text property.
(Moreover, using the same configuration on Windows mysteriously doesn't produce such text properties, leading to obnoxious flapping between the two. Though this is what drove me to open this issue, it's so specific to my setup that I won't bother you with it. Easier to just focus on whether any text properties should be present in the lockfile in the first place.)
So, should text properties be stripped from strings when outputting them into the lockfile? At face value I'd say yes, as this is irrelevant metadata that (empirically, in my case!) makes the lockfile less portable. But I also know nothing of the conventions around text properties, if any.
I this is a "wontfix", can you recommend something in straight I can hook ws-butler onto to disable ws-butler-mode when straight is producing the lockfile?
Thanks!
init.el:
;; Setup
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(setq straight-use-package-by-default t)
(straight-use-package 'use-package)
(use-package ws-butler
:init (ws-butler-global-mode 1))
;; Interaction
(straight-freeze-versions)
;; ---> inspect lockfile, see text properties
Resulting straight/versions/default.el:
(("emacsmirror-mirror" . #("1b523112d1571a0c276c3791e6aae4b44e56ce38" 0 40 (ws-butler-chg chg)))
("gnu-elpa-mirror" . #("87168508db0553275e6638988f8be1b25782b007" 0 40 (ws-butler-chg chg)))
("melpa" . #("0a61e1436292645a77b6889cecbf4f390155d712" 0 40 (ws-butler-chg chg)))
("straight.el" . #("5d046ad09413f3aba6198229e392cdd3f07e77ee" 0 40 (ws-butler-chg chg)))
("use-package" . #("4fb1f9a68f1e7e7d614652afc017a6652fd029f1" 0 40 (ws-butler-chg chg)))
("ws-butler" . #("52321b99be69aa1b661da7743c4421a30d8b6bcb" 0 40 (ws-butler-chg chg))))
:beta
Are you sure you are using the latest version of straight?
This was recently fixed in https://github.com/raxod502/straight.el/commit/4291195a3c94e0b7673a423f68dca6cda2940459
What is the output of the command straight-version?
I see no straight-version command or anything like that, but I'm on commit 5d046ad09413f3aba6198229e392cdd3f07e77ee. I'm running off master not develop. So I indeed don't have that fix.
So, I can close this but I am curious whether it's a mistake to use master (the default). I just started using straight. What do you think @progfolio ?
That's a matter of preference. The master branch is not updated as frequently and (in theory) should be more stable. The development branch is updated more frequently with bug fixes and features, but may also introduce new bugs from time to time. Personally I use the develop branch.
That said, you can define your own version of "stable" with your lockfile as well.
Thanks!
You're welcome.