Closed hrehfeld closed 6 years ago
Hi. First question. Did you call req-package-finish
after all your req-package
calls?
Yes!
@hrehfeld Could you please provide your load-path
value when calling a req-package function, req-package-log--open-log
output and emacs
and req-package
verions?
I think your my-org-config-private
file isn't on the load path. Req-package can't find it when you call req-package
with :require my-org-config-private
and this blocks execution of req-package org
.
also could switch to debug level before taking logs please?
If I have multiple packages calling req-package specific-pkg, are options merged?
options are never merged. but you could have multiple calls to one package if you have different dependencies in :require
section
My plan was to have a really modular config... What's best practice for local-only files providing stuff if they depend upon other packages? The idea was to create mini-packages that do nothing but provide config.
I think you should take a look at my emacs configuration as described in readme https://github.com/edvorg/emacs-configs This could be a good starting point.
Also please be sure that you've read the usage section. It has an example with loading a file from the load path https://github.com/edvorg/req-package#usage
Thanks for the comments. I read everything you hinted at before posting (however, I'm still pretty unsure about the exact function of things, spec would be nice).
Your config doesn't seem to recursively include?
My current config is here: https://github.com/hrehfeld/.emacs.d I wonder if req-package can give me any advantages? The basic infrastructure is already setup, but almost no packages use req-package.
Ok so the spec is simple. We have a req-package
macro form, which is just an extension to use-package
. It adds a few new configuration keywords.
:force
- the package configuration will be executed immediately without any dependency resolution. There is even no need to call req-package-finish
in this case.:require
- this is used to specify a runtime dependencies for the package. Package configuration will be executed only after all dependencies are configured. Please be aware that if you delay any of the dependencies somehow (:delay
, :chord
, :bind
, :commands
), the package configuration will also be delayed.:loader
- used to specify package provider. refer to req-package-providers-map
to see a list of supported providers. if no provider is specified, req-package goes by the priority list of providers req-package-providers-priority
and tries to find a package in any of these :load-path
- used to specify a load path for the path
providerSo my guess I still intact.. you probably didn't specify a load path to your my-org-config-private
. Please check this first.
I'm sorry I'm not sure I understand the last question about the architecture. My rule of thumb is to split my configuration in some modules like clojure, haskell, emacs appearance. These modules would include several req-package
forms for packages that are related. These packages sometimes have dependencies on each other (even across different modules). After requiring all the modules I call req-package-finish. Which will resolve the dependencies and load everything in correct order while keeping my .emacs.d modular.
Hope it's helpful.
Closed due to no activity and breaking changes in v1.1
I don't quite understand how :require is supposed to work. I have the following:
On the load-path:
my-org-config-private.el:
my-org.el:
init.el:
However, I experience the following behavior:
If I remove :require my-org-config-private from that call:
[Ignore this line. It breaks the lists into two, because markdown is a markup language with problems.]
Why is it not loading my-org-config-private?
Why is it not binding keys if the :require exists?
If I have multiple packages calling req-package specific-pkg, are options merged?
My plan was to have a really modular config... What's best practice for local-only files providing stuff if they depend upon other packages? The idea was to create mini-packages that do nothing but provide config.
It would be really nice to have some more documentation...