Trying to get into emacs package contributions and was wondering what the typical workflow is of doing that. For example, if I have package X installed and would like to make my own additions to the package to test it locally before sending a patch, how would I go ahead in doing that? As a beginner, I'm thinking something along the lines of using the `:load-path` attribute in use-package. #emacs
@paniash I have a directory of all my Git repositories, including forks of various #Emacs packages. They're all configured with use-package with the :load-path keyword pointing to that my repos directory.
@jameshowell Thanks! Nice to see that I was thinking along the right line. :)
@paniash I either package vc or load it directly
@tusharhero Makes sense! I understood earlier that people would use straight.el but after package.el added support for :vc, that made straight.el redundant (atleast to me since iiuc, that's the selling feature of straight.el amongst other things).
@paniash @tusharhero For the record, package-vc is a standalone extension of package, that allows the user to install and update packages from VC checkouts. Package-vc was developed to make contributing to packages easier, with commands like `package-vc-prepare-patch'. The :vc use-package keyword uses package-vc.
@paniash Have you heard of Borg? It exactly makes that kind of thing easier.
https://emacsair.me/2016/05/17/assimilate-emacs-packages-as-git-submodules/
Emacsair! Assimilate Emacs packages using Git submodules

Blog of Jonas Bernoulli

@thaodan Interesting, I'll check it out. :)

@paniash Already described approaches are fine. I do it similarly, having sources cloned to the local '~/Sources/' (non-surprising) dir and loading a package from source when needed:

https://github.com/yugaego/emacs-config/blob/67a1dee36481a17841d018cd54a1df429460ed47/examples/local-pre-init.el#L205

emacs-config/examples/local-pre-init.el at 67a1dee36481a17841d018cd54a1df429460ed47 · yugaego/emacs-config

Yet another Emacs flavor. Contribute to yugaego/emacs-config development by creating an account on GitHub.

GitHub