Commit graph

359 commits

Author SHA1 Message Date
Eivind Fonn d51987f497 core: remove support for all layers 2016-05-30 21:06:54 -04:00
syl20bnr d98be63dfa core: new layer file -> layers.el / Fix regressions of previous commits
The new layer file `layers.el` is used to declared additional layers.
It is like the sibling of packages.el except that for now it does not
take a list (can do this in a futur commit).

The new order for file loading is the following:

layers.el > packages.el > funcs.el > config.el > keybindings.el

Since packages.el relies on some undefined stuff encapsulated
in init functions, it is not meant to be byte compiled. OTOH funcs.el
(where lies most of the computation added by a package config) should
be compilable.

Since we load packages.el very early it is not possible to use
`configuration-layer/package-usedp` in funcs.el.

This commit also fixes the tests.
2016-05-28 21:20:23 -04:00
syl20bnr 37dfa47961 core: allow package-usedp in both packages.el and funcs.el 2016-05-27 00:32:05 -04:00
syl20bnr c35e4ee27b core: remove packages-funcs and packages-config
Change the semantic of the files for a better control over the
configuration (like being able to use package-usedp function to
guard package configuration and function definition).

This is a big change!

The list of packages of the layer must now be placed in config.el
packages.el only contains pre-init, init and post-init functions

Now both packages.el and funcs.el can use
configuration-layer/package-usedp which is much more powerful than
just configuration-layer/layer-usedp.

Also merging into one file the layer variable and the list of packages
make sense (in this case config.el).

It also means that we can quickly load all the packages declared in
all layer for helm and ivy sources by just loading the config.el file.

Expect some regressions introduced by this change, like the helm
and ivy sources, they will be fixed in other commits.
2016-05-27 00:32:05 -04:00
syl20bnr 1f993bddf6 Rename spacemacs-helm and spacemacs-ivy layers to helm and ivy
For ivy users: be sure to update your dotfile by replacing spacemacs-ivy
by ivy
2016-05-15 22:24:27 -04:00
syl20bnr 1ebbe18b47 core: display warning buffers at the bottom of the screen
when synchronizing layers.
2016-05-14 22:10:20 -04:00
syl20bnr b21c7177ec core: new command line params --no-layer and --distribution
--no-layer: desactive all the layers except the distribution layer
--distribution: allow the change temporarily the distribution

example

Start emacs with spacemacs-base and no layers:
emacs --no-layer --distribution spacemacs-base
2016-04-21 23:29:23 -04:00
syl20bnr 09ff77fbd4 Make it possible to use spacemacs-bootstrap layer as a distribution 2016-04-06 13:12:13 -04:00
syl20bnr c55c21d1c3 core: fix layer auto-mode function
Not installed used layers were not lazy installed appropriately.
2016-04-04 22:15:24 -04:00
syl20bnr 22c2763569 core: add package breakdown in summary message
e: elpa
r: recipe
l: local
b: built-in
2016-04-03 12:02:28 -04:00
syl20bnr d60228219f core: ensure quelpa is available when installing packages 2016-04-03 02:51:01 -04:00
syl20bnr 8e897f6b7b core: new layer spacemacs-bootstrap and new package :step
New package :step 'bootstrap', this step happens before 'pre' packages.
A new layer names 'spacemacs-bootstrap' gather all the ':step bootstrap'
packages. This layer is special and is always the first element of
the variable 'configuration-layer--layers' which assure that all
bootstrap packages are configured first.

This new layer leverages the configuration layer system, removes the
clutter of package installations in the function 'spacemacs/init' and
isolate the bootstrap packages in one place.
2016-04-03 00:28:47 -04:00
syl20bnr 91eeccc7a5 core: change meaning of t for dotspacemacs-enable-lazy-installation
t now means unused.
2016-03-28 12:10:12 -04:00
syl20bnr ae9f40ae77 core: new variable dotspacemacs-ask-for-lazy-installation 2016-03-27 15:56:15 -04:00
syl20bnr 5e5b7a6569 core: new values for dotspacemacs-enable-lazy-installation
- all
- unused
- nil
- t

Fixed #5608
2016-03-27 15:55:24 -04:00
syl20bnr d37c38053e core: fix installation and configuration of lazy installed packages
Several things have been fixed:
- correctly set the :lazy-install flag on all packages of a lazy
  installed layer
- correctly unset the :lazy-install flag when installing the packages
- sort the packages before installation and configuration

Fixes #5610
2016-03-27 12:23:24 -04:00
syl20bnr 21496c462c core: fix detection of packages to lazy install
Make cfgl-layer-owned-packages return a list of package objects instead
of just package names.
Use this function to correctly excluded non owned package when flagging
package for lazy installation.

Fixes #5608
2016-03-27 03:27:53 -04:00
syl20bnr 842bb368ea core: display home buffer when installing a layer lazily 2016-03-26 03:36:54 -04:00
syl20bnr b7923ad1d9 core: don't configure package marked for lazy install 2016-03-26 03:23:18 -04:00
syl20bnr f70bcbcd4c core: improve lazy install robustness
- only consider distant packages (i.e. requiring an installation)
- remove lazy install flag of a layer if at least one owned package is
  already installed
2016-03-26 03:23:03 -04:00
syl20bnr fe8f0a74ad core: fix lazy install prompt for installed layers
Fixes #5591
2016-03-26 02:15:55 -04:00
syl20bnr a7f46a496e core: fix mode activation when lazy install is cancelled 2016-03-26 00:50:13 -04:00
syl20bnr 8815868524 core: fix lazy installation of not used packages
Fixes #5591
2016-03-26 00:46:11 -04:00
syl20bnr 16afe67907 core: enhance lazy installation of layer
Now Spacemacs will ask for layer installation when opening a file with
a known file type.
The auto-mode-alist entries are added by the file auto-layer.el in
the layers directory.

Easy insert of forms for lazy initialization can be done with the
interactive function configuration-layer//insert-lazy-install-form.

Change default value of dotspacemacs-enable-lazy-installation to t.
2016-03-25 01:03:37 -04:00
syl20bnr c3bb8a609e core: add overriding rules for :toggle
:toggle is ignored if not used in the owner of a package, it can
be overridden by new owners or by the dotfile.
2016-03-19 18:26:18 -04:00
syl20bnr 00d13b4ff9 core: use eval for toggle property
In this case the dispatch to symbol-value is useless since we accept
an prog form.

See https://www.gnu.org/software/emacs/manual/html_node/elisp/Eval.html
2016-03-12 14:02:51 -05:00
bmag 0daba08781 Use package-user-dir where appropriate
Elpa dir is no longer hard-coded to <user-emacs-directory>/elpa/. Users
can change the location of Elpa dir by changing the value of
package-user-dir.
2016-03-10 23:13:19 -05:00
syl20bnr f6657a5382 core: new interactive function to insert lazy installation config
New function configuration-layer/insert-lazy-install-configuration
This function asks for a layer and then insert the lazy configuration
for all the packages owned by this layer.
2016-03-05 23:25:00 -05:00
Eivind Fonn 52bb7b7c7f Revert one instance of condition-case 2016-03-03 21:14:40 +01:00
bmag b224c9f1e1 Bugfix: honor package :toggle spec when provided 2016-03-03 20:41:10 +01:00
justbur 39e06feba9 Use unless-debug version of condition-case
It's not possible to get full backtraces in these instances when an
error is signaled, and I think we should generate full backtraces when
debug-on-error is enabled as a general rule.

I had to make this change at one place to track down the root of problem
2 in #5200.
2016-03-03 20:30:30 +01:00
syl20bnr 8849e9c807 core: fix activation of package dependencies
Bug lurking in the code for quite some time, if both a package and
its dependencies were uninstalled then activation of the dependencies
could fail. This is resolved by explicitly asking package.el to install
the dependencies if required.
2016-02-23 13:00:38 -05:00
syl20bnr fd9326486a core: new function configuration-layer/describe-package
Add actions for both helm and ivy.

TODO:
- see TODO in function body
- replace SPC h d p (list all packages, use spacemacs describe when
it is a layer package, otherwise use vanilla describe).
2016-02-22 02:29:43 -05:00
syl20bnr e4447264d9 core: new package keyword :toggle
This new keyword allows to add all the packages to the <layer>-packages
even when a package is not toggled on by a given layer variable.

This fixes an issue of the layer system where we had to choose between
discoverability (ie. the list of package in helm or ivy with SPC h SPC)
and installation of package (because any package listed in the variable
<layer>-packages were installed).
2016-02-21 00:01:39 -05:00
syl20bnr 308fb1118d core: replace package keyword :skip-install by :location site 2016-02-20 23:05:36 -05:00
syl20bnr 6bb306a999 Improve theme installation robustness
Also use stock Emacs functions for warning reporting before the
home buffer is actually created.
2016-02-19 23:30:35 -05:00
syl20bnr da83bef2cb Fix unusable Emacs when an ELPA repository is down 2016-02-19 22:14:45 -05:00
bmag 31f532dfe5 install-package: don't set lazy-install pkg is nil
Fix bug: When the list of package names returned by
configuration-layer//get-uninstalled-packages contains a package that
isn't contained in configuration-layer--packages, then
configuration-layer//install-package throws "wrong-argument-type:
eieio-object-p nil" error at startup.
configuration-layer//install-packages catches it and prints it in the
home buffer.
2016-02-14 23:07:22 -05:00
syl20bnr 3b6b55485a core: don´t catch errors if --debug-init 2016-01-31 23:15:29 -05:00
Robert O'Connor 42735c9f9f core: fix typo 2016-01-31 22:18:32 -05:00
syl20bnr 45def1ec60 core: Add support for lazy installed layer.
New function configuration-layer/lazy-install to add support for
lazy installation of layers based on auto-mode-alist emacs mechanism.

This is essentially the Prelude feature but translated at the layer
level for Spacemacs.

New dotspacemacs variable to enable this feature:
dotspacemacs-enable-lazy-installation
For now this variable is set to nil by default, it will be put to t when
the feature is stable.

POC with elixir layer.
2016-01-31 00:10:14 -05:00
syl20bnr 5a061b3813 core: new layer files packages-config.el and packages-funcs.el
Start to isolate the list of packages. Also we want to define packages
function at the top level of an elisp file in order to not prevent
emacs from knowing where the functions are defined.

This commit has a POC made with elfeed and elixir layers.
2016-01-31 00:03:04 -05:00
Eivind Fonn ad6efee8a2 Don't accidentally overwrite skip-install 2016-01-26 01:20:59 -05:00
james sangho nah 23525a3d1d Remove non-directories from rollback slot list
Addressing #4586. The bug stops Spacemacs from listing rollback slots if
there exists a file (i.e. non-directory) in the rollback directory.
e.g. .emacs.d/.cache/.rollback/.DS_Store (common in OS X)
2016-01-21 15:55:32 +01:00
syl20bnr 1a5229048c core: new keyword :skip-install 2016-01-17 23:27:30 -05:00
syl20bnr 33ead6fc42 Deprecation of extensions and <pkg>-excluded-packages variables
As announced in previous releases, see CHANGELOG.next for more info
in the Breaking Changes section.
2016-01-17 22:06:04 -05:00
syl20bnr 321d2f028a core: add configuration-layer/remove-layer(s) 2016-01-13 00:06:38 -05:00
syl20bnr 3d63dd4392 core: fix red mode-line when an error occurred
Rename function configuration-layer//set-error to
configuration-layer//increment-error-count
2016-01-12 00:08:36 -05:00
syl20bnr 046d86800c Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00
Chris Barrett 6d7d399cfe Update packages.el template
- Remove extensions template
- Prompt before creating readme (Users creating private layers probably
  don't want to create a readme)
- Template out layer author and email address
- Rename LAYERNAME to LAYER_NAME for readability
- Use fallback attributes if user-full-name is unset
- Fix inconsistent Spacemacs capitalization in template
2016-01-11 19:06:43 -05:00
syl20bnr 8ca9f7a5e5 core: sort alphabetically the list of packages to be updated 2016-01-11 10:59:52 -05:00
syl20bnr d610a13d60 core: display the list of packages to update 2016-01-11 01:13:09 -05:00
justbur 900ae8a06d core/config-layer: Conditionally use ivy in create-layer 2016-01-09 13:36:03 -05:00
justbur 32f523e062 spacemacs-helm: New layer
Collect helm configuration from spacemacs and spacemacs-base into one
place. The purpose is to allow choice between this layer and
spacemacs-ivy.
2016-01-09 13:36:03 -05:00
syl20bnr 609b79fd6c core: move handling of --insecure to core-command-line.el 2016-01-06 23:27:09 -05:00
syl20bnr 96a648d1da Update deprecation TODO to 0.106 2016-01-03 22:46:01 -05:00
syl20bnr 00c420211c core: fix configuration-layer--refresh-package-timeout
Set it again to dotspacemacs-elpa-timeout in
configuration-layer/initialize
2015-12-21 00:56:04 -05:00
justbur a713e8d71e core: Fix free variable references
Most are innocuous. One is update-packages-alist in config layer. Define
the variable and give it a docstring with an explanation of its purpose.
2015-12-21 00:25:41 -05:00
justbur 39760a1cfe core: Update to preferred versions of functions
1. Don't use beginning-of-buffer (or end):
   These are for interactive use only according to compiler

2. reduce => cl-reduce

3. next-line => forward-line
   next-line is only for interactive use

4. set-default-font => set-frame-font
   set-default-font is obsolete since 23.1

5. show-subtree => outline-show-subtree (alias)

6. show-all => outline-show-all (alias)
2015-12-21 00:25:41 -05:00
Eivind Fonn ddd5e7112d Fix rollback language 2015-12-09 10:55:32 +01:00
syl20bnr 741bd0375f core: remove request.el dependency 2015-12-07 23:31:30 -05:00
syl20bnr 4a5ec73edf core: add --insecure command line parameter
Will set dotspacemacs-elpa-https to nil. Useful to be able to install
spacemacs in an environment where https is an issue.
2015-12-07 23:10:44 -05:00
syl20bnr 26ecdee0e3 New dotspacemacs variable dotspacemacs-elpa-timeout
Increase timeout from 3 seconds to 5 seconds.
2015-12-06 02:22:49 -05:00
syl20bnr 61707e593d core: improve installation speed of themes and bootstrap packages
package-refresh-packages was called every time a bootstrap package or
a theme was installed

Use configuration-layer/retrieve-package-archives to install bootstrap
packages and themes
Add a reentrance boolean to configuration-layer/retrieve-package-archives
Add force and quiet optional arguments to configuration-layer/retrieve-package-archives
Force refresh of archive when the user requests an update of packages
2015-12-02 23:53:02 -05:00
syl20bnr d822241739 core: use request.el to check elpa archive availability
Add request.el to core/libs
Refactor package.el initialization in configuration-layer.el
Cosmetic improvements to loading messages
Remove redefinition of package-refresh-packages
2015-12-02 23:25:00 -05:00
Fabien Dubosson 028c53fbd7 Create the layer README on create-layer
When using `configuration-layer/create-layer`, the `README.org` file is
not created from the template. This change corrects this.

Close #3259
2015-11-24 23:20:45 +01:00
Sebastian Wiesner 659d585c7a Fix type error in package-archives
The archive name must be a name.

Fixes `SPC a P`.
2015-11-20 11:45:08 +01:00
syl20bnr 629d736b79 core: add package keyword :protected
A protected package cannot be uninstalled nor excluded.
2015-11-19 00:53:57 -05:00
syl20bnr 1061adbac9 New variable dotspacemacs-elpa-https
If non nil use HTTPS otherwise use HTTP.
Default is t.
2015-11-18 13:50:30 -05:00
Jason McCandless 91588dc7a0 Use https for package sources that support it 2015-11-14 00:38:06 -05:00
syl20bnr 9e5e309bf0 dotfile: new variable dotspacemacs-max-rollback-slots
Replaces the old spacemacs-number-of-rollback-slots
2015-11-11 00:14:46 -05:00
Eivind Fonn 353acb4070 core: fix function name
Introduced in ddeea31ca4
2015-11-10 23:34:27 +01:00
Eivind Fonn ddeea31ca4 core: remove dash dependency 2015-11-10 22:40:26 +01:00
Fabian Wilk 55664858ae Rollback slots are now limited.
- Introduced new variable `spacemacs-spacemacs-number-of-rollback-slots'
      which holds the maximum number of desired rollback slots.
    - Introduced functionality to delete oldest rollback slot directories if
      total number exceeds the configuration value.
2015-11-10 22:24:57 +01:00
Eivind Fonn 4f2b08154c core: Don't delete bootstrap packages as orphans 2015-11-04 20:21:42 +01:00
syl20bnr 37cb1bc562 core: fix configuration-layer/package-usedp for excluded packages
Was returning non nil for excluded packages.
Fix exclusion of evil-magit and evilification of magit buffers.
2015-11-01 00:59:29 -04:00
syl20bnr 3dec1ce9ec core: perform local path existence check at configuration time
In order to be able to log the not found path as a warning instead
of crashing.

Also adds unit test to test both valid and invalid local paths.
2015-10-22 22:39:53 -04:00
Eivind Fonn 0c6065e32d Allow explicit path for package location 2015-10-22 18:27:32 -04:00
justbur aa547faed6 config-layer: Correct package update note 2015-10-18 22:11:03 -04:00
Yen-Chin Lee 2a983671af Fix some cl-lib function with prefix
Since emacs 24.3, function in cl-lib should with cl- prefix.

Signed-off-by: Yen-Chin Lee <coldnew.tw@gmail.com>
2015-10-07 15:51:39 -04:00
Syohei YOSHIDA 2bd94c18d3 Loading warnings for using warning-minimum-level 2015-09-29 15:05:36 +09:00
syl20bnr 7a2e604741 core: remove 'post value for :step property
post value for package :step property is both useless and considered
harmful. It would hijack the determinism of the loading order.

'pre value is used very very rarely and I even think it is not even
used since most of the time a package that must be loaded in pre step
is a bootstrap package. But we keep 'pre since it can be useful to
have it for _exceptional_ cases.
2015-09-24 00:02:02 -04:00
syl20bnr 5402dae81b core: add new :location value -> built-in
Can be used to configure built-in packages
2015-09-23 22:01:47 -04:00
syl20bnr f294ba3887 core: remove 'private value for :location
While doing the tests I encountered an edge case where a package owned
by the dotfile could be passed either a 'private or 'local location
which is ambiguous (moreover where do we put packages with 'local
location ?).

We remove the ambiguity by removing the 'private value and push the
path ~/.emacs.d/private/local/pkg/ when the owner of a local
package PKG is the dotfile.

When the owner of a local package is a layer then the load path is
in the "local" subdirectory of the layer directory. It adds no value
to use the old 'private location in this case.
2015-09-20 00:49:18 -04:00
Eivind Fonn 92c792c18e Allow local packages without owner 2015-09-19 18:44:19 -04:00
syl20bnr ff2ff60830 core: fix configuration-layer/create-layer
Missing name parameter for configuration-layer//copy-template
2015-09-19 01:37:45 -04:00
syl20bnr c111ff24af core: make private location work with dotfile owner 2015-09-19 01:36:48 -04:00
Eivind Fonn c169b78eed Add private package location 2015-09-19 01:11:11 -04:00
syl20bnr 3f18a09560 core: install and uninstall package from package-alist
Consult the archive only when the user actually update the packages.
Fixes #2956
2015-09-17 23:06:43 -04:00
Eivind Fonn fa32b9be5c More flexible additional packages
When the package already exists, use configuration-layer/make-package
to copy information into the existing package object.

This allows overwriting location, step and excluded, but NOT owner,
pre-layers or post-layers.
2015-09-17 22:32:54 -04:00
Robert O'Connor b4e6e52d0e Remove Tromey.
Fixes #3049
2015-09-16 21:41:37 -04:00
justbur 02fbfbe74f core-conf-layer: Use NOSAVE for pack. update (v25)
Should fix #2849. The new package-delete tries to save changes to the
selected package variable during the update process and this can cause
conflicts with how spacemacs wants to update packages (and even lead to
the .spacemacs file being deleted. This is also unnecessary, because we
are only deleting the packages temporarily to be installed at the next
boot, so there should be no need to update this variable.

This change only affects Emacs 25 users.
2015-09-16 21:41:08 -04:00
Bar Magal b4c10a4749 Fix update error when a distant package is unavailable
Instead of error, show a warning that the unavailable package(s) were
skipped. This should handle situations were a package is temporarily
unavailable from MELPA (or other sources).
2015-09-16 21:38:40 -04:00
Eivind Fonn a764eb4eb9 Fix version injection in home buffer
Don't inject version if banner is nil
2015-09-13 22:54:16 -04:00
syl20bnr cd50d9c069 core: defer distro insertion in home buffer 2015-09-11 23:14:16 -04:00
syl20bnr 77161bd591 core: restore default mode line in home buffer 2015-09-11 23:04:01 -04:00
justbur 6eab954afe Use + instead of ! for layer categories
Helm seems to treat "!" specially in pattern matching, so having a ! in
the pattern string when traversing directories is problematic. This
change fixes #2737, because as far as I can tell "+" has no special
meaning in a helm pattern.

Of course, we can choose a different character, but I'm fond of "+" as
representing "more layers here".
2015-09-11 00:13:51 -04:00
syl20bnr c17db0dcb0 core: minor update of warning message when a layer does not exist 2015-09-09 23:45:04 -04:00
justbur cc9287863b core: Fix #2952 by not loading missing layer
This issues a warning if the layer was declared in the dotfile but not
found through the layer discovery mechanism.
2015-09-09 23:45:04 -04:00
syl20bnr 6b33031dc5 core: dotspacemacs-distribution, spacemacs-core layer and rename contrib
- Rename contrib directory to layers
- Add new variable dotspacemacs-distribution
- Move spacemacs layer to layers/!distribution
- New layer spacemacs-core in layers/!distribution
- User can now set dotspacemacs-distribution to spacemacs or
  spacemacs-core (default spacemacs)

spacemacs-core is very lightweight layer sufficient to build upon
spacemacs.
2015-09-07 23:44:43 -04:00
syl20bnr 37609161c8 tests: Add configuration layer functional tests 2015-09-07 19:42:22 -04:00
syl20bnr 555927c7ec core: use package-alist to resolve orphans
instead of the downloaded package archive. It fixes a case where
a package maintainer removes a dependency D of a package P and spacemacs
detects it which has the effect of deleting the obsolete package D, but
package-alist is not yet updated, because package-alist is updated only
when P is reinstalled (or upgraded).
2015-09-07 01:06:27 -04:00
syl20bnr 8adc82d1ae core: actually read :disabled-for layer property
Also it is not need to pass a list, example:

```
(setq dotspacemacs-configuration-layers
   '((auto-completion :disabled-for org git)))
```

Will disable auto-completion for org and git layers.
2015-09-03 13:17:02 -04:00
syl20bnr 88d30d7074 core: add :disabled-for keyword for declared layers
Example:

(setq dotspacemacs-configuration-layers
'((auto-completion :disabled-for (org))))

Will not run any org/pre-init-xxx or org/post-init-xxx functions where
xxx is a package owned by the auto-completion layer.

Limitation:

If ownership of an auto-completion package P is stolen by another layer L
then :disabled-for must also be declared with L, otherwise the P will
be configured for org.

(setq dotspacemacs-configuration-layers
'((auto-completion :disabled-for (org))
  (L :disabled-for (org)))

The user should not change the default owner of a layer unless really
required (for instance to use his own fork).
2015-09-02 23:10:30 -04:00
syl20bnr 719080f533 core: rename configuration-layer/filter-packages to
configuration-layer/filter-objects
2015-09-02 23:10:30 -04:00
Ben Booth a8582813c0 fix typo 2015-08-26 21:57:22 -04:00
syl20bnr 6318f009bc core: add new function to allow a layer to add other layers
- configuration-layer/declare-layers
- configuration-layer/declare-layer

These functions can be used in the config.el file of a layer to add
required layers.

For instance the react layer needs both html and javascript layers.
salt layer needs the yaml layer (see the following commits)
2015-08-26 02:41:54 -04:00
syl20bnr a8f6afaf13 core: fix resolution of orphan packages
Fix a bug were distant packages with no owner were not deleted.
2015-08-25 22:52:26 -04:00
syl20bnr d255cae4b8 core: refactor layer loading
Prepare the field for some kind of layer prerequisites required by
react and yaml layers
2015-08-25 22:28:30 -04:00
syl20bnr 8a5f454c32 core: fix installation of package dependencies 2015-08-15 00:08:21 -04:00
syl20bnr 50b3b4c99a core: add support for recipe update 2015-08-15 00:07:56 -04:00
syl20bnr 437a819ea1 core: inline recipe in package list
It is now possible to override the recipe in a custom layer.

For instance to override the recipe R for package P in layer L
In a private layer L' put at the end of dotspacemacs-configuration-layers
and listing P with an init function for P, L' becomes the ower of
P and the recipe R' defined in L' overrides the recipe R.
2015-08-14 15:31:22 -04:00
justbur 568e464ca3 Fix #2148: Update failure in Emacs 25
The `package-delete` function refuses to delete a package that is a
depency by default, which prevents the spacemacs update function from
working most of the time.

This commit sets the flag to force deletion for Emacs 25.
2015-08-14 14:39:34 -04:00
syl20bnr e8072b0057 Fix returned local dir value in python and rcirc layers 2015-08-13 09:02:03 -04:00
syl20bnr 62c6462ae9 core: fix nil :owner on package dependencies
Fixes #2643
2015-08-13 09:00:18 -04:00
syl20bnr b45f3b0d0a core: the owner of a package can override some properties
Allowed properties to be overridden are: location, step and excluded
This mechanism allow the user to alter the location of a given
package, for instance if she wants to use her own fork instead of the
version in ELPA.

Note that for now there is no easy way to override the package recipes.
2015-08-13 01:23:39 -04:00
syl20bnr 1c8d90c856 core: add support for quelpa recipes 2015-08-12 23:56:24 -04:00
syl20bnr 1514c6e7d3 core: fix bug in package-usedp
It returned t even if the package has no owner.
Fixes #2601
2015-08-11 23:25:00 -04:00
syl20bnr 4148fdff56 core: add support for local directory 2015-08-11 19:45:28 -04:00
syl20bnr e2bdc25396 core: fix mandatory package and extension list variables 2015-08-10 21:22:28 -04:00
Robert O'Connor 3f7dab0eeb Change elpa to use http.
GNU is having issues with HTTPS right now.

Fixes #2596
2015-08-09 21:52:47 -04:00
syl20bnr b7205ebd49 core: fix load file error with dotspacemacs-additional-packages 2015-08-09 14:47:19 -04:00
syl20bnr 88143a33fa core: correctly handle packages owned by the dotfile
i.e. packages listed it dotspacemacs-additional-packages
2015-08-09 11:38:15 -04:00
syl20bnr 9ac2d54423 core: correctly make excluded packages 2015-08-09 11:34:35 -04:00
syl20bnr 51807654a1 core: package-list-v2 fix packages update
Ready to be merged in develop
2015-08-09 00:59:13 -04:00
syl20bnr 64be291221 core: rename some function arguments to more explicit pkg-name 2015-08-09 00:59:13 -04:00
syl20bnr 88a6ddbe37 core: package-list-v2 fix orphan deletion 2015-08-09 00:59:12 -04:00
syl20bnr f0985162c6 core: package-list-v2 fix helm-spacemacs 2015-08-09 00:59:12 -04:00
syl20bnr 00fc8f9502 core: package-list-v2 fix install of packages 2015-08-09 00:59:11 -04:00
syl20bnr b887a21bb6 core: package-list-v2 working loading, still error at install time 2015-08-09 00:59:11 -04:00
syl20bnr aa2669ee9c core: package-list-v2 install and orphan detection
Still need to clean the orphan detection though

Packages are not configured for now
2015-08-09 00:58:48 -04:00
syl20bnr e4748ea692 core: package-list-v2 sort package list 2015-08-09 00:58:33 -04:00
syl20bnr e145f73b8b core: package-list-v2 fix layer variables 2015-08-09 00:58:02 -04:00
syl20bnr f484c2594a core: package-list-v2 new class cfgl-package 2015-08-09 00:55:46 -04:00
syl20bnr a0cbcd4a5d core: fix error when a layer is not found 2015-07-26 20:41:06 -04:00
syl20bnr faa18f49df core: start to use eieio
Replace the alist of layer by a list of layer objects.
2015-07-26 00:41:41 -04:00
syl20bnr 844f2026ac core: rename declare-layers and declare-layer funcs
renamed to declare-used-layers and declare-used-layer respectively
2015-07-25 22:59:54 -04:00
syl20bnr 55f13db2b7 core: fix error when dotspacemacs-directory is nil 2015-07-23 22:59:45 -04:00
justbur 252f26d555 Make default private layer directory explicit 2015-07-23 22:28:26 -04:00
justbur e1eed07c30 Add option for .spacemacs.d/init.el .spacemacs file
Setting SPACEMACSDIR overrides location of .spacemacs.d

Add dotspacemacs-directory variable

Add dotspacemacs-directory to layer search path
2015-07-23 22:25:39 -04:00
syl20bnr 5e1c5319e9 core: put MELPA at the top of the list of archives 2015-07-02 00:38:47 -04:00
Travis B. Hartwell e236d5a280 core: add optional argument to configuration-layer/update-packages
So if called using the universal argument or with a parameter yes is
assumed to the question to update packages.  Useful for calling Emacs
in batch mode to update Spacemacs.
2015-07-01 01:45:37 -04:00
zimbatm b5a732220a Use SSL to contact elpa repositories when possible
* ELPA: Certificate for different domain. HTTPS redirects to HTTP.
* gnu: yes
* melpa: N/A
* org: N/A
* marmalade: Certificate expired. HTTP redirects to HTTPS.
2015-06-22 23:09:18 -04:00
syl20bnr 86c94a2c7f core: auto-discover categories
Categories are directories whose names start with `!`
2015-06-05 22:47:23 -04:00
Eivind Fonn a5a294cb33 Locate layers in arbitrary subdirectories
Conflicts:
	core/core-configuration-layer.el
2015-06-05 21:36:43 -04:00
Keshav Kini 696f2d461a Use weirder-looking templating variables
It's important to make templating variables something unique-looking so
that you don't accidentally write template variables where you don't
mean to.  For example, in extensions.template, "package names go here"
was being replaced with "package <name of package>s go here", etc.
Also Search case-insensitively for good measure
2015-06-02 22:50:51 -04:00
syl20bnr 0846591934 Catch layer variable errors at startup 2015-06-01 00:29:38 -04:00
syl20bnr 4489de827b Now :variables values must be quoted like in setq sexps
Fixes #1596
2015-05-31 20:55:46 -04:00
justbur 33e439e9cc Add option to select other layer directories in create-layer 2015-05-27 23:56:11 -04:00
Tristan Hume eecb250a55 Prefix categories with ! 2015-05-25 00:50:38 -04:00
syl20bnr 0a71214d68 Use archive instead of package-alist to detect orphans
Fixes #1538
2015-05-20 02:05:58 -04:00
et2010 ecc555e917 Add org elpa repository
so that org-plus-contrib package is included in package list.
2015-05-18 02:01:18 -04:00
syl20bnr 744b9ef656 core: better warning message with duplicated layers 2015-05-10 19:01:31 -04:00
syl20bnr 56a0a94377 Warn about duplicated layers 2015-05-09 21:59:03 -04:00
syl20bnr 32529256e5 Refactor discovery of layers
More robust exclusion of category directories
2015-04-25 01:26:22 -04:00
syl20bnr c82857d767 Move some layers to vim category 2015-04-25 00:07:58 -04:00
syl20bnr 670415a145 Move perspective in window-management category 2015-04-25 00:00:12 -04:00
syl20bnr 5930597e50 New variable: dotspacemacs-additional-packages
Adding packages to this list will install them without
needing them to be wrapped in a layer.
Ideal for niche languages of any package that don't need
any configuration.
2015-04-21 00:33:23 -04:00
syl20bnr 1dd129ef59 Move gnus layer to email category
defvar --> setq for package lists
2015-04-20 23:42:53 -04:00
syl20bnr fdd4e944ef Reload dotfile and layer anywhere with SPC f e R
Replace `SPC m c c` and `C-c C-c` in the dotfile

Resolve #1210
2015-04-18 23:40:24 -04:00
syl20bnr 57f802619b Don't consider used themes as orphans if they don't belong to a layer
Now it is not required to use the themes-megapack layer or define
a private layer to use a theme that is not in the spacemacs layer.
2015-04-14 15:50:29 -04:00
syl20bnr b8e617c886 New function spacemacs/warning 2015-04-12 12:25:53 -04:00
syl20bnr dac29ce71c Namespace spacemacs buffer functions with spacemacs-buffer prefix 2015-04-12 00:24:03 -04:00
syl20bnr cce8d5382d Contrib category "config"
Move puppet, ansible and dockerfile layer there
2015-04-10 22:58:14 -04:00
syl20bnr 3107d5d9f8 Fix two important bugs in Update/Rollback
- correctly detect package dependencies to update
- rollback is now an idempotent action
2015-04-07 23:51:08 -04:00
syl20bnr d96da88d8a Fix helm-spacemacs for unused layers 2015-04-04 01:39:27 -04:00
syl20bnr 57fcb93799 Rename *-declarep functions to *-usedp functions
Makes more sense from a user view point.
2015-04-03 19:13:52 -04:00
syl20bnr 69a45ce353 Don't load extensions.el files twice 2015-04-03 18:09:40 -04:00
syl20bnr 318bd23dc4 Add pre and post init functions support to configuration-layers
Now in addition to the <layer>/init-<pkg> function there are
- <layer>/pre-init-<pkg> (executed before <layer>/init-<pkg>)
- <layer>/post-init-<pkg> (executed after <layer>/init-<pkg>)

The init function is mandatory, if it is not present then the
package is ignored and not installed.

This mechanism allows soft (implicit) cross layers dependencies
between packages (see company for more info).

It is now possible to remove flycheck from spacemacs layer and
move it to its own syntax-checking layer.
2015-04-03 17:12:56 -04:00
syl20bnr 2905190dc8 Fix double loading of packages.el files 2015-04-02 23:13:21 -04:00
syl20bnr 5f7579867a New update method
- backup the packages to be updated
- then delete them
- the user restart emacs and spacemacs will install the last version

Fixes some update errors related to byte-compilation like the one
which affected the powerline (void variable left)

This commit also adds some page break for clarity
2015-04-02 22:23:16 -04:00
syl20bnr 655e1a2c6b Move xkcd layer in "fun" category folder 2015-04-01 23:26:47 -04:00
syl20bnr 30872ee12f Fix error when displaying the missing layer warning 2015-04-01 23:14:48 -04:00
syl20bnr 06607fe3e3 Move rcirc and erc layer in irc subfolder 2015-03-27 22:27:58 -04:00
syl20bnr 51c5de624d Fix non activated package if there is no defined init function
Fixes #898
2015-03-22 03:02:15 -04:00
syl20bnr 37c7041a26 Don't enable the package when initializing 2015-03-18 01:13:28 -04:00
syl20bnr 1ea3da322c Non blocking errors at startup + inline reports in spacemacs buffer
The mode line turns red when errors have been detected
and displays the number of errors.

Fixes #440
2015-03-16 01:29:39 -04:00
syl20bnr c9e4864f50 Tweaks for mode-line display at startup time 2015-03-12 00:25:52 -04:00
syl20bnr 9faa1542cb Use mode-line as a progress bar 2015-03-11 23:46:37 -04:00
syl20bnr 39ccec59b5 Split function configuration-layer/load-layer-files 2015-03-05 00:00:18 -05:00
syl20bnr ce01f956ff Fix spacemacs loading with 'all for dotspacemacs-configuration-layers 2015-03-03 03:58:29 -05:00
syl20bnr d2e4ad1535 Remove unnecessary function configuration-layer/load-file
This functions prevents some layer files from being reloaded
2015-03-02 00:18:39 -05:00
syl20bnr 293ca1c8bd C-c C-c in .spacemacs to resync the packages 2015-03-01 23:02:14 -05:00
syl20bnr 206b1a13ae Refactor init.el and rename core-spacemacs-mode.el to core-spacemacs.el 2015-03-01 22:12:09 -05:00
syl20bnr 8aeb6e24c0 Move dotfile layer and settings declaration in their own functions
layers declaration are now in `dotspacemacs/layers` function
settings are now part of the `dotspacemacs/init` function
2015-02-28 23:33:57 -05:00
Herbert Jones d7e6816607 declare layers should not include hidden dirs
To prevent the .git directory from showing up when hitting "SPC f e h"
it should not be included.  Hiding all hidden directories is likely the
desired behavior, instead of just ignoring ".git".
2015-02-27 22:54:40 -05:00
syl20bnr 97bb568360 Add variable dotspacemacs-loading-progress-bar
Default is t
2015-02-15 21:25:12 -05:00
syl20bnr 4168b9f217 Refactor the initialization of spacemacs
Users can now specify their own evil settings in
`dotspacemacs/init`
2015-02-15 20:14:36 -05:00
syl20bnr 9059a486fe Fix a bug in loading animation dot length 2015-02-14 23:42:26 -05:00
syl20bnr a8c9516c8b Correctly all spacemacs layer when 'all is specified 2015-02-14 23:41:07 -05:00
syl20bnr 94122defaf Add special value `add support for dotspacemacs-configuration-layers 2015-02-14 22:15:25 -05:00
syl20bnr d6a9b65061 Rename function to configuration-layers/declare-layers 2015-02-12 22:11:27 -05:00
syl20bnr 570f5e5e05 Move dotspacemacs/config to after-init-hook
Add log in `*Messages*` when executing `init` and `config` dotspacemacs
functions

resolves #588
2015-02-11 17:02:37 -05:00
syl20bnr b2f66f80f6 Add configuration-layer/layer-declaredp function 2015-02-10 23:22:26 -05:00
syl20bnr 3775115cf4 Fix error when attempting to delete an unknown package 2015-02-10 21:57:14 -05:00
syl20bnr 2efc66286c Display the number of backup packages in ido when selecting a slot 2015-02-10 21:56:44 -05:00
syl20bnr c7a5dc57dc Prompt before updating the packages 2015-02-10 21:56:18 -05:00
syl20bnr d177f3b020 Minor formatting change 2015-02-08 23:51:10 -05:00
syl20bnr 9075603d8a Fix [Update] for 24.3 2015-02-08 23:04:13 -05:00
syl20bnr 5f5c510019 Add non string variant of get package version functions 2015-02-08 23:03:52 -05:00