Commit Graph

504 Commits

Author SHA1 Message Date
Dimitri Fontaine
831c55aa27 Update the changelog and el-get-version.
The previous patches are changing the behavior in a user visible way for
recipes.  Update user documentation to reflect the change and upgrade the
minor version number to be able to track this.
2011-10-07 22:57:08 +02:00
Ryan C. Thompson
47970ef7b0 Fix reference to nonexistent variable 2011-10-07 12:46:34 -07:00
Dimitri Fontaine
5bda0cd8ec Have `el-get-init' consider the 'builtin method rather than duplicating code. 2011-10-04 11:53:35 +02:00
Kyle Hargraves
a54ad73fee Add el-get-builtin method, so builtin packages can be "installed" simply 2011-10-03 16:13:07 -05:00
Dimitri Fontaine
d6dc416c74 Fix comments about builtin package inits. 2011-10-02 19:50:17 +02:00
Dimitri Fontaine
9eb20c5d6b Still process recipe's and user's init code for builtin recipes, per #406. 2011-10-02 19:48:21 +02:00
Dimitri Fontaine
5c7f038590 Implement :builtin recipe property and use it for package.rcp, per #406. 2011-10-01 22:31:07 +02:00
Dimitri Fontaine
e8edbf7f40 el-get-version 4.0.2 only includes package.el from Emacs24, as the package recipe. 2011-09-30 20:57:06 +02:00
Dimitri Fontaine
5f5b4132f7 Blind fix bug in el-get-load-package-user-init-file call when el-get-is-lazy. See #405. 2011-09-28 21:16:59 +02:00
Dimitri Fontaine
8876d9ede2 Merge branch 'refactoring'
This refactoring is about cleaning up the code and separating it into
smaller files (think modules).  We begin to change the internal API to
always receive PACKAGE as a symbol, and the main change is how we deal with
the dependencies.

Rather than allow parallel async operations to happen, we solve the
dependencies upfront by doing a topological sort of the :depends we
recursively read in the recipe files.  That allows us to then install only
one package at a time and to avoid initializing the same package twice in
case of multiple reverse depends in the selection.

That in turns allows to simplify the autoload and the main install code a
lot and goes a long way to fix the bug from issue #400 where a package is
said installed but its autoload are not yet available.

The el-get-methods are also splitted each into their own file and the new
function `el-get-register-method' allows to easily add some more privately
if necessary, and should ease contributing new ones too.

This refactoring merge also brings in some test cases.

The main reason why we can merge such a big refactoring now is that the
master's branch targets el-get contributors or elisp hackers that will
handle the breakage.  The el-get-install.el installer file is targeting the
branch "3.stable" where things still work.  This all new setting of the code
is intended for release 4.1, not before.

Conflicts:
	el-get.el
2011-09-23 23:05:02 +02:00
Dimitri Fontaine
f760b1a63a Autoloads fixes. 2011-09-23 14:06:29 +02:00
Dimitri Fontaine
6b6f06567f Fix problems with autoloads.
Note that the new dependencies code ensures that we have only one package
currently installing at any time, so that we don't need timer and defered
autoloads updating anymore.  That simplifies the code a lot, and I think it
fixes issue #400, will check that next.
2011-09-23 11:41:24 +02:00
Dimitri Fontaine
a2202e9212 Use our new dependencies tracking code at init time too. 2011-09-23 11:39:12 +02:00
Dimitri Fontaine
8db0c4d49b Fix the refactoring so that it actually works.
This includes teaching methods that they now work with a symbolp PACKAGE,
some more cleaning up, and some load-path adjustments now that a part of the
code is in a subdirectory (methods).

Also include some of the tests used to convince oneself that the refactoring
didn't break any and all use cases for el-get, with some rough documentation
about how to use them.
2011-09-22 21:48:11 +02:00
Hannu Koivisto
1cbff4af37 Quote arguments when using start-process-shell-command
Fixes installation failure on cases when $HOME contains spaces.

Signed-off-by: Dimitri Fontaine <dim@tapoueh.org>
2011-09-22 17:27:36 +02:00
Dimitri Fontaine
7a4a744d98 Simplify `el-get-install' and dependencies management.
This refactoring branch will need some testing at some point…
2011-09-21 16:06:18 +02:00
Dimitri Fontaine
c273d96fac Get rid of el-get-demand1. 2011-09-20 17:55:14 +02:00
Dimitri Fontaine
0433ca0ce9 Refactoring it all: a beginning. No time for testing yet, just showing ideas. 2011-09-20 15:15:52 +02:00
Julien Danjou
0417d19177 Merge el-get-do-install and el-get-demand1
It's used only once.

Signed-off-by: Julien Danjou <julien@danjou.info>
2011-09-20 10:54:10 +02:00
Dimitri Fontaine
c9a772db9b Adjust the comment version string to 4.0. 2011-09-19 10:55:20 +02:00
Dimitri Fontaine
c269dff963 Update el-get-version to 4.0.0.
This is the first version number of the 4.0 branch, I will update the third
number every once in a while on the road to 4.1 (next stable version).
2011-09-17 21:20:09 +02:00
Dimitri Fontaine
ea8cf2c16e Symbolic commit to open master's branch for 4.0 development. 2011-09-15 22:40:30 +02:00
Dimitri Fontaine
61504f3f8a Prepare 3.1 release.
Some bugs are blocking users in 2.stable and the code diverted enough to
warrant releasing 3.1 rather than spending time fixing 2.stable.  Also, it's
been a long time without release and we have some excellent new
features (dependency support, el-get-list-packages, etc).

The el-get recipe is already refering to the 3.stable branch, that will be
created from this commit.
2011-09-15 22:07:54 +02:00
Dimitri Fontaine
e9baf31d36 Fix a bug in el-get-init-and-install.
We were failing to find the package in the list of packages to init and so
considered them for installation again.  As el-get-install will respect the
current package status, that would result in the package not being
initialized at startup.

Bug found while reading the code to prepare the 3.1 release.
2011-09-15 22:05:03 +02:00
Dimitri Fontaine
e7b9ba829b Fix a bug in el-get-is-lazy case when using el-get-user-package-directory. 2011-09-11 22:48:35 +02:00
Dimitri Fontaine
ee1e1b41fa Code review for el-get-user-package-directory.
That was called el-get-configs-dir, rename to stick to existing emacs
facilities such as user-init-file and user-emacs-directory.  Also move the
loading code into a new function el-get-load-package-user-init-file, so that
it's possible to call it by itself, and so that it can log what happens.
2011-09-11 19:55:09 +02:00
Dimitri Fontaine
05b6435868 Document `el-get-configs-dir' and add a changelog entry. 2011-09-11 18:59:55 +02:00
Saraphim
1eac501e4b Add support for package configs with el-get-configs-dir
Support lazy loading of config files and load all config files before :after

Fixed typo in el-get-configs-dir comment

Add a wrapping function for user init file paths
2011-09-11 17:44:57 +02:00
Dimitri Fontaine
6d86094816 Rename recipe files from *.el to *.rcp, assorted changes. 2011-09-06 21:22:46 +02:00
Dimitri Fontaine
034896645e Fix late night induced bug (forgot to remove a closing paren) 2011-09-04 11:54:52 +02:00
Dimitri Fontaine
4a97ad740f Stop using rather than ... for people whose systems won't default into utf-8. 2011-09-03 21:57:56 +02:00
Dimitri Fontaine
ff0fa22cb5 Rely more on el-get-notify', which has a fallback to message'. 2011-09-03 21:51:51 +02:00
Julien Danjou
2640eb598c Merge pull request #376 from pasja/fix-http
Fix http
2011-08-27 02:16:31 -07:00
David Miller
bf1bc800f5 Add extra :type options to el-get-sources docstring 2011-08-26 03:11:08 +02:00
Pásztor János
0db5b99e03 fix el-get-filename-from-url regexp (do not replace '+') 2011-08-25 17:17:58 +02:00
Dimitri Fontaine
f4d7495f34 Don't bother checking if a growl' function exists, just redefine el-get-growl' when we need it. 2011-08-22 12:29:32 +02:00
Dimitri Fontaine
37f42a89c8 Add support for :branch in git recipes. 2011-08-19 15:14:06 +02:00
Dimitri Fontaine
ac1b3c002b Fix el-get-post-install-build issue, (1+ try) 2011-08-19 13:16:14 +02:00
Dimitri Fontaine
860c18ccc8 Fix the emms recipe, and some problems with el-get-build and lambdas. 2011-08-18 22:44:16 +02:00
Dimitri Fontaine
0d4b9c9dda Update changelog 2011-08-17 18:17:22 +02:00
Dimitri Fontaine
972c25300a byte-compile: Add a process-send-eof to stdin in the async case 2011-08-17 12:05:27 +02:00
Dimitri Fontaine
879d9d89d3 shell-quote-argument -l full pathname in `el-get-byte-compile-process' 2011-08-16 16:35:09 +02:00
Dimitri Fontaine
9dbd25f1c5 Fix filename from url handling, and fix the ack recipe to use a :localname. 2011-08-16 16:26:18 +02:00
Dimitri Fontaine
ad222b13ca Fix M-x el-get-self-update to follow el-get-script' rather than blindly search for el-get in el-get-dir' 2011-08-16 15:51:04 +02:00
Dimitri Fontaine
177d1356ff Re implement el-get-http-tar-cleanup-extract-hook in pure elisp (windows users called) 2011-08-16 15:26:26 +02:00
Dimitri Fontaine
9c56712e80 Fix `el-get-byte-compile-process' to handle filenames containing spaces. 2011-08-16 12:02:14 +02:00
Dimitri Fontaine
13eba62d46 Properly fix the new byte compiling arrangment, this time with enough local testing. 2011-08-15 14:49:17 +02:00
Dimitri Fontaine
28bdbe3b56 Finish fixing. Should find another test, el-get-self-update gets annoying. 2011-08-14 22:27:20 +02:00
Dimitri Fontaine
456652e13c Fix el-get-build, broken by previous commit. 2011-08-14 22:24:59 +02:00
Dimitri Fontaine
6744a63368 Rewrite byte compiling to use stdin rather than command line, should fix issues #310 and #312 etc. 2011-08-14 22:15:06 +02:00
Dimitri Fontaine
12441229c6 Merge pull request #339 from dabrahams/volatile/customizations
Switch default entry format for el-get-sources
2011-08-14 10:33:57 -07:00
Dimitri Fontaine
0f7198fe01 Merge pull request #332 from jglee1027/de064a1368f5e48c1329cb128c488ede793d897c
Add Package Menu
2011-08-14 09:54:48 -07:00
Dimitri Fontaine
8d6071d4dd Add support for :pkgname to emacswiki recipes. 2011-08-14 18:49:09 +02:00
Dimitri Fontaine
d5a72eac97 Merge pull request #314 from glasserc/emacsmirror-2
Improve support for emacsmirror packages
2011-08-14 09:32:13 -07:00
Dimitri Fontaine
f9b0200eb9 Clarify el-get-byte-compile docstring, per issue #302 2011-08-14 17:49:46 +02:00
Dave Abrahams
598e0161cb Switch default entry format for el-get-sources
Having just a symbol in el-get-sources is now only useful for backward
compatibility.
2011-08-05 14:17:45 -04:00
Lee Jong Gyu
de064a1368 Add Package Menu
* Implement 'el-get-list-packages'
(defun el-get-list-packages ()
  "Display a list of packages."

* Implement 'el-get-package-menu-sort-by-column'
Sort the package menu by the last column clicked on.
2011-07-28 13:15:09 +09:00
Dave Abrahams
a3d3834313 Handle the new flexibility of :autoloads in the customization interface 2011-07-26 11:14:10 -04:00
Dave Abrahams
ece7d19c3e Move "deprecated" el-get-sources elements to the end 2011-07-26 11:14:10 -04:00
Dave Abrahams
89d497cb8d Clean up whitespace violations 2011-07-26 11:14:10 -04:00
Dave Abrahams
2e6ce07b46 Make :website and :description customizable 2011-07-26 11:14:10 -04:00
Dave Abrahams
e59179a232 Make :lazy customizable 2011-07-26 11:14:10 -04:00
Dave Abrahams
f670be835e Make :prepare customizable 2011-07-26 11:14:10 -04:00
Dave Abrahams
4be83af695 Make :repo customizable 2011-07-26 11:14:10 -04:00
Dave Abrahams
efe08bafdf Make :post-init customizable 2011-07-26 11:14:10 -04:00
Ethan Glasser-Camp
e1206258c5 Improve support for emacsmirror packages
Provide a shortcut, :type emacsmirror.

(:name foo :type emacsmirror)

is equivalent to

(:name foo :type git :url "http://github.com/emacsmirror/foo.git")

except that the URL is user-configurable by customize.  We default to
http, but the user can choose https or git protocols if they prefer.

Additionally, we retrofit old recipes to use this shortcut.  Any
package whose name matches its emacsmirror repo name
qualifies.  Certain packages, such as sunrise-x-*, are no longer
entire git repositories, and so don't qualify.  bookmark+
does not qualify because its name in emacsmirror is spelled
bookmark-plus.  Similarly, color-theme-zenburn is just called zenburn,
so cannot be simplified this way.

We also add a few new recipes for emacsmirror packages, since it's so easy.
2011-07-14 19:48:20 -04:00
Julien Danjou
cdd9ae7b43 Merge pull request #293 from rlph/master
Last package name not showing up in completion lists
2011-06-28 10:02:50 -07:00
Dimitri Fontaine
027f975fd5 Fix el-get-package-method', which allows calling el-get-http-tar-cleanup-extract-hook' (Fixes #278) 2011-06-28 17:00:07 +02:00
Rafael Sanchez
743d2026f3 Fix to get last package name for package completion. 2011-06-28 06:34:12 -07:00
Dimitri Fontaine
94d01f7a41 It appears that help-mode is required at run time too. 2011-06-27 09:33:13 +02:00
Dimitri Fontaine
bd3b989772 Implement `el-get-extra-packages'
(defun el-get-extra-packages (&rest packages)
  "Return installed or required packages that are not in given package list"
2011-06-26 23:15:49 +02:00
Dimitri Fontaine
4336f782f8 Fix a bug in `el-get' handling of its &rest arguments (either symbols or lists). 2011-06-26 22:34:59 +02:00
Dimitri Fontaine
91f1c91f90 Fix issue #289 where dependencies where not followed at init time. 2011-06-26 00:16:25 +02:00
Dimitri Fontaine
43c4d2ed03 Cleanup `el-get-post-install-build' function. 2011-06-25 23:13:06 +02:00
Dimitri Fontaine
e59453a279 Merge pull request #288 from dabrahams/debuggable
defun el-get-post-build rather than play with lambdas here.
2011-06-25 14:08:45 -07:00
Dimitri Fontaine
eb24faf8cf Fix issue #284: the condition-case added in `el-get-start-process-list' had been made over more than one statement. 2011-06-25 22:56:29 +02:00
Dimitri Fontaine
d09bff77e3 Double-quote websites in recipes we make from emacswiki listing. 2011-06-25 17:09:20 +02:00
Dimitri Fontaine
602c674962 We need to require help-mode to be able to byte-compile el-get now. 2011-06-25 17:07:14 +02:00
Dave Abrahams
294af529ff Fewer lambdas means easier debugging 2011-06-24 22:24:33 -07:00
Rüdiger Sonderfeld
771c9564a2 el-get-describe: list dependencies. 2011-06-24 16:35:14 +02:00
Rüdiger Sonderfeld
aa7b523031 el-get-describe: use `el-get-describe-princ-button'. 2011-06-24 16:28:11 +02:00
Rüdiger Sonderfeld
a92b7b31a7 el-get-describe: added update,remove,install buttons. 2011-06-24 16:25:04 +02:00
Rüdiger Sonderfeld
c09edd06c0 el-get-describe: Added clickable link to recipe 2011-06-24 15:58:59 +02:00
Rüdiger Sonderfeld
7c46ec38d4 el-get-describe: Made website clickable. 2011-06-24 15:38:26 +02:00
Dimitri Fontaine
5a513346f0 Fix el-get-emacswiki-refresh to store website url as a "string". 2011-06-24 15:11:40 +02:00
Julien Danjou
f5b30a3613 el-get-describe: URL is a button 2011-06-24 15:00:21 +02:00
Dimitri Fontaine
3689cd53a5 Add support for :website in M-x el-get-emacswiki-refresh. 2011-06-24 11:51:34 +02:00
Dimitri Fontaine
194148906c Merge pull request #275 from ruediger/doc
Added el-get-describe: Describes packages (similar to describe-*).
2011-06-24 02:36:42 -07:00
Julien Danjou
f0cab3be0d Remove debug leftover
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-06-24 10:04:29 +02:00
Rüdiger Sonderfeld
4b31a7a49c Added el-get-describe: Describes packages (similar to describe-*).
The implementation is based on the code for `describe-function' from GNU/Emacs 24.
Added support for :website and :description package properties. Which are used by el-get-describe and el-get-describe-1.
2011-06-22 23:36:37 +02:00
Dimitri Fontaine
a63a836089 Edit inlined changelog 2011-06-22 12:00:30 +02:00
Dimitri Fontaine
98c5958246 Get rid of `el-get-standard-packages' now that we rely entirely on package status instead. 2011-06-22 11:50:49 +02:00
Dimitri Fontaine
8f886c07d2 `el-get' now defaults to caring about packages known "required" and "installed" from the status file.
This should bring a much easier to understand semantics, near of that of
apt-get and friends: by default, any installed package is automatically
initialized at next startup without special care.  If you don't need local
recipes, you don't need to edit and maintain any `el-get-sources'.

It's still possible to manually prepare a list of packages to install, so
that you can share your setup between multiple installations.  To do that,
give the package list (names or symbols) to the (el-get) call in your setup.
This way you can also maintain specific lists depending on system or network
or whatever is useful for you.  That's the advanced setup, documented.
2011-06-22 11:38:40 +02:00
Dimitri Fontaine
086010b29e `el-get-status-file' is now a defcustom. 2011-06-22 10:13:33 +02:00
Dimitri Fontaine
a3f11bc478 Don't error when a package is already installed in el-get-install', as we didn't change el-get' itself yet. 2011-06-22 00:33:33 +02:00
Dimitri Fontaine
8a2b6c6aaf Begin `el-get-sources' usage cleaning where the relevant information is the package status. 2011-06-22 00:01:53 +02:00
Dimitri Fontaine
b6e4ef5a12 Fix a bug just introduced in `el-get-dependencies' 2011-06-21 23:56:46 +02:00
Dimitri Fontaine
f398724023 Have el-get-package-def' consider el-get-sources' just another recipe source. 2011-06-21 23:21:36 +02:00
Dimitri Fontaine
ceab0d9bdc Get rid of the 'merge argument in (el-get-read-all-recipes 'merge), makes no sense. 2011-06-21 23:13:48 +02:00
Dimitri Fontaine
e7c151fa36 Switch to relying on package statuses in `el-get-package-types-alist' 2011-06-21 22:52:08 +02:00