* ELPA and EmacsWiki Updates @ 2007-09-02 20:38 Nordlöw 2007-09-02 21:05 ` Tom Tromey 0 siblings, 1 reply; 13+ messages in thread From: Nordlöw @ 2007-09-02 20:38 UTC (permalink / raw) To: help-gnu-emacs I am using a lot of Emacs Extensions from EmacsWiki for example the brilliant Icicles. Can ELPA or some other package automatically synchronize/update my copies of these extensions with some nice Emacs Package? When I do elpa-refresh-contents() and then elpa-list- packages() I "only" get the extensions given below. Can I add repositories to elpa as I can I can with apt? Thanks in advance, Nordlöw Package Version Status ------- ------- ------ abacus 1.0.2 available archive-downloader 1.1 available blank-mode 6.6 available bubbles 0.3 available cal-china-x 0.6 available caps-mode 1.0 available changelog-url 0.1 available chess 1.96 available compilation-recenter-end 2 available css-mode 1.0 available dictionary 1.8.7 available dired-isearch 0.3 available emacs 23.0 emms 3.0 available erc 5.2 available etags-select 1.1 available gdb-shell 0.2 available gtk-look 5 available highlight-parentheses 0.9.1 available highline 4.2 available iresize 0.2 available javascript 1.99.8 available jimb-patch 1.1 available kill-ring-search 1.1 available lambdacalc 1.0 available less 0.2 available light-symbol 0.1 available lisppaste 1.2 available lua-mode 20070608 available muse 3.11 available newsticker 1.10 available package 0.5 available sgftree 0.1 available smart-operator 0.9 available sudoku 0.3 available tex-math-preview 4 available url 1.16 wajig 0.53 available weblogger 1.2 available worklog 2.4.2 available wtf 2.0 available xml-rpc 1.6.4 available xtide 4 available ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: ELPA and EmacsWiki Updates 2007-09-02 20:38 ELPA and EmacsWiki Updates Nordlöw @ 2007-09-02 21:05 ` Tom Tromey 2007-09-03 1:53 ` Drew Adams 2007-09-03 5:50 ` Edward O'Connor 0 siblings, 2 replies; 13+ messages in thread From: Tom Tromey @ 2007-09-02 21:05 UTC (permalink / raw) To: help-gnu-emacs >>>>> "Nordlöw" == Nordlöw <per.nordlow@gmail.com> writes: Nordlöw> I am using a lot of Emacs Extensions from EmacsWiki for example the Nordlöw> brilliant Icicles. Can ELPA or some other package automatically Nordlöw> synchronize/update my copies of these extensions with some nice Emacs Nordlöw> Package? There is some other installer on the wiki that might help here. I don't know, I haven't used it (since it doesn't have the features I want). FWIW, the reason that Icicles is not in ELPA is that the Icicles author did not want it there. As for other things not being in ELPA, the general reason for this is that I probably haven't gotten around to it yet. Smaller (single file) packages tend to require some comment fixes first, and I'm not always clear on what people actually use (and what therefore would be worthwhile to upload). Larger packages often require some extra preparation. And, finally, I like to coordinate with maintainers so that: * Any needed patches go upstream * The package has a "nice" activation approach (autoloads comments in place, whatever), and * so that maintainers know to send me new versions when released I'm happy to have help with any or all of this :-). If there's enough demand I'll move the ELPA repository to a site like savannah so that other folks can do uploads as well. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: ELPA and EmacsWiki Updates 2007-09-02 21:05 ` Tom Tromey @ 2007-09-03 1:53 ` Drew Adams 2007-09-03 20:59 ` Tom Tromey 2007-09-03 5:50 ` Edward O'Connor 1 sibling, 1 reply; 13+ messages in thread From: Drew Adams @ 2007-09-03 1:53 UTC (permalink / raw) To: tromey, help-gnu-emacs > Nordlöw> I am using a lot of Emacs Extensions from EmacsWiki for > Nordlöw> example the brilliant Icicles. Can ELPA or some other > Nordlöw> package automatically synchronize/update my copies of > Nordlow> these extensions with some nice Emacs Package? > > There is some other installer on the wiki that might help here. I > don't know, I haven't used it (since it doesn't have the features I > want). > > FWIW, the reason that Icicles is not in ELPA is that the Icicles > author did not want it there. Hmm. That's not quite right, Tom. What I said at the time was that it seemed (then) that some package system (possibly ELPA) would soon be added to Emacs, and I was intending to wait to see what Icicles changes might be needed to adapt it for use with the (future) standard package system. Now, it looks like there will be no such standard Emacs package system. Why don't you email me off list to talk again about what I might need to do to make Icicles Elpable? However, it's also true that I said that (1) I appreciate the simplicity of uploading to Emacs Wiki, and (2) there are already several ways to download all of Icicles at once from the wiki (see http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Libraries#BulkIciclesDownload). I'm not sure what Nordlow needs beyond that, or whether he has even tried those ways. Anyway, my mind is not closed against ELPA for Icicles (or Icicles for ELPA). I'm not too clear on what I would need to do - feel free to contact me about it. Especially if it's just a one-time change, and not too difficult, it's likely that I will do it. Is there a way for ELPA to get stuff automatically from Emacs Wiki - that is, stuff that has been made Elpable? That would be a big help. There are already several sites that provide Emacs-Lisp libraries (including Emacs-Lisp List, Emacs Wiki, and ELPA, not to mention sites of individual authors and group projects), and there is gnu-emacs-sources@gnu.org. It would be great if library authors could simply upload to one site and have the others feed off of that. (Via RSS? I don't know anything about RSS, so don't laugh if it's irrelevant here.) Emacs Wiki already mirrors the Emacs-Lisp List, but it would, IMO, be much better the other way around: it would be good if other sites that are more like simple repositories fed off of the code posted to the wiki. I prefer Emacs Wiki for its simplicity, including the ability - by anyone - to easily post or update code and associated documentation. In particular, the hyperlinking makes it a tremendous resource for everyone - much better, IMO, than just a check-in/out code repository. The wiki has no notion of packages, however, so it would be helpful if a package system such as ELPA could feed off of the wiki somehow. > As for other things not being in ELPA, the general reason for this is > that I probably haven't gotten around to it yet. Smaller (single > file) packages tend to require some comment fixes first, and I'm not > always clear on what people actually use (and what therefore would be > worthwhile to upload). Larger packages often require some extra > preparation. > > And, finally, I like to coordinate with maintainers so that: > > * Any needed patches go upstream > * The package has a "nice" activation approach (autoloads comments in > place, whatever), and > * so that maintainers know to send me new versions when released See my comments above. In my case, I don't make package "releases". I enhance or fix one library (or more) of the "package" and upload it immediately to the wiki, without changing anything else in the "package". I don't repackage, zip, tar, or anything else. I just diff the old and the new file, write a comment in the new file, and upload it - without the unchanged rest of the package. On the wiki I can easily compare previous revisions of a file and roll the current revision back if necessary. Users can easily see what has changed and download just a single library change. (They can also download the entire package, if they want.) I'm not against a package system, depending on what that means, but it would be ideal, I think, if packages were more or less virtual, updated automatically whenever a member file is updated on the wiki. Perhaps a wiki-based package system of some kind would be appropriate? If not, then it would be good if a standalone package system such as ELPA could feed itself off of the wiki. > I'm happy to have help with any or all of this :-). If there's enough > demand I'll move the ELPA repository to a site like savannah so that > other folks can do uploads as well. FWIW, I haven't noticed Savannah being anywhere near as simple to use as Emacs Wiki. No flames from Savannah-ites, please. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: ELPA and EmacsWiki Updates 2007-09-03 1:53 ` Drew Adams @ 2007-09-03 20:59 ` Tom Tromey 2007-09-03 23:28 ` Drew Adams 0 siblings, 1 reply; 13+ messages in thread From: Tom Tromey @ 2007-09-03 20:59 UTC (permalink / raw) To: Drew Adams; +Cc: help-gnu-emacs >>>>> "Drew" == Drew Adams <drew.adams@oracle.com> writes: >> FWIW, the reason that Icicles is not in ELPA is that the Icicles >> author did not want it there. Drew> Hmm. That's not quite right, Tom. What I said at the time was Drew> that it seemed (then) that some package system (possibly ELPA) Drew> would soon be added to Emacs, and I was intending to wait to see Drew> what Icicles changes might be needed to adapt it for use with Drew> the (future) standard package system. Ok. I must have misremembered, thanks for clearing that up. Drew> However, it's also true that I said that (1) I appreciate the Drew> simplicity of uploading to Emacs Wiki Yeah. That is simpler, for sure. I considered having ELPA download straight from the wiki, but I was not comfortable with the uncontrolled aspect of it. My concern was that if ELPA became commonplace, someone would upload a trojan. Drew> I'm not too clear on what I would need to do - feel free to Drew> contact me about it. Especially if it's just a one-time change, Drew> and not too difficult, it's likely that I will do it. I documented what to do for single-file packages on the web site. For a multi-file package, you must: * Put all the files into a .tar which has the package name and version. The files must be in a directory of the same name. E.g., the package "emms-3.0.tar" the files must all appear beneath the top-level directory "emms-3.0/" * Make a -pkg.el file in the package. This holds the call to define-package. E.g., "emms-3.0/emms-pkg.el". The define-package call sets the version number, description, dependencies, etc. * If you have a texinfo manual, make a .info file and a dir file and put those in the package directory in the tar. In other packages I've ELPA-ized, I made a 'make elpa' Makefile target to run info, run install-info, set the version number in the -pkg file, and make the tar. Drew> Is there a way for ELPA to get stuff automatically from Emacs Drew> Wiki - that is, stuff that has been made Elpable? That would be Drew> a big help. There isn't. For a multi-file package it would have to be pretty complicated. Drew> It would be great if library authors could simply upload to one Drew> site and have the others feed off of that. (Via RSS? I don't Drew> know anything about RSS, so don't laugh if it's irrelevant Drew> here.) Emacs Wiki already mirrors the Emacs-Lisp List, but it Drew> would, IMO, be much better the other way around: it would be Drew> good if other sites that are more like simple repositories fed Drew> off of the code posted to the wiki. Yeah. For the Wiki the security issue concerns me quite a bit, but maybe this could be fixed somehow. My plan for ELPA was to move to a hosting site that would more easily allow multiple maintainers, but I haven't done that yet. Drew> The wiki has no notion of packages, however, so it would be Drew> helpful if a package system such as ELPA could feed off of the Drew> wiki somehow. My experience based on looking at a *lot* of Emacs packages is that the solution will never be as convenient for authors as "dump it on the wiki". A nicely (IMO) functioning system will always require meta-data; the typical Emacs Lisp program handles this by a comment and dropping the problem on the user. Drew> See my comments above. In my case, I don't make package Drew> "releases" [...] Drew> I'm not against a package system, depending on what that means, Drew> but it would be ideal, I think, if packages were more or less Drew> virtual, updated automatically whenever a member file is updated Drew> on the wiki. I see. ELPA is not a good fit for what you want then. Most non-trivial Emacs packages are developed along more traditional lines, with releases and (non-wiki) version control, etc. ELPA was designed to solve a few problems that I encounter: * Download, install, and compile a package * Automatically handle package dependencies * Handle upgrading a package * Handle the case where an external package is incorporated into Emacs core but also has ongoing external development. This is the requirement behind much of the versioning support -- the idea is to always choose the newer package regardless of where it appears. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: ELPA and EmacsWiki Updates 2007-09-03 20:59 ` Tom Tromey @ 2007-09-03 23:28 ` Drew Adams 2007-09-06 0:14 ` Tom Tromey 0 siblings, 1 reply; 13+ messages in thread From: Drew Adams @ 2007-09-03 23:28 UTC (permalink / raw) To: tromey; +Cc: help-gnu-emacs Hi Tom, > Drew> However, it's also true that I said that (1) I appreciate the > Drew> simplicity of uploading to Emacs Wiki > > Yeah. That is simpler, for sure. I considered having ELPA download > straight from the wiki, but I was not comfortable with the > uncontrolled aspect of it. My concern was that if ELPA became > commonplace, someone would upload a trojan. I still think it might be worth pursuing. I don't see why the risks would be greater than what is already true for the wiki itself. If your concern is also about your site becoming infected, then perhaps this could be done on a different site - perhaps the wiki itself. > For a multi-file package, you must: <snip> OK, thanks; I will think about it. I certainly have no problem with defining an overall package-description file ("-pkg.el") that says what files are included or whatever other such info is needed. I don't use (or like much) a notion of a package "version" or "release" for my little offerings. I prefer to treat changes ("releases", "revisions" or whatever) at the level of individual files - each file in a package has its own update (version) number. A file's update number is incremented automatically in the file header each time I save the file - there's nothing to do. I think that such file-level version numbers can be more flexible for both authors and users, at least for single-author projects. In any case, it's what I prefer. So, if I were to upload a package to your site, it's unlikely that I would often declare a new release and update the package as a whole. The ELPA version is likely to be stale, due to my laziness. That you need some overall description of a package makes sense. That that description includes a list of files or other dependencies and a verbal explanation (how to install etc.) also makes sense. This is what your "package" file is, I guess. But why the constraint that a package have an overall version number? Unless, for instance, you offer multiple versions of the same package. In my case, I would like the package file to simply point to the requisite files in the package, and that's it. The same package file would then serve for any component file versions. The package file would only need to be changed if the set of component files changed. The second thing that I'm not crazy about, besides the notion of package version, is my needing to package everything up and deliver it (in a directory structure that fits your site etc.). I can do that, but, again, it's not likely that I'll do it often. Users wanting the most recent version will always find it on the wiki. Why not separate this physical packaging from the logical packaging that is simply declaring the set of needed files? Why couldn't the physical packaging for downloading etc. be done automatically by your site (or by whatever sites make packages available)? You might even consider delaying the physical packaging until some user actually requests the package (and then caching it for a given period). It would be great if an author could simply register a package description with your site, and have the site automatically periodically retrieve the requisite files from a specified source (which in my case would be Emacs Wiki). If such a system were in place: . It would require nothing from authors beyond a file specifying the package structure and component source file locations and a description. (An HTML form for the metadata could be an alternative to the file.) . It would require nothing from you beyond periodically (automatically) retrieving the latest source files from the specified source. You would control the sync tempo, but authors could also presumably upload an entire package to you on demand. . It would require nothing extra from users. At your site they could obtain info about available packages (descriptions, dependencies, sizes, dates etc.), and they could download an entire package in compressed form for their platform (tar, zip, whatever). . If such a system were in place on the wiki itself, then it would be just an interface for downloading files that belong together: the latest version of a package would be assembled and downloaded on the fly when needed. > Drew> Is there a way for ELPA to get stuff automatically from Emacs > Drew> Wiki - that is, stuff that has been made Elpable? That would be > Drew> a big help. > > There isn't. For a multi-file package it would have to be pretty > complicated. I take your word for it - I know nothing about these things. It just seems to me that it should be possible, even if not easy, and it would be a lot easier for everyone once it were in place. Single-site easy updating, multiple-site downloading. If someone wrote an on-the-fly package system, it could be used on multiple sites. They would each pull packages (their component files) from the wiki (or wherever) when needed or periodically, compress them, and package them (tar). Because of multiple-site caching, the wiki would be hit less for downloads. The download sites would be, well, just download sites - nothing more. The same software could run on the wiki itself, so it would also be a package download site. > Drew> It would be great if library authors could simply upload to one > Drew> site and have the others feed off of that. (Via RSS? I don't > Drew> know anything about RSS, so don't laugh if it's irrelevant > Drew> here.) Emacs Wiki already mirrors the Emacs-Lisp List, but it > Drew> would, IMO, be much better the other way around: it would be > Drew> good if other sites that are more like simple repositories fed > Drew> off of the code posted to the wiki. > > Yeah. For the Wiki the security issue concerns me quite a bit, but > maybe this could be fixed somehow. My plan for ELPA was to move to a > hosting site that would more easily allow multiple maintainers, but I > haven't done that yet. Perhaps others here could help address some of the security issues - I don't know anything about that. I believe that the main problem Emacs Wiki has is occasional spam, but it doesn't seem to be a great problem. Perhaps Alex Schroeder (Emacs Wiki) has a suggestion. > Drew> The wiki has no notion of packages, however, so it would be > Drew> helpful if a package system such as ELPA could feed off of the > Drew> wiki somehow. > > My experience based on looking at a *lot* of Emacs packages is that > the solution will never be as convenient for authors as "dump it on > the wiki". A nicely (IMO) functioning system will always require > meta-data; the typical Emacs Lisp program handles this by a comment > and dropping the problem on the user. Speaking for myself, I don't mind "registering" metadata with some package system. I imagine that that data is mainly a list of the component files (perhaps URLs) and any other dependencies that might exist. Is there more to it than that? Maybe I'm missing the boat here. The package system doesn't actually install packages for the user, does it? It just makes them available for download, right? And it controls (checks) dependencies and maybe other potential consistency gotchas, right? > Drew> See my comments above. In my case, I don't make package > Drew> "releases" > [...] > Drew> I'm not against a package system, depending on what that means, > Drew> but it would be ideal, I think, if packages were more or less > Drew> virtual, updated automatically whenever a member file is updated > Drew> on the wiki. > > I see. ELPA is not a good fit for what you want then. Most > non-trivial Emacs packages are developed along more traditional lines, > with releases and (non-wiki) version control, etc. I don't see how that approach (generally for large packages, it sounds like) necessarily conflicts with the low-key, trivial-package approach I use. IOW, if a project does have well-defined package versions and uses version control, so much the better for it. But why would not following that approach for some packages be an obstacle for ELPA? That ELPA needs to accomodate such needs when they arise I understand, but why would that mean that ELPA would treat every little package as if it too had such needs and imposed such constraints? I can see why ELPA allows package versions, for example, but why would it require them for all packages it handles? ELPA is also for non-non-trivial packages, no? You even handle single-file packages, so why would ELPA's package requirements be one-size-fits-all, modeled on large, multi-developer projects with version control, QA, and the whole nine yards? > ELPA was designed to solve a few problems that I encounter: > > * Download, install, and compile a package I figured it was only downloading. How does ELPA help a user install and compile? Do you provide make files etc. that one can use on various platforms, or how does it work? And is that a requirement for ELPA packages, or just a plus? That is, are all parts of that required, or could someone use ELPA only for downloading the most recent files in a package (or the files corresponding to some specific package version, if preferred)? > * Automatically handle package dependencies Dependencies between packages or just among the files of a package? > * Handle upgrading a package Is it also OK if there is no notion of upgrading, for some package? > * Handle the case where an external package is incorporated into Emacs > core but also has ongoing external development. This is the > requirement behind much of the versioning support -- the idea is to > always choose the newer package regardless of where it appears. I think I see. You mean that I can pull a package from the system and install it, even if I already have an older (or a newer?) version of the same package installed. Is that right? You say that that need motivates much of the ELPA versioning support. But what if that is not needed for a given package? Why not provide that for packages that need it, but let other packages be lightweight (no notion of version) if they don't need it? Again, as is no doubt obvious, I don't know much about this area. Wrt Icicles files: if it is easy to do so (just supply a package description and tar up the files), then I'll submit the files to ELPA. But I probably won't update the "package" very often, for the reasons I gave (mainly laziness). You might be right that ELPA is not a good fit for my homebrew "packages". I still don't know what Nordlow was asking for beyond the ability (already there on the wiki) of downloading all of the files at once. IOW, if there is a need for it then I can try ELPA, but I would like to hear what the need is. If you find any of the above worth discussing further, we can do so off list - or perhaps on the wiki. - Drew ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: ELPA and EmacsWiki Updates 2007-09-03 23:28 ` Drew Adams @ 2007-09-06 0:14 ` Tom Tromey 2007-09-06 17:00 ` Drew Adams 0 siblings, 1 reply; 13+ messages in thread From: Tom Tromey @ 2007-09-06 0:14 UTC (permalink / raw) To: Drew Adams; +Cc: help-gnu-emacs >>>>> "Drew" == Drew Adams <drew.adams@oracle.com> writes: Drew> If your concern is also about your site becoming infected, then Drew> perhaps this could be done on a different site - perhaps the Drew> wiki itself. My concern is that, if an automated approach becomes popular, then it is more worthwhile for people to try to slip in trojans. Of course there are no guarantees. But with ELPA I'm usually in touch with the authors, or I'm uploading an established package. With the Wiki there is little oversight. Even better would be some Debian-like web-of-trust thing, and package signing. But, that could come later I suppose, if needed. Drew> The ELPA version is likely to be stale, due to my laziness. Then that's another reason that ELPA is not a good match for your purposes. I don't think it is too valuable to users to host stale packages. Drew> But why the constraint that a package have an overall version number? Here is a (semi-) real example. ELPA includes EMMS. But, I've heard that someday EMMS will be included in Emacs. And, I suppose that EMMS will continue to be developed outside Emacs as well -- this is common for larger packages (gnus, erc, etc), especially because Emacs has a very slow release cycle. Suppose I install EMMS 3.0 now, then sometime later upgrade to Emacs 23 which (let's suppose) includes EMMS 3.1. How does package.el know which EMMS to use? This is the scenario I wanted to solve -- one that has bit me numerous times over the course of my Emacs life. Version numbers are a simple, conventional way to solve it. To continue the scenario, if EMMS 3.2 comes out, I can upload it to ELPA and folks can use it; and when they upgrade to Emacs 24 they won't have to do anything special. This isn't the only thing ELPA is good for, but it was one of the use cases I designed for. Drew> Why not separate this physical packaging from the logical Drew> packaging that is simply declaring the set of needed files? I thought about things like this. But, in the end I decided to try KISS as much as possible. And it turns out that most packages fit nicely into this approach. Drew> It would be great if an author could simply register a package Drew> description with your site, and have the site automatically Drew> periodically retrieve the requisite files from a specified Drew> source (which in my case would be Emacs Wiki). This opens the trojan door again. Also, IME it is rare for packages to be upload-ready. They typically don't follow the comment guidelines. Packages with dependencies on other packages need ELPA-specific comments as well. Your ideas are interesting though. I'm just not sure they would work that well in practice. E.g., I've looked through ELL numerous times. It is, unfortunately, full of broken links. That is something that is inevitable with a multi-site approach. Instead I was trying for something like "Ohio State Elisp Archive meets CPAN-ish trivial install". Drew> Maybe I'm missing the boat here. The package system doesn't Drew> actually install packages for the user, does it? It just makes Drew> them available for download, right? And it controls (checks) Drew> dependencies and maybe other potential consistency gotchas, Drew> right? Nope, it does download, dependency resolution (both at activation time and download time), and install. And deletion, too, whenever I get around to it. FWIW you can try out ELPA in just a couple minutes. There's an auto-installer on the web page. Run that, then: * M-x package-list-packages * "r" (re-reads the package list from ELPA) * "i" to mark for install, "x" to execute the installs I suggest 'bubbles' as a starter package. After it is installed, M-x bubbles. Drew> I can see why ELPA allows package versions, for example, but why Drew> would it require them for all packages it handles? Simplicity. Honestly I didn't consider that there would be a package without a version. Versioning is just, well, conventional and normal :). Drew> I figured it was only downloading. How does ELPA help a user install and Drew> compile? Do you provide make files etc. that one can use on various Drew> platforms, or how does it work? ELPA takes a very simple approach. It downloads the package and installs it in ~/.emacs.d/elpa/, then byte-compiles the .el files. It also extracts autoloads. If those things don't work, I simply don't upload the package. The auto-installer adds a line to your .emacs. When Emacs starts, package.el will do a dependency check and activate whatever packages it can. (So, e.g., you can change Emacs versions and things mostly still work.) Activation means modifying load-path and evaluating the autoloads. If the package contains a 'dir' file, package.el also modifies the info path. >> * Automatically handle package dependencies Drew> Dependencies between packages or just among the files of a package? Between packages. E.g., lisppaste or weblogger require xml-rpc. If you install one of the former, the latter will be installed. Likewise for activation. One other big goal for ELPA was to take the pain out of installing Emacs Lisp packages -- to focus on the user experience. We certainly could write something "dumb" (not meaning that in a bad way) that simply downloads a .el and drops it somewhere. In my view this only solves part of the problem... dependencies matter too. So do some things not easily enforceable in a tool: does the package have autoload comments in place? Does it respect Emacs namespace rules? Key-binding rules? Etc. I do try to review packages for things like this before uploading (e.g., that is why quilt.el isn't there). So, part of the mission here is raising the standards for Emacs add-ons. Drew> Is it also OK if there is no notion of upgrading, for some package? Since version numbers are assumed, all upgrading means is, install a newer version. Anyway, I hope I've answered your questions. I didn't answer them all since I thought some of the answers would be redundant given other answers. If I missed something important I'm happy to talk and talk about ELPA :-) Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: ELPA and EmacsWiki Updates 2007-09-06 0:14 ` Tom Tromey @ 2007-09-06 17:00 ` Drew Adams 2007-09-09 17:06 ` Tom Tromey 0 siblings, 1 reply; 13+ messages in thread From: Drew Adams @ 2007-09-06 17:00 UTC (permalink / raw) To: help-gnu-emacs > Drew> The ELPA version is likely to be stale, due to my laziness. > > Then that's another reason that ELPA is not a good match for your > purposes. I don't think it is too valuable to users to host stale > packages. I agree. On the other hand, some people will hear of ELPA and go to ELPA looking for packages. They won't necessarily know, for instance, to look for Icicles on Emacs Wiki. In that case, it could be helpful to make sure that ELPA has Icicles, even if it is not necessarily the latest and greatest. You might also consider hosting a list of "packages" or libraries that are not Elpable, with links to where to obtain them. Yes, those links will become outdated, but such a wide-ranging list could still help users. They might go first to ELPA looking for things, and it would then serve also as a directory of what is available. I'm guessing that you've considered this and decided against it, but I'll still make the suggestion ;-). > Drew> But why the constraint that a package have an overall > version number? > > Here is a (semi-) real example. ELPA includes EMMS. But, I've heard > that someday EMMS will be included in Emacs. And, I suppose that EMMS > will continue to be developed outside Emacs as well -- this is common > for larger packages (gnus, erc, etc), especially because Emacs has a > very slow release cycle. > > Suppose I install EMMS 3.0 now, then sometime later upgrade to Emacs > 23 which (let's suppose) includes EMMS 3.1. How does package.el know > which EMMS to use? > > This is the scenario I wanted to solve -- one that has bit me numerous > times over the course of my Emacs life. Version numbers are a simple, > conventional way to solve it. > > To continue the scenario, if EMMS 3.2 comes out, I can upload it to > ELPA and folks can use it; and when they upgrade to Emacs 24 they > won't have to do anything special. > > This isn't the only thing ELPA is good for, but it was one of the use > cases I designed for. That's clearly expressed, and I understand all that. My question is why impose version numbers on _all_ "packages" just to make them available at ELPA. IOW, the need for package versions for some packages does not imply such a need for all packages. You have a high standard for packages. You might consider also having a lower standard with correspondingly less ELPA support, thus allowing lighter weight packages to benefit from some of what ELPA offers. I'm thinking of both users and authors here - not every library needs to be a buttoned-down package at the level you've defined it, IMO. What's appropriate for a large, communal project is not necessarily also appropriate for a simple but perhaps multi-file library. > Drew> Why not separate this physical packaging from the logical > Drew> packaging that is simply declaring the set of needed files? > > I thought about things like this. But, in the end I decided to try > KISS as much as possible. And it turns out that most packages fit > nicely into this approach. I understand. I have no idea how much work would be involved in an approach such as I suggested. It's just something that seems good to me from the point of view of users and authors - for at least some (e.g. simple) packages. > Drew> It would be great if an author could simply register a package > Drew> description with your site, and have the site automatically > Drew> periodically retrieve the requisite files from a specified > Drew> source (which in my case would be Emacs Wiki). > > This opens the trojan door again. > > Also, IME it is rare for packages to be upload-ready. They typically > don't follow the comment guidelines. Packages with dependencies on > other packages need ELPA-specific comments as well. Again, I have nothing against adding "package-level" comments that are specific for ELPA. It would be preferable, of course, to do that in a form that could be used by multiple package systems, but perhaps it's not yet possible to standardize that. I personally don't want to get into one format for ELPA, another for GNU Emacs, another for ELL, and so on. But that's life, I guess. > Your ideas are interesting though. I'm just not sure they would work > that well in practice. E.g., I've looked through ELL numerous times. > It is, unfortunately, full of broken links. That is something that is > inevitable with a multi-site approach. Instead I was trying for > something like "Ohio State Elisp Archive meets CPAN-ish trivial > install". I too used to use OSELA, until it fell off the edge of the Earth. > Drew> Maybe I'm missing the boat here. The package system doesn't > Drew> actually install packages for the user, does it? It just makes > Drew> them available for download, right? And it controls (checks) > Drew> dependencies and maybe other potential consistency gotchas, > Drew> right? > > Nope, it does download, dependency resolution (both at activation time > and download time), and install. And deletion, too, whenever I get > around to it. > > FWIW you can try out ELPA in just a couple minutes. There's an > auto-installer on the web page. Run that, then: > > * M-x package-list-packages > * "r" (re-reads the package list from ELPA) > * "i" to mark for install, "x" to execute the installs > > I suggest 'bubbles' as a starter package. After it is installed, > M-x bubbles. OK, will do. > Drew> I can see why ELPA allows package versions, for example, but why > Drew> would it require them for all packages it handles? > > Simplicity. Honestly I didn't consider that there would be a package > without a version. Versioning is just, well, conventional and normal > :). So call me unconventional and abnormal ;-). > Drew> I figured it was only downloading. How does ELPA help a > user install and > Drew> compile? Do you provide make files etc. that one can use on various > Drew> platforms, or how does it work? > > ELPA takes a very simple approach. It downloads the package and > installs it in ~/.emacs.d/elpa/, then byte-compiles the .el files. It > also extracts autoloads. If those things don't work, I simply don't > upload the package. > > The auto-installer adds a line to your .emacs. When Emacs starts, > package.el will do a dependency check and activate whatever packages > it can. (So, e.g., you can change Emacs versions and things mostly > still work.) Ouch! I don't want to tell you what to do or not do, but I don't much like the idea of something (even something I initiate) mucking with my .emacs. Anyway, that's another story, and I'm sure you have good reasons for doing it the way you do. > Activation means modifying load-path and evaluating the autoloads. If > the package contains a 'dir' file, package.el also modifies the info > path. Ouch again! I sure hope there is a foolproof way to uninstall - a way that backs out all of the automatic changes that you make to a user's environment. Been bit by this kind of "helper" tool too much to welcome it blindly. > >> * Automatically handle package dependencies > > Drew> Dependencies between packages or just among the files of a package? > > Between packages. E.g., lisppaste or weblogger require xml-rpc. If > you install one of the former, the latter will be installed. Likewise > for activation. > > One other big goal for ELPA was to take the pain out of installing > Emacs Lisp packages -- to focus on the user experience. We certainly > could write something "dumb" (not meaning that in a bad way) that > simply downloads a .el and drops it somewhere. In my view this only > solves part of the problem... dependencies matter too. So do some > things not easily enforceable in a tool: does the package have > autoload comments in place? Does it respect Emacs namespace rules? > Key-binding rules? Etc. I do try to review packages for things like > this before uploading (e.g., that is why quilt.el isn't there). > > So, part of the mission here is raising the standards for Emacs > add-ons. Please consider not necessarily raising the standards for all Emacs add-ons to the same level. Not every contribution needs to be at your level of "packageness", IMO. > Drew> Is it also OK if there is no notion of upgrading, for some package? > > Since version numbers are assumed, all upgrading means is, install a > newer version. Right. I meant is it OK if there is no notion of version number. The answer seems to be no. > Anyway, I hope I've answered your questions. I didn't answer them all > since I thought some of the answers would be redundant given other > answers. If I missed something important I'm happy to talk and talk > about ELPA :-) Yes, thanks. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: ELPA and EmacsWiki Updates 2007-09-06 17:00 ` Drew Adams @ 2007-09-09 17:06 ` Tom Tromey 2007-09-09 18:46 ` Drew Adams 0 siblings, 1 reply; 13+ messages in thread From: Tom Tromey @ 2007-09-09 17:06 UTC (permalink / raw) To: Drew Adams; +Cc: help-gnu-emacs >>>>> "Drew" == Drew Adams <drew.adams@oracle.com> writes: Drew> You might also consider hosting a list of "packages" or Drew> libraries that are not Elpable, with links to where to obtain Drew> them. [...] Drew> I'm guessing that you've considered this and decided against it, Drew> but I'll still make the suggestion ;-). :-). But yeah, we've got the wiki and ELL for this. Those do a pretty good job. Drew> That's clearly expressed, and I understand all that. My question Drew> is why impose version numbers on _all_ "packages" just to make Drew> them available at ELPA. IOW, the need for package versions for Drew> some packages does not imply such a need for all packages. Yeah, I suppose that's true. I will think about it some more. Drew> Again, I have nothing against adding "package-level" comments Drew> that are specific for ELPA. Drew> It would be preferable, of course, to do that in a form that Drew> could be used by multiple package systems, but perhaps it's not Drew> yet possible to standardize that. ELPA uses a few things already defined by the Emacs Lisp reference guide -- the Version header (though ELPA needs a specific form for the value) and the start- and end-comments. The start comment is used to extract the package description. ELPA also defines a couple new headers: Package-Version (in case Version has the wrong format) and Package-Requires. The latter is used to express dependencies. >> The auto-installer adds a line to your .emacs. When Emacs starts, >> package.el will do a dependency check and activate whatever packages >> it can. (So, e.g., you can change Emacs versions and things mostly >> still work.) Drew> Ouch! I don't want to tell you what to do or not do, but I don't Drew> much like the idea of something (even something I initiate) Drew> mucking with my .emacs. Anyway, that's another story, and I'm Drew> sure you have good reasons for doing it the way you do. Yeah. The goal of the auto-installer was to make it dead simple to start using ELPA. It is easy not to do this -- just don't run it :-). You can still use ELPA if you install package.el by hand and edit your .emacs, or whatever, yourself. Basically I thought it would be fun and worthwhile to make it so people could be running package.el in a few seconds without needing to know anything... since after all one of my goals for ELPA is to make it possible for folks who aren't emacs lisp wizards to run stuff -- not to mention removing the drudgery for those of us who can do it, but would just rather not :-) >> Activation means modifying load-path and evaluating the autoloads. If >> the package contains a 'dir' file, package.el also modifies the info >> path. Drew> Ouch again! Drew> I sure hope there is a foolproof way to uninstall - a way that Drew> backs out all of the automatic changes that you make to a user's Drew> environment. Been bit by this kind of "helper" tool too much to Drew> welcome it blindly. The load-path stuff is all done dynamically, when package-initialize is called at startup. To remove a package you can just "rm -rf" the directory in ~/.emacs.d/elpa/. Eventually I'll write package deletion support for the package menu mode. I've put it off. Unloading something after Emacs has started and package.el has initialized can't really work. Emacs just isn't good at this kind of thing. There's unload-feature these days, but even that won't undo the additions of autoloads and stuff. So, if you want to delete something you have to restart Emacs. That sucks from a UI point of view. I keep going back and forth on the question of package activation. Right now, if a package is installed, package.el tries to activate it at startup. But, we could store a preference so you can choose not to have some activated. One way this would be nice is if package.el was really widely used, including to install 3rd party elisp in a distro. Distros, in my view, have a problem where for most users they want to enable autoloads for all additional packages, but some power users want to turn off certain things. In this situation package.el would allow deactivating the uninteresting things. Anyway I'm not sure whether this is worth implementing. On the minus side it adds more complexity and UI. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: ELPA and EmacsWiki Updates 2007-09-09 17:06 ` Tom Tromey @ 2007-09-09 18:46 ` Drew Adams 2007-09-09 20:37 ` Tom Tromey 0 siblings, 1 reply; 13+ messages in thread From: Drew Adams @ 2007-09-09 18:46 UTC (permalink / raw) To: help-gnu-emacs > >> The auto-installer adds a line to your .emacs. When Emacs starts, > >> package.el will do a dependency check and activate whatever packages > >> it can. (So, e.g., you can change Emacs versions and things mostly > >> still work.) > > Drew> Ouch! I don't want to tell you what to do or not do, but I don't > Drew> much like the idea of something (even something I initiate) > Drew> mucking with my .emacs. Anyway, that's another story, and I'm > Drew> sure you have good reasons for doing it the way you do. > > Yeah. The goal of the auto-installer was to make it dead simple to > start using ELPA. It is easy not to do this -- just don't run it :-). > You can still use ELPA if you install package.el by hand and edit your > .emacs, or whatever, yourself. But that means that a user must know how to do that manual tinkering. A novice will just choose the automatic behavior that does lots of stuff invisibly. That's helpful (s?he normally won't care about those details, presumably), but what to do when something goes wrong (of different from what was expected)? The problem is that lack of knowledge can make things easier when things are going as expected, and it can make things much harder when they are not. It's a classic help-the-user bind. To really help the user, it is important to go beyond a monolithic, totally automatic, push-button approach. To really help the user, tools need to also deal with trouble-shooting, preferences, and so on. Too often, there are only two widely separated levels (choices): (1) totally push-button: you push the button and relinquish all control from then on, or (2) you are completely on your own, from scratch. For #2, there is too often little doc etc., and the attitude of developers is that if you choose #2, then you should be able to figure things out on your own. What's really needed much of the time is a way to move smoothly along the continuum between #1 and #2. Emacs, in general, is helpful when something goes wrong - you can easily and interactively poke around to understand and learn about what's happening. This is mainly because much of it is implemented in Lisp and because of the integrated help system. > Basically I thought it would be fun and worthwhile to make it so > people could be running package.el in a few seconds without needing to > know anything... since after all one of my goals for ELPA is to make > it possible for folks who aren't emacs lisp wizards to run stuff -- > not to mention removing the drudgery for those of us who can do it, > but would just rather not :-) OK, but do you need to modify a user's .emacs to do that? Couldn't you use Customize? That would limit any modification of a user's .emacs to the standard, easily recognized, Customize section. And if the user has a `custom-file', then it would appear there instead. (FWIW, I always recommend that users have a `custom-file', and keep their .emacs for their own code.) IOW, can't you save the data you need without changing a user's .emacs in a non-standard way? > >> Activation means modifying load-path and evaluating the autoloads. If > >> the package contains a 'dir' file, package.el also modifies the info > >> path. > > Drew> Ouch again! > > Drew> I sure hope there is a foolproof way to uninstall - a way that > Drew> backs out all of the automatic changes that you make to a user's > Drew> environment. Been bit by this kind of "helper" tool too much to > Drew> welcome it blindly. > > The load-path stuff is all done dynamically, when package-initialize > is called at startup. To remove a package you can just "rm -rf" the > directory in ~/.emacs.d/elpa/. And edit your .emacs to remove the changes package.el made to it, including to the load-path? Anything else? ;-) > Eventually I'll write package deletion support for the package menu > mode. I've put it off. I'd think that would be the first thing to write ;-). Making it easy for users to install some new software is great, but it is even more important to make it easy for them to get back to exactly the way things were before they tried to install it. This is a lesson that Windows users learned on Day 2 - the hard way, unfortunately. I don't know. I'm all in favor of making things easy for users. But in practice that too often means imposing a bunch of stuff that a user might not really want (if fully aware) and that s?he finds it difficult to get rid off or bypass thereafter. (I'm not saying that this is the case for package.el.) I'm in favor of conscious opt-in as opposed to opt-out, and when I uninstall something I want it to be totally gone - (1) no vestigial files, directories, registry entries (Windows), or text added to any of my files, and (2) everything that was removed to install or run the program is put back in place. Again, I don't say there is any particular problem with package.el - I'm speaking generally. I'm leary of the push-button getting-started approach. It makes things easy, but too often installing is easy and removing is not so easy. There's a tradeoff when a program does things on behalf of a user; it's important to somehow let users still control things if they want to, in particular, to let them easily opt out of some of the automatically imposed behavior. And to let them (and help them) regain control later if they initially chose the automatic route. The tradeoff is that making things easy often means making details invisible - doing things behind the user's back. That's convenient, but it can have its disadvantages, as we all know. Here's the thing: As long as an Emacs tool or library does _not_ hold you by the hand, it can expect you to be ready and able to tackle Emacs Lisp to some extent. If, however, it takes you by the hand initially and purports to do some heavy lifting on your behalf to get you started, it should also accept the responsibility of staying by your side throughout the journey. IOW, if a tool gives you a push-button to get started, it should also provide help to you beyond that point. Anything less is unfair and unhelpful. > Unloading something after Emacs has started and package.el has > initialized can't really work. Emacs just isn't good at this kind of > thing. There's unload-feature these days, but even that won't undo > the additions of autoloads and stuff. So, if you want to delete > something you have to restart Emacs. That sucks from a UI point of > view. It's not a big problem for a user to restart Emacs. If that takes care of removing everything that was added and reverts all changes that installing effected, then there is no problem. > I keep going back and forth on the question of package activation. > Right now, if a package is installed, package.el tries to activate it > at startup. But, we could store a preference so you can choose not to > have some activated. I have lots of Emacs stuff installed (available) that I don't start up automatically. I have lots of stuff that I don't even autoload - I just want it to be there (in my load-path) so I can use it when I want. I would think that installing and activating (depending on what is meant by the latter) would be two different choices for a user to make. Why couple them? > One way this would be nice is if package.el was really widely used, > including to install 3rd party elisp in a distro. Distros, in my > view, have a problem where for most users they want to enable > autoloads for all additional packages, but some power users want to > turn off certain things. In this situation package.el would allow > deactivating the uninteresting things. Yes, it would be good if package.el let you select stuff that you wanted to activate. Similarly, I think that a simple GUI for managing one's load-path might be useful. I think that Emacs users need to be aware of their load-path. I don't think it can be hidden from them without courting danger. But a good interface for viewing and managing the load-path and library dependencies could perhaps be developed. IIUC, package.el helps you manage package conflicts - for example, multiple versions of the same package. That feature could perhaps be integrated with a general load-path browser that would let you query, auto-detect, and manage other possible conflicts (whether from "packages" or anything else). > Anyway I'm not sure whether this is worth implementing. On the minus > side it adds more complexity and UI. One Tromey can only do so much! We are all grateful for your contributions. Even though package.el might not be a good fit for some of my own code, as you pointed out, I recognize that it can be helpful. Sorry for the generalizations, most of which probably aren't relevant to package.el. Something must have pushed my button ;-). ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: ELPA and EmacsWiki Updates 2007-09-09 18:46 ` Drew Adams @ 2007-09-09 20:37 ` Tom Tromey 2007-09-09 21:41 ` Drew Adams 0 siblings, 1 reply; 13+ messages in thread From: Tom Tromey @ 2007-09-09 20:37 UTC (permalink / raw) To: Drew Adams; +Cc: help-gnu-emacs >>>>> "Drew" == Drew Adams <drew.adams@oracle.com> writes: Drew> What's really needed much of the time is a way to move smoothly Drew> along the continuum between #1 and #2. It depends. Not everybody wants to learn how to hack elisp, or has the time, or whatever. But this doesn't mean they should not use Emacs or install an external package or whatever... sure, we know it was better for us to learn all this stuff, but we probably live in Emacs (I do) -- but there are plenty of casual users as well. Anyway package.el can't disguise the nature of the Emacs on which it rests. If you hit a bug, elisp hacking skills are needed, no question there. Drew> OK, but do you need to modify a user's .emacs to do that? Drew> Couldn't you use Customize? I don't see how it could use customize. It needs to run code at startup. Is that possible with customize? Drew> And edit your .emacs to remove the changes package.el made to Drew> it, including to the load-path? Anything else? ;-) load-path is hacked at runtime, during package activation. The result isn't written to any file. I thought you were asking about deleting a single package. If you want to really uninstall package.el, then you must remove the bits from your .emacs, and then "rm -rf ~/.emacs.d/elpa/". Nothing else is modified... well, unless you customize some variable for use by a package you just deleted. I don't know how to handle that case. >> Eventually I'll write package deletion support for the package menu >> mode. I've put it off. Drew> I'd think that would be the first thing to write ;-). *Shrug*. There's a reason package.el is only version 0.5. Drew> I don't know. I'm all in favor of making things easy for Drew> users. But in practice that too often means imposing a bunch of Drew> stuff that a user might not really want (if fully aware) and Drew> that s?he finds it difficult to get rid off or bypass Drew> thereafter. In my view, package.el is just doing what an experienced Emacs user would do -- only, better than most folks bother, and regularized. The way this scratches my own itch -- since I'm not really a beginning Emacs user -- is that it eliminates the drudgery of package install. Of course there are always folks who want complete control, who (e.g.) detest the file name ~/.emacs.d/elpa/, or whatever. Not to be too harsh or anything, but they should probably roll their own. We'll all be happier that way :-) Drew> I would think that installing and activating (depending on what Drew> is meant by the latter) would be two different choices for a Drew> user to make. Why couple them? Convenience. Also, my thought experiment is: what external package is there that is useful enough for me to install but which, if it were incorporated into Emacs, should not be autoloaded? Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: ELPA and EmacsWiki Updates 2007-09-09 20:37 ` Tom Tromey @ 2007-09-09 21:41 ` Drew Adams 0 siblings, 0 replies; 13+ messages in thread From: Drew Adams @ 2007-09-09 21:41 UTC (permalink / raw) To: help-gnu-emacs > Drew> What's really needed much of the time is a way to move smoothly > Drew> along the continuum between #1 and #2. > > It depends. Not everybody wants to learn how to hack elisp, or has > the time, or whatever. But this doesn't mean they should not use > Emacs or install an external package or whatever... sure, we know it > was better for us to learn all this stuff, but we probably live in > Emacs (I do) -- but there are plenty of casual users as well. Casual users are the ones I'm worried about here. #1 gives them the impression that they can count on help when they get into trouble. "Would that it were..." > Anyway package.el can't disguise the nature of the Emacs on which it > rests. If you hit a bug, elisp hacking skills are needed, no question > there. > > Drew> OK, but do you need to modify a user's .emacs to do that? > Drew> Couldn't you use Customize? > > I don't see how it could use customize. It needs to run code at > startup. Is that possible with customize? When you save customizations, they are saved in your `custom-file', if that variable is defined. If not, they are saved in your .emacs. At startup, both .emacs and `custom-file' are loaded. So yes, customizations are read at startup. > Drew> And edit your .emacs to remove the changes package.el made to > Drew> it, including to the load-path? Anything else? ;-) > > load-path is hacked at runtime, during package activation. The result > isn't written to any file. OK, I misunderstood that. > I thought you were asking about deleting a single package. If you > want to really uninstall package.el, then you must remove the bits > from your .emacs, and then "rm -rf ~/.emacs.d/elpa/". That's what will bite a casual user. It's error prone, and it might require some knowledge of Emacs Lisp or OS commands. IMO, it should be just as easy to uninstall something as to install it. No - it should be easier. This is not as important for experienced users as it is for novices, but it helps everyone. > Nothing else is modified... well, unless you customize some variable > for use by a package you just deleted. I don't know how to handle > that case. > > >> Eventually I'll write package deletion support for the package menu > >> mode. I've put it off. > > Drew> I'd think that would be the first thing to write ;-). > > *Shrug*. There's a reason package.el is only version 0.5. ;-) > Drew> I don't know. I'm all in favor of making things easy for > Drew> users. But in practice that too often means imposing a bunch of > Drew> stuff that a user might not really want (if fully aware) and > Drew> that s?he finds it difficult to get rid off or bypass > Drew> thereafter. > > In my view, package.el is just doing what an experienced Emacs user > would do -- only, better than most folks bother, and regularized. The > way this scratches my own itch -- since I'm not really a beginning > Emacs user -- is that it eliminates the drudgery of package install. And that is a good thing. > Of course there are always folks who want complete control, who (e.g.) > detest the file name ~/.emacs.d/elpa/, or whatever. Not to be too > harsh or anything, but they should probably roll their own. We'll all > be happier that way :-) Agreed. > Drew> I would think that installing and activating (depending on what > Drew> is meant by the latter) would be two different choices for a > Drew> user to make. Why couple them? > > Convenience. That argues for being _able_ to do them at the same time, but not for being _obliged_ to do them together. > Also, my thought experiment is: what external package is > there that is useful enough for me to install but which, if it were > incorporated into Emacs, should not be autoloaded? You might want to try a package, without committing yourself to integrating it with your regular Emacs startup. It's not so much a question about "what package" but a question about what a user might want to do in different contexts. I have some libraries that I use all of the time, and others that I use only occasionally, on demand. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: ELPA and EmacsWiki Updates 2007-09-02 21:05 ` Tom Tromey 2007-09-03 1:53 ` Drew Adams @ 2007-09-03 5:50 ` Edward O'Connor 2007-09-03 19:57 ` Tom Tromey 1 sibling, 1 reply; 13+ messages in thread From: Edward O'Connor @ 2007-09-03 5:50 UTC (permalink / raw) To: help-gnu-emacs > Smaller (single file) packages tend to require some comment fixes > first[...] What sort of fixes? Could ELPA be enhanced to require fewer changes, or no changes at all, for the common case? Ted ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: ELPA and EmacsWiki Updates 2007-09-03 5:50 ` Edward O'Connor @ 2007-09-03 19:57 ` Tom Tromey 0 siblings, 0 replies; 13+ messages in thread From: Tom Tromey @ 2007-09-03 19:57 UTC (permalink / raw) To: help-gnu-emacs >>>>> "Ted" == Edward O'Connor <hober0@gmail.com> writes: >> Smaller (single file) packages tend to require some comment fixes >> first[...] Ted> What sort of fixes? Could ELPA be enhanced to require fewer changes, or Ted> no changes at all, for the common case? Usually it is just header comments. In particular package.el needs 2 things: * The header and trailer comments have to be correct according to the Emacs commenting guidelines. The header comment holds the package's name and also a comment describing the package; also the header and trailer are used by package-upload-file to find the boundaries of the file. * package.el needs a "Version:" header comment whose value is a "dotted numeric" version number. package.el uses this to handle upgrading packages, only activating a single version, etc. (There are other header comments that package.el can use, but this is the only required one.) I suppose we could dispense with these somehow, at the cost of reduced functionality. It does make it simpler for uploading if a file has these -- I don't have to enter anything by hand. And versioning, I think, is good for users. I also like to make sure that a file has proper ;;;###autoload comments. I think it is important that packages come ready for action -- a big part of the goal of ELPA is to make it simple for users to install and use Emacs packages. Tom ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2007-09-09 21:41 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-09-02 20:38 ELPA and EmacsWiki Updates Nordlöw 2007-09-02 21:05 ` Tom Tromey 2007-09-03 1:53 ` Drew Adams 2007-09-03 20:59 ` Tom Tromey 2007-09-03 23:28 ` Drew Adams 2007-09-06 0:14 ` Tom Tromey 2007-09-06 17:00 ` Drew Adams 2007-09-09 17:06 ` Tom Tromey 2007-09-09 18:46 ` Drew Adams 2007-09-09 20:37 ` Tom Tromey 2007-09-09 21:41 ` Drew Adams 2007-09-03 5:50 ` Edward O'Connor 2007-09-03 19:57 ` Tom Tromey
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).