From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Amy Grinn Newsgroups: gmane.emacs.devel Subject: Re: Objed maintenance Date: Thu, 02 May 2024 09:13:01 -0400 Message-ID: References: <85ttjyp9xh.fsf@gmail.com> <87cyqhvp3k.fsf@posteo.net> <87v843qfvf.fsf@posteo.net> <87v843owbj.fsf@posteo.net> <87ttjhpfue.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25652"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: clemera@posteo.net, emacs-devel@gnu.org To: Philip Kaludercic Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu May 02 15:13:47 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s2WFu-0006RJ-2E for ged-emacs-devel@m.gmane-mx.org; Thu, 02 May 2024 15:13:46 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s2WFL-0007Xf-OJ; Thu, 02 May 2024 09:13:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s2WFI-0007Wx-SW for emacs-devel@gnu.org; Thu, 02 May 2024 09:13:08 -0400 Original-Received: from mail-qk1-x730.google.com ([2607:f8b0:4864:20::730]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s2WFG-00033T-88 for emacs-devel@gnu.org; Thu, 02 May 2024 09:13:08 -0400 Original-Received: by mail-qk1-x730.google.com with SMTP id af79cd13be357-78edc49861aso589882385a.3 for ; Thu, 02 May 2024 06:13:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714655583; x=1715260383; darn=gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=9hS3E/++M2/ezbV2Ny7jTGJ5iS0Fjr7XiQxNQjrSEic=; b=irrZQRnTXvtxE2mkSDD3Mfz7QIJntoyOZmYFHpDRUQYSHl5iMZbf6tTEQI4lycTiDo SZlG0EUw06TfCFuDtmDym/bZAZ80ZayZG/mJXKs8RSlzg8cc/rA9stJJKFdNGEjMJKff nOvVHIgysRQ7CKfellUZnjmIkF0r/wXJdNnfFGs8pEOl7Og8+e3xY5x3aaxoAbxRHfG6 Oxcd5Or8kDiSPL+6eEhIUiarcvNjZ/cxv0RvvYjKedlo3YFSA9507ke4mmU2CBL6ozeJ 6q/hGvOcc9vrq7Oo4V1Ux1Bt1XQz7R9lrM4nLV1bNQLJrdDgJaZ1+QO3DahsheBZi4tY Zz6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714655583; x=1715260383; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9hS3E/++M2/ezbV2Ny7jTGJ5iS0Fjr7XiQxNQjrSEic=; b=n9VH9cSC2XDa8cH+BZzfBmD255qK8+Dv0Udgmy+6QIuBFTSqdC5jvymk+nWS5iDdKG cVz63QKZoQYewLjWGKdJqbyjAPL8m+WegCz/nVvzk6UrfJnBbbWaAcp64aETHLRFk9gX 7EUMIFBV7TkvoGeQTH5Rljdwp8TaaGPyWIuQYVBNrJcK6036ekowE7JdEORyYEIt2jmd uAu2Vcskd1CQmrii+VH18BaeKuVJ0M0h1coweRyXWxUt6bnbKumGJ1AzbAKOmW3lHNzG /OQ0taIGVRu3brClnUD/l873+ipoYOaOioeLUqHo+gkAqOu3N5YHCVj8F1VwYPbmHBjW MR0A== X-Forwarded-Encrypted: i=1; AJvYcCUibBR/Y0nkEs/CBtss9m4vwCtbfEqopnXvs6m2I+G4D+SVQr7SH30FMDIc8wZYW+5gzJPCwiiRbWnWH5A/JyBj/9MQ X-Gm-Message-State: AOJu0YzgcPBi7WXtlsJ2dEam7jJxRNjV3ENMXaUOqCBdADmDL+U9ZKnf q1Hv60fiX1leoMpjQFW3f7UUGxGeHpXFEV5WALUzb4ru8FLpLxUZlX3xpw== X-Google-Smtp-Source: AGHT+IFmHEq0rp01yJ6oGl0nSzHjoSOoC3cHw6rcO5tVVkxKR5g2CaL5QjdJPTXI4vPqLipCa693nA== X-Received: by 2002:a05:620a:190e:b0:790:fd52:7c5 with SMTP id bj14-20020a05620a190e00b00790fd5207c5mr2612765qkb.34.1714655583134; Thu, 02 May 2024 06:13:03 -0700 (PDT) Original-Received: from localhost (syn-024-236-139-114.res.spectrum.com. [24.236.139.114]) by smtp.gmail.com with ESMTPSA id r8-20020a05620a298800b0078f060405a3sm349143qkp.80.2024.05.02.06.13.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 May 2024 06:13:02 -0700 (PDT) In-Reply-To: <87ttjhpfue.fsf@posteo.net> (Philip Kaludercic's message of "Wed, 01 May 2024 18:06:01 +0000") Received-SPF: pass client-ip=2607:f8b0:4864:20::730; envelope-from=grinn.amy@gmail.com; helo=mail-qk1-x730.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:318574 Archived-At: Philip Kaludercic writes: > Amy Grinn writes: > >> Philip Kaludercic writes: >> >>> Amy Grinn writes: >>> >>>> Philip Kaludercic writes: >>>> >>>>> Amy Grinn writes: >>>>> >>>>>> Philip, I am using an unpublished dependency called key-game, >>>>>> which I wrote, which I thought might be useful for other modal >>>>>> editing packages, or for large packages like gnus. Anyways I >>>>>> will try to submit that package for publishing on GNU ELPA before >>>>>> objed is updated. >>>>> >>>>> That sounds good, just inferring from the name it sounds like >>>>> wizard or training program? Is this going to be a hard dependency >>>>> or a weak one? >>>> >>>> Yes, it's a utility package to help create key-based or >>>> command-based tutorial games. It's not a user-facing package, >>>> similar to boxy; I wouldn't want users to have to install it >>>> explicitly. To answer a potential followup, I also wouldn't want >>>> to split up the objed tutorial game into a separate package. That >>>> would hinder discoverability and make the installation of objed >>>> more complex. All that to say I believe key-game will be a hard >>>> dependency. >>> >>> That is a pity. I try to advocate for minimising dependencies, >>> especially if these aren't required for the core functionality of a >>> package. I don't know how your package is designed, but couldn't >>> you have a command like M-x objed-tutorial that reports an error if >>> the package is not installed (or proposes to install it)? FWIW I >>> don't think having a separate package is a good idea either -- too >>> much noise in the package list. >> >> Practically, the entrypoint for the objed tutorial game is a key-game >> macro call, so it would be difficult to rewire. Moreover, this would >> cause a similar issue in all other packages which might use key-game. >> This implies much more boilerplate which must be maintained >> separately in all those packages. >> >> I see your point that the tutorial is not *the* core feature of >> objed, but in my opinion it is *a* core part, and one that is more >> likely to be invoked by new users. I don't want to put up roadblocks >> for them. I think peer dependencies can be useful for extending a >> package, and objed already has such a dependency with avy, but this >> seems like an unnecessary installation step instead. >> >> I'm not as experienced with ELPA, so I would like to know more about >> the thought process behind discouraging direct dependencies. But >> again, I don't think key-game has any intrinsic features which an end >> user may want separate and apart from its use in other packages, and >> I would find it odd to suggest users add it to their selected >> packages. > > Abstractly: My advice is my advice, it is inherently biased. I take > that position, because of my experience, which is why I refuse to > install packages with more than 1-~2 transitive dependencies (I was > recently once again shocked by "ement"). As everything I say that > isn't part of the ELPA rules, you can ignore it if you think you know > better. My motivation to help with ELPA is rooted in my own interest > to have good packages, given my own understanding of what makes > packages good. > > Concretely: I don't know how key-game looks like, so I cannot really > say if it makes sense or not. I had something in mind like a generic > wizard framework, where you'd M-x key-game, then get prompted what > game to play (as defined by whatever package provides a game) and then > it would play that game. That's an interesting idea, kind of like man pages except for tutorial games. Centralizing the entrypoint for all key games is not exactly the direction I took though, in the current implementation each package is responsible for creating a separate entrypoint. I'll have to give it some more thought but I have a few concerns already. It probably doesn't address the boilerplate code issue I brought up but more importantly it seems like a dual dependency: objed-game requires key-game for its implementation and key-game requires objed-game to register itself as a valid game. If only one of the packages is loaded it would necessarily load the other I think? Currently, the command objed-game resides in a separate file which is autoloaded (along with key-game) IFF a user invokes it. When you have the time, I would like to know if you have a specific autoload/dependency scheme in mind and if there are any similar packages already in ELPA which act as a centralized interface for interacting with other packages. -- Best, Amy