From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: cl-defstruct-based package.el, now with ert tests and no external tar! Date: Tue, 25 Jun 2013 09:58:15 -0400 Message-ID: References: <87y5cx0wh7.fsf@yandex.ru> <87ppy7e5ke.fsf@lifelogs.com> <87vc5x1uzj.fsf@yandex.ru> <87txlcdyl1.fsf@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1372168704 5373 80.91.229.3 (25 Jun 2013 13:58:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 25 Jun 2013 13:58:24 +0000 (UTC) Cc: Dmitry Gutov , Daniel Hackney , Emacs development discussions To: Sebastian Wiesner Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jun 25 15:58:24 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UrTlG-00079k-8r for ged-emacs-devel@m.gmane.org; Tue, 25 Jun 2013 15:58:22 +0200 Original-Received: from localhost ([::1]:56309 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UrTlF-0004xb-Vd for ged-emacs-devel@m.gmane.org; Tue, 25 Jun 2013 09:58:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UrTlC-0004vA-MU for emacs-devel@gnu.org; Tue, 25 Jun 2013 09:58:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UrTlB-0004ym-CO for emacs-devel@gnu.org; Tue, 25 Jun 2013 09:58:18 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:52389) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UrTlB-0004yd-7z for emacs-devel@gnu.org; Tue, 25 Jun 2013 09:58:17 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFMCppA/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLDiYSFBgNJIgeBrEfkA6NGYNxA5JbA5IcgV6DE4FK X-IPAS-Result: Av4EABK/CFFMCppA/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLDiYSFBgNJIgeBrEfkA6NGYNxA5JbA5IcgV6DE4FK X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="17115809" Original-Received: from 76-10-154-64.dsl.teksavvy.com (HELO fmsmemgm.homelinux.net) ([76.10.154.64]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 25 Jun 2013 09:58:11 -0400 Original-Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id F038BAE10E; Tue, 25 Jun 2013 09:58:15 -0400 (EDT) In-Reply-To: (Sebastian Wiesner's message of "Tue, 25 Jun 2013 14:19:08 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.182 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:161025 Archived-At: > Well, the list is long: Just to clarify: the reason why all this has changed without any discussion is because there was not supposed to be any API. `package.el' was only meant to provide an interactive UI, pretty much (plus a few functions, basically the autoloaded ones). > - "package-archive-contents" and "package-alist" have different > contents now, because the package descriptors have changed, Right. This won't be "fixed". > - "package-delete" takes a single argument only, but used to take two, We could definitely "fix this". > - "package-obsolete-alist" is gone, Won't be "fixed" either. > - "package-install" doesn't accept a package name anymore, It does (again). > Since most of these changes come from the introducing of > "package-desc" struct, I know that I am out of luck. Indeed. >> What API? > Well, the package.el API, that is, "package-install", > "package-delete", "package-alist", and unfortunately a number of > internal functions ("package--*"), too, because the public API is > somewhat limited. Tell us what you need, then, and we can improve it. As mentioned, what you think as the public API doesn't even really exist, so the design is very much open. > For an end user, it's just a declarative way to specify all packages > used in her configuration, I'd like to move in that direction: instead of letting the user say "install foo" and "uninstall bar", I'd like her to configure the "list of installed packages" (so adding an element installs it along with any dependencies, and removing from the list uninstalls the package (if it was installed) along with any of the dependencies which aren't needed any more). > installable with a single shell command, but for a package developer, > it maintains an isolated, automated and repeatable package environment > for testing. As you've discovered, Emacs's development is very messy, so it's no wonder I've never felt the need for such a controlled testing environment. > Essentially, it's Bundler, but for Emacs Lisp. That tells me more about what is Bundler than about what is Carton (I've never used Ruby or any of its tools) ;-) Stefan