all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [ELPA] New package: activities
@ 2024-01-26  0:59 Adam Porter
  2024-01-26  7:33 ` Philip Kaludercic
                   ` (3 more replies)
  0 siblings, 4 replies; 29+ messages in thread
From: Adam Porter @ 2024-01-26  0:59 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1825 bytes --]

Hi,

I'd like to add a new package to ELPA, activities.el.  It's hosted at:

   https://github.com/alphapapa/activities.el

Here's the description; please see the readme/manual for more details.

   Inspired by Genera's and KDE's concepts of "activities", this library 
allows the user to select an "activity", the loading of which restores a 
window configuration and/or frameset, along with the buffers shown in 
each window.  Saving an activity saves the state for later restoration. 
Switching away from an activity saves the last-used state for later 
switching back to, while still allowing the activity's initial or 
default state to be restored on demand.  Resuming an activity loads the 
last-used state, or the initial/default state when a universal argument 
is provided.

   The implementation uses the bookmark system to save buffers' 
states–that is, any major mode that supports the bookmark system is 
compatible.  A buffer whose major mode does not support the bookmark 
system (or does not support it well enough to restore useful state) is 
not compatible and can't be fully restored, or perhaps not at all; but 
solving that is as simple as implementing bookmark support for the mode, 
which is usually trivial.

   Integration with Emacs's `tab-bar-mode' is provided: a window 
configuration or frameset can be restored to a window or set of frames, 
or to a tab or set of tabs.

   Various hooks are (or will be–feedback is welcome) provided, both 
globally and per-activity, so that the user can define functions to be 
called when an activity is saved, restored, or switched from/to.  For 
example, this could be used to limit the set of buffers offered for 
switching to within an activity, or to track the time spent in an activity.

Please see the attached patch to elpa-packages.

Thanks,
Adam

[-- Attachment #2: 0001-elpa-packages-activities-New-package.patch --]
[-- Type: text/x-patch, Size: 730 bytes --]

From 96e673cb20366758e4b928f72e7a1491039fa635 Mon Sep 17 00:00:00 2001
From: Adam Porter <adam@alphapapa.net>
Date: Thu, 25 Jan 2024 18:53:38 -0600
Subject: [PATCH] elpa-packages (activities): New package

---
 elpa-packages | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/elpa-packages b/elpa-packages
index c73e8a066b..c77b650592 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -35,6 +35,9 @@
 
 ((ace-window		:url "https://github.com/abo-abo/ace-window")
  (ack			:url "https://github.com/leoliu/ack-el")
+ (activities           	:url "https://github.com/alphapapa/activities.el.git"
+   :release-branch "stable"
+   :doc "README.org")
  (ada-mode		:url nil
   :doc ("ada-mode.texi")
   :release-branch t)
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26  0:59 [ELPA] New package: activities Adam Porter
@ 2024-01-26  7:33 ` Philip Kaludercic
  2024-01-26 10:36   ` Adam Porter
  2024-01-26  7:45 ` Eli Zaretskii
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 29+ messages in thread
From: Philip Kaludercic @ 2024-01-26  7:33 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

Adam Porter <adam@alphapapa.net> writes:

> Hi,
>
> I'd like to add a new package to ELPA, activities.el.  It's hosted at:

Nice name ;)

>   https://github.com/alphapapa/activities.el

I don't have much to add on the code, just that if you are depending on
Emacs 29, you might be able to use `define-multisession-variable'
instead of having to depend on persist?

[...]

> + (activities           	:url "https://github.com/alphapapa/activities.el.git"
> +   :release-branch "stable"
> +   :doc "README.org")

There is no need to track the .info file in the repository, the build
server will generate that from :doc and overwrite it anyway.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26  0:59 [ELPA] New package: activities Adam Porter
  2024-01-26  7:33 ` Philip Kaludercic
@ 2024-01-26  7:45 ` Eli Zaretskii
  2024-01-26 10:42   ` Adam Porter
  2024-01-26  8:25 ` Eshel Yaron
  2024-01-29 21:48 ` JD Smith
  3 siblings, 1 reply; 29+ messages in thread
From: Eli Zaretskii @ 2024-01-26  7:45 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

> Date: Thu, 25 Jan 2024 18:59:42 -0600
> From: Adam Porter <adam@alphapapa.net>
> 
> I'd like to add a new package to ELPA, activities.el.  It's hosted at:
> 
>    https://github.com/alphapapa/activities.el
> 
> Here's the description; please see the readme/manual for more details.
> 
>    Inspired by Genera's and KDE's concepts of "activities", this library 
> allows the user to select an "activity", the loading of which restores a 
> window configuration and/or frameset, along with the buffers shown in 
> each window.  Saving an activity saves the state for later restoration. 
> Switching away from an activity saves the last-used state for later 
> switching back to, while still allowing the activity's initial or 
> default state to be restored on demand.  Resuming an activity loads the 
> last-used state, or the initial/default state when a universal argument 
> is provided.

From the user-facing POV, how is this different from desktop.el's
ability to save/restore Emacs sessions to/from separate desktop files?

Thanks.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26  0:59 [ELPA] New package: activities Adam Porter
  2024-01-26  7:33 ` Philip Kaludercic
  2024-01-26  7:45 ` Eli Zaretskii
@ 2024-01-26  8:25 ` Eshel Yaron
  2024-01-26 10:48   ` Adam Porter
  2024-01-29 21:48 ` JD Smith
  3 siblings, 1 reply; 29+ messages in thread
From: Eshel Yaron @ 2024-01-26  8:25 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

Hello,

Adam Porter <adam@alphapapa.net> writes:

> Hi,
>
> I'd like to add a new package to ELPA, activities.el.  It's hosted at:
>
>   https://github.com/alphapapa/activities.el

Look interesting!

FWIW, I think a spot a small mistake in `activities-completing-read`:
passing the value of the history variable to `completing-read` instead
of the variable name.  Also, it seems like the commands that use this
function expect an existing "activity", so would it make sense to accept
only matching inputs?  That is, making the following change:

diff --git a/activities.el b/activities.el
index 60bbcaf..8ea687b 100644
--- a/activities.el
+++ b/activities.el
@@ -638,7 +638,7 @@ (cl-defun activities-completing-read
   "Return an activity read with completion from ACTIVITIES.
 PROMPT is passed to `completing-read', which see."
   (let* ((names (activities-names activities))
-         (name (completing-read prompt names nil nil nil activities-completing-read-history)))
+         (name (completing-read prompt names nil t nil 'activities-completing-read-history)))
     (or (map-elt activities-activities name)
         (make-activities-activity :name name))))



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26  7:33 ` Philip Kaludercic
@ 2024-01-26 10:36   ` Adam Porter
  2024-01-29 19:50     ` Adam Porter
  0 siblings, 1 reply; 29+ messages in thread
From: Adam Porter @ 2024-01-26 10:36 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: emacs-devel

Hi Philip,

On 1/26/24 01:33, Philip Kaludercic wrote:
> Adam Porter <adam@alphapapa.net> writes:
> 
>> Hi,
>>
>> I'd like to add a new package to ELPA, activities.el.  It's hosted at:
> 
> Nice name ;)

Well, I can't take credit for it, as I was inspired by similar projects 
outside of Emacsland.  :)

>>    https://github.com/alphapapa/activities.el
> 
> I don't have much to add on the code, just that if you are depending on
> Emacs 29, you might be able to use `define-multisession-variable'
> instead of having to depend on persist?

Unfortunately, I spent several hours trying to make `multisession' work 
before I ended up filing this bug on it: 
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=68482  Thankfully, 
`persist' works perfectly.

>> + (activities           	:url "https://github.com/alphapapa/activities.el.git"
>> +   :release-branch "stable"
>> +   :doc "README.org")
> 
> There is no need to track the .info file in the repository, the build
> server will generate that from :doc and overwrite it anyway.

I understand, but having the Info file in the repository allows it to be 
installed with tools like Quelpa.

Thanks,
Adam



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26  7:45 ` Eli Zaretskii
@ 2024-01-26 10:42   ` Adam Porter
  2024-01-26 12:32     ` Eli Zaretskii
  0 siblings, 1 reply; 29+ messages in thread
From: Adam Porter @ 2024-01-26 10:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Hi Eli,

On 1/26/24 01:45, Eli Zaretskii wrote:
>> Date: Thu, 25 Jan 2024 18:59:42 -0600
>> From: Adam Porter <adam@alphapapa.net>
>>
>> I'd like to add a new package to ELPA, activities.el.  It's hosted at:
>>
>>     https://github.com/alphapapa/activities.el
>>
>> Here's the description; please see the readme/manual for more details.
>>
>>     Inspired by Genera's and KDE's concepts of "activities", this library
>> allows the user to select an "activity", the loading of which restores a
>> window configuration and/or frameset, along with the buffers shown in
>> each window.  Saving an activity saves the state for later restoration.
>> Switching away from an activity saves the last-used state for later
>> switching back to, while still allowing the activity's initial or
>> default state to be restored on demand.  Resuming an activity loads the
>> last-used state, or the initial/default state when a universal argument
>> is provided.
> 
>  From the user-facing POV, how is this different from desktop.el's
> ability to save/restore Emacs sessions to/from separate desktop files?

As the documentation explains:

   How does this differ from the built-in ~desktop-mode~? :: As best 
this author can tell, ~desktop-mode~ saves and restores one set of 
buffers, with various options to control its behavior.  It does not use 
~bookmark~ internally, which prevents it from restoring non-file-backed 
buffers.  As well, it is not intended to be used on-demand to switch 
between sets of buffers, windows, or frames (i.e. "activities").

In addition to that, activities.el provides a mode to automatically save 
an activity's last window configuration in addition to its default.  And 
it provides integration with tab-bar-mode, as well as other conveniences 
and interactive commands.  Finally, activities.el is designed to be 
independent of other features and co-exist with them, avoiding 
interference with other libraries.  It's only a few days old, but is 
based on another library of mine; I intend to continue developing it 
with user feedback to allow further extension and integration with other 
tools.

Thanks,
Adam



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26  8:25 ` Eshel Yaron
@ 2024-01-26 10:48   ` Adam Porter
  0 siblings, 0 replies; 29+ messages in thread
From: Adam Porter @ 2024-01-26 10:48 UTC (permalink / raw)
  To: me; +Cc: adam, emacs-devel

Hi Eshel,

> FWIW, I think a spot a small mistake in `activities-completing-read`:
> passing the value of the history variable to `completing-read` instead
> of the variable name.  Also, it seems like the commands that use this
> function expect an existing "activity", so would it make sense to accept
> only matching inputs?  That is, making the following change:

Thanks for catching those.  I pushed a fix and mentioned you in the 
commit message.

--Adam



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26 10:42   ` Adam Porter
@ 2024-01-26 12:32     ` Eli Zaretskii
  2024-01-26 21:59       ` Adam Porter
  0 siblings, 1 reply; 29+ messages in thread
From: Eli Zaretskii @ 2024-01-26 12:32 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

> Date: Fri, 26 Jan 2024 04:42:26 -0600
> Cc: emacs-devel@gnu.org
> From: Adam Porter <adam@alphapapa.net>
> 
> >  From the user-facing POV, how is this different from desktop.el's
> > ability to save/restore Emacs sessions to/from separate desktop files?
> 
> As the documentation explains:
> 
>    How does this differ from the built-in ~desktop-mode~? :: As best 
> this author can tell, ~desktop-mode~ saves and restores one set of 
> buffers, with various options to control its behavior.  It does not use 
> ~bookmark~ internally, which prevents it from restoring non-file-backed 
> buffers.

This could be added to desktop.el as a (relatively simple)
enhancement.

> As well, it is not intended to be used on-demand to switch 
> between sets of buffers, windows, or frames (i.e. "activities").

Maybe I don't understand what this means, but desktop.el can be told
to restore a session recorded in a specific directory, which allows
the user to have several desktops recorded, and to restore each one
when necessary.  Are you talking about something else?

> In addition to that, activities.el provides a mode to automatically save 
> an activity's last window configuration in addition to its default.

Not sure what "in addition to its default" is about, but desktop.el
also saves the current session regularly and automatically (see
desktop-auto-save-timeout).

> And it provides integration with tab-bar-mode, as well as other
> conveniences and interactive commands.

Is that missing from desktop.el?  If so, can you tell what is missing?

> Finally, activities.el is designed to be independent of other
> features and co-exist with them, avoiding interference with other
> libraries.  It's only a few days old, but is based on another
> library of mine; I intend to continue developing it with user
> feedback to allow further extension and integration with other
> tools.

I wish people would extend existing features instead of reinventing
them from scratch.  Would you perhaps consider extending desktop.el to
add whatever you think is missing there?  If not, why not?

Thanks.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26 12:32     ` Eli Zaretskii
@ 2024-01-26 21:59       ` Adam Porter
  2024-01-27  7:08         ` Eli Zaretskii
  0 siblings, 1 reply; 29+ messages in thread
From: Adam Porter @ 2024-01-26 21:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Hello Eli,

On 1/26/24 06:32, Eli Zaretskii wrote:
>> Date: Fri, 26 Jan 2024 04:42:26 -0600
>> Cc: emacs-devel@gnu.org
>> From: Adam Porter <adam@alphapapa.net>
>>
>>>   From the user-facing POV, how is this different from desktop.el's
>>> ability to save/restore Emacs sessions to/from separate desktop files?
>>
>> As the documentation explains:
>>
>>     How does this differ from the built-in ~desktop-mode~? :: As best
>> this author can tell, ~desktop-mode~ saves and restores one set of
>> buffers, with various options to control its behavior.  It does not use
>> ~bookmark~ internally, which prevents it from restoring non-file-backed
>> buffers.
> 
> This could be added to desktop.el as a (relatively simple)
> enhancement.

I've looked at desktop.el's code.  I don't think it would be very simple 
to do so.

>> As well, it is not intended to be used on-demand to switch
>> between sets of buffers, windows, or frames (i.e. "activities").
> 
> Maybe I don't understand what this means, but desktop.el can be told
> to restore a session recorded in a specific directory, which allows
> the user to have several desktops recorded, and to restore each one
> when necessary.  Are you talking about something else?

1.  desktop.el seems to have the concept of one desktop being active at 
a time.  A desktop can be switched to, which kills and clears the active 
one.

activities.el has no such limitation.  A user can have as many 
activities active as needed and can switch between them independently at 
any time.

2. desktop.el works by the unusual concept of choosing a directory in 
which to save "a desktop file."  As a user, I have no interest in 
choosing a directory into which to save an activity's state file.  This 
should be transparent to the user.

activities.el stores activities in an alist which is stored with 
persist.el.  It's UI is far simpler and more intuitive.

>> In addition to that, activities.el provides a mode to automatically save
>> an activity's last window configuration in addition to its default.
> 
> Not sure what "in addition to its default" is about, but desktop.el
> also saves the current session regularly and automatically (see
> desktop-auto-save-timeout).

desktop.el allows a single desktop to be active at one time.

activities.el allows any number of activities to be active.

As well, activities.el does not "enforce" its paradigm upon the user, 
which means that frames/tabs that are not associated with an activity 
are left alone.

>> And it provides integration with tab-bar-mode, as well as other
>> conveniences and interactive commands.
> 
> Is that missing from desktop.el?  If so, can you tell what is missing?

desktop.el supports tab-bar-mode in one sense only: when it restores a 
frame containing a tab-bar, it enables tab-bar-mode.

activities.el supports tab-bar-mode more directly with 
activities-tabs-mode: activities are restored to and associated with 
tab-bar tabs.

>> Finally, activities.el is designed to be independent of other
>> features and co-exist with them, avoiding interference with other
>> libraries.  It's only a few days old, but is based on another
>> library of mine; I intend to continue developing it with user
>> feedback to allow further extension and integration with other
>> tools.
> 
> I wish people would extend existing features instead of reinventing
> them from scratch.  Would you perhaps consider extending desktop.el to
> add whatever you think is missing there?  If not, why not?

I generally agree with you.  However, desktop.el is a library nearly 
twice the size of activites.el and dating back 30 years.  It does many 
things that are now better served by other libraries (e.g. restoring 
variables' values is covered by tools like savehist.el).  It is 
complicated and full of anachronisms (like its own bespoke code to write 
variables and values to files with `setq' forms).  It would take much 
longer to refactor desktop.el to do what activities.el does, and 
impractical to do so while preserving its existing UI, which users have 
used for decades (not to mention the inevitable many hours of bug and 
compatibility fixing which such refactoring would entail).

activities.el is intended to be an alternative to desktop.el.  It is 
inspired by other software systems.  It's not intended to follow any of 
desktop.el's paradigms.

As well, I put this together in a few days, based on research done in 
some of my other packages over the last few years.  It's simple and 
seems to work well, and is designed in an extensible, flexible way.  A 
project to refactor desktop.el to encompass similar changes would be 
more than I have the time or interest to work on.

So I would like to add activities.el to ELPA as-is.

Thanks,
Adam



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26 21:59       ` Adam Porter
@ 2024-01-27  7:08         ` Eli Zaretskii
  2024-01-27  8:46           ` Adam Porter
  0 siblings, 1 reply; 29+ messages in thread
From: Eli Zaretskii @ 2024-01-27  7:08 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

> Date: Fri, 26 Jan 2024 15:59:20 -0600
> Cc: emacs-devel@gnu.org
> From: Adam Porter <adam@alphapapa.net>
> 
> >>     How does this differ from the built-in ~desktop-mode~? :: As best
> >> this author can tell, ~desktop-mode~ saves and restores one set of
> >> buffers, with various options to control its behavior.  It does not use
> >> ~bookmark~ internally, which prevents it from restoring non-file-backed
> >> buffers.
> > 
> > This could be added to desktop.el as a (relatively simple)
> > enhancement.
> 
> I've looked at desktop.el's code.  I don't think it would be very simple 
> to do so.

Can you elaborate why you think so?

> 1.  desktop.el seems to have the concept of one desktop being active at 
> a time.  A desktop can be switched to, which kills and clears the active 
> one.
> 
> activities.el has no such limitation.  A user can have as many 
> activities active as needed and can switch between them independently at 
> any time.

desktop.el sees the current session as a unit, and saves/restores all
of it.  Thus, by definition, there's "only one desktop active" at any
given time.  However, it should be possible to extend desktop.el to
allow the user to specify a subset of the session and give it a name,
so that subsets could be manipulated independently.  IOW, it could be
a natural extension of desktop.el.

> 2. desktop.el works by the unusual concept of choosing a directory in 
> which to save "a desktop file."

It might sound less "unusual" if you think about each directory as a
top-level directory of a separate project.  As one advantage,
integration between desktop.el and project.el, if and when it is
desired, should be a simple matter, AFAIU.

> >> In addition to that, activities.el provides a mode to automatically save
> >> an activity's last window configuration in addition to its default.
> > 
> > Not sure what "in addition to its default" is about, but desktop.el
> > also saves the current session regularly and automatically (see
> > desktop-auto-save-timeout).
> 
> desktop.el allows a single desktop to be active at one time.
> 
> activities.el allows any number of activities to be active.

See above: a natural extension of desktop.el would allow saving
user-specified portions of a session.

> As well, activities.el does not "enforce" its paradigm upon the user, 
> which means that frames/tabs that are not associated with an activity 
> are left alone.

desktop.el uses frameset.el to save and restore frames.  frameset.el
implements a mechanism for filtering frames that are saved and
restored.  Selective saving can be easily based on that mechanism.

> >> And it provides integration with tab-bar-mode, as well as other
> >> conveniences and interactive commands.
> > 
> > Is that missing from desktop.el?  If so, can you tell what is missing?
> 
> desktop.el supports tab-bar-mode in one sense only: when it restores a 
> frame containing a tab-bar, it enables tab-bar-mode.
> 
> activities.el supports tab-bar-mode more directly with 
> activities-tabs-mode: activities are restored to and associated with 
> tab-bar tabs.

So this is the same "only one desktop at a time" argument again.

> > I wish people would extend existing features instead of reinventing
> > them from scratch.  Would you perhaps consider extending desktop.el to
> > add whatever you think is missing there?  If not, why not?
> 
> I generally agree with you.  However, desktop.el is a library nearly 
> twice the size of activites.el and dating back 30 years.  It does many 
> things that are now better served by other libraries (e.g. restoring 
> variables' values is covered by tools like savehist.el).  It is 
> complicated and full of anachronisms (like its own bespoke code to write 
> variables and values to files with `setq' forms).

Replace "desktop.el" here with "Emacs", and you get the argument we
see on various forums why stick to Emacs after all those years and all
the cruft Emacs accumulated.  And yet we do stick to it, for very good
reasons.  One of those reasons is that it takes a long time to learn a
sophisticated tool and adapt one's workflows to its concepts, and
therefore extending that tool in compatible ways favors the users by
not requiring them to re-learn the basics and modify the workflows in
significant ways every Monday and Thursday.

> It would take much longer to refactor desktop.el to do what
> activities.el does, and impractical to do so while preserving its
> existing UI, which users have used for decades (not to mention the
> inevitable many hours of bug and compatibility fixing which such
> refactoring would entail).

Yes.  But the users will be benefited much more.  (And I submit that
desktop.el's code is not hard to understand and modify; we have quite
a few packages in Emacs which are much harder to penetrate.)

> activities.el is intended to be an alternative to desktop.el.  It is 
> inspired by other software systems.  It's not intended to follow any of 
> desktop.el's paradigms.

But now users will have a dilemma of which they should have as few as
possible: do I stay with desktop.el or do I switch to activities.el,
pray that it will be actively developed and maintained for years to
come, and re-learn from scratch how to save and restore my session?

> So I would like to add activities.el to ELPA as-is.

Of course you would.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-27  7:08         ` Eli Zaretskii
@ 2024-01-27  8:46           ` Adam Porter
  2024-01-27 14:53             ` Eric S Fraga
  0 siblings, 1 reply; 29+ messages in thread
From: Adam Porter @ 2024-01-27  8:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Hello Eli,

On 1/27/24 01:08, Eli Zaretskii wrote:

>> 2. desktop.el works by the unusual concept of choosing a directory in
>> which to save "a desktop file."
> 
> It might sound less "unusual" if you think about each directory as a
> top-level directory of a separate project.  As one advantage,
> integration between desktop.el and project.el, if and when it is
> desired, should be a simple matter, AFAIU.

"Activities" have no direct relation to directories or project.el-style 
projects (i.e. directories).  Some kind of integration with project.el 
may be possible and is under consideration (feedback welcome).

>> desktop.el supports tab-bar-mode in one sense only: when it restores a
>> frame containing a tab-bar, it enables tab-bar-mode.
>>
>> activities.el supports tab-bar-mode more directly with
>> activities-tabs-mode: activities are restored to and associated with
>> tab-bar tabs.
> 
> So this is the same "only one desktop at a time" argument again.

I don't know what you mean.  activities.el supports both frame- and 
tab-based activity associations, depending on whether 
activities-tabs-mode is enabled.  Future work is intended to allow 
further, per-activity customization (i.e. having one activity associated 
with a frame, while another is associated with a tab).

> Replace "desktop.el" here with "Emacs", and you get the argument we
> see on various forums why stick to Emacs after all those years and all
> the cruft Emacs accumulated.  And yet we do stick to it, for very good
> reasons.  One of those reasons is that it takes a long time to learn a
> sophisticated tool and adapt one's workflows to its concepts, and
> therefore extending that tool in compatible ways favors the users by
> not requiring them to re-learn the basics and modify the workflows in
> significant ways every Monday and Thursday.

Like Emacs, desktop.el is decades old and full of cruft.  As often 
happens, a clean-slate design based on some new ideas is developed, and 
the fresh perspective allows further development.

Frankly, I've always found desktop.el to be a morass of confusing 
features, most of which do not support my needs, while it lacks the 
simple functionality I have always desired--which I have designed 
activities.el to perform.  activities.el's concepts are simple and do 
not interfere with other workflows or libraries.

>> It would take much longer to refactor desktop.el to do what
>> activities.el does, and impractical to do so while preserving its
>> existing UI, which users have used for decades (not to mention the
>> inevitable many hours of bug and compatibility fixing which such
>> refactoring would entail).
> 
> Yes.  But the users will be benefited much more.  (And I submit that
> desktop.el's code is not hard to understand and modify; we have quite
> a few packages in Emacs which are much harder to penetrate.)

I disagree.  A clean-slate design is definitely needed here, especially 
in light of developments in Emacs and its libraries since desktop.el was 
made.  If desktop.el were so refactored and trimmed down, it wouldn't be 
desktop.el anymore--and then would come the bug reports about changed, 
missing, or incompatible functionality.  (I don't know if 
desktop-file-version's value of 208 means that the file format was 
changed 208 times, but regardless, I'm not interested in trying to 
maintain compatibility with that legacy (it even has functionality to 
*downgrade* its file format).)

>> activities.el is intended to be an alternative to desktop.el.  It is
>> inspired by other software systems.  It's not intended to follow any of
>> desktop.el's paradigms.
> 
> But now users will have a dilemma of which they should have as few as
> possible: do I stay with desktop.el or do I switch to activities.el,
> pray that it will be actively developed and maintained for years to
> come, and re-learn from scratch how to save and restore my session?

I think that after about 30 seconds of trying each package, users will 
have no problem deciding which is most useful for them.  (Or they may 
find some of desktop.el's features useful in addition to 
activities.el's-, because activities is designed to not interfere with 
any other tools.)

Regarding maintenance: I've been maintaining Emacs packages for about 8 
years, and I've no plans to stop anytime soon.

And there's virtually nothing to learn or re-learn here.  Two commands 
are all that's needed to use it: activities-new to define a new 
activity, and activities-resume to resume one.  The other commands 
provide convenience but are ancillary.  No configuration is required but 
some options are provided.  It has been carefully designed to be as 
simple as possible to use.

>> So I would like to add activities.el to ELPA as-is.
> 
> Of course you would.

If you think I have no concern for Emacs's development as a whole, or 
its users, or its long-term design, that is not the case.  I hope that 
after incubating and maturing in ELPA for a few years that activities.el 
may become suitable for inclusion as a core package.  I think it 
provides features that have been missing for decades, not just in Emacs, 
but in personal computing as a whole--but only on a platform like Emacs 
do we really have the chance to rectify these problems.

Having used Emacs for over 10 years myself, it would not be an 
overstatement to say that activities.el is revolutionary to my daily 
use.  Although the implementation is simple, and the UI is as well 
(though I'm always seeking feedback to improve it), the functionality is 
profoundly useful, and it's taken years of development and design to get 
to this point.

So, no, I'm afraid that I'm not interested in refactoring a 30+ year-old 
library that's more than twice the size to provide equivalent 
functionality in addition to everything it already does.  I would like 
rather to add this package to ELPA, begin gathering feedback from wider 
usage, and continue its development.

Thanks,
Adam



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-27  8:46           ` Adam Porter
@ 2024-01-27 14:53             ` Eric S Fraga
  2024-01-27 15:32               ` Eli Zaretskii
  2024-01-27 16:14               ` Sergey Organov
  0 siblings, 2 replies; 29+ messages in thread
From: Eric S Fraga @ 2024-01-27 14:53 UTC (permalink / raw)
  To: emacs-devel

As a very (and I do mean very) long time user, I would like to comment
on this thread.  I hope that's okay despite the fact that I do not
contribute much to the actual code in emacs.

I have never found desktop.el to be useful.  I do not start emacs from
different directories so find the whole idea of a desktop counter to my
use case.  I start emacs and then use it for days, working on different
completely unrelated projects or activities (teaching, coding, writing,
admin, email, whatever).  Emacs, these days, is usually also my window
manager (exwm).

The proposed activities package (which I have not yet had time to try)
appeals, given its description.  And that appeal would increase further
were it integrated or linked with project.el as the latter is more
sympathetic with how I use emacs.  I'm sure I'm not the only one that
works this way.  The power of Emacs is that it works for so many
different people and allows one to use it the way you want it, not the
other way around.

Building on top of desktop.el seems, to me, to be using the wrong
starting point.  If you believe that new packages should somehow build
on existing packages, then start with project.el which is more aligned
to the proposed package.  I would love to be able to type

C-x p p <choose project> a

with "a" for activity, say, taking me back to where I was last with that
project.

I'll go back to lurking now. ;-)

Thank you,
eric

-- 
Eric S Fraga via gnus (Emacs 30.0.50 2023-09-14) on Debian 12.2




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-27 14:53             ` Eric S Fraga
@ 2024-01-27 15:32               ` Eli Zaretskii
  2024-01-27 16:14               ` Sergey Organov
  1 sibling, 0 replies; 29+ messages in thread
From: Eli Zaretskii @ 2024-01-27 15:32 UTC (permalink / raw)
  To: Eric S Fraga; +Cc: emacs-devel

> From: Eric S Fraga <e.fraga@ucl.ac.uk>
> Date: Sat, 27 Jan 2024 14:53:21 +0000
> 
> As a very (and I do mean very) long time user, I would like to comment
> on this thread.  I hope that's okay despite the fact that I do not
> contribute much to the actual code in emacs.
> 
> I have never found desktop.el to be useful.  I do not start emacs from
> different directories so find the whole idea of a desktop counter to my
> use case.  I start emacs and then use it for days, working on different
> completely unrelated projects or activities (teaching, coding, writing,
> admin, email, whatever).  Emacs, these days, is usually also my window
> manager (exwm).
> 
> The proposed activities package (which I have not yet had time to try)
> appeals, given its description.  And that appeal would increase further
> were it integrated or linked with project.el as the latter is more
> sympathetic with how I use emacs.  I'm sure I'm not the only one that
> works this way.  The power of Emacs is that it works for so many
> different people and allows one to use it the way you want it, not the
> other way around.
> 
> Building on top of desktop.el seems, to me, to be using the wrong
> starting point.

If you don't consider desktop.el useful and don't use it, then,
indeed, whether activities.el is a compatible extension of desktop.el
or a completely new package developed from ground up on a different
basis should be of no importance for you.  My worries are for people
who do use desktop.el and might also be interested in the features
offered by activities.el that are not currently present in desktop.el.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-27 14:53             ` Eric S Fraga
  2024-01-27 15:32               ` Eli Zaretskii
@ 2024-01-27 16:14               ` Sergey Organov
  2024-01-28 11:25                 ` Eric S Fraga
  1 sibling, 1 reply; 29+ messages in thread
From: Sergey Organov @ 2024-01-27 16:14 UTC (permalink / raw)
  To: Eric S Fraga; +Cc: emacs-devel

Eric S Fraga <e.fraga@ucl.ac.uk> writes:


[...]

> I have never found desktop.el to be useful.  I do not start emacs from
> different directories so find the whole idea of a desktop counter to my
> use case.  I start emacs and then use it for days, working on different
> completely unrelated projects or activities (teaching, coding, writing,
> admin, email, whatever).  Emacs, these days, is usually also my window
> manager (exwm).

That's how I use Emacs as well, yet I've built a package based on
deskstop.el and session.el a long time ago that I've called desksess.el,
and I'm still using it.

[...]

> Building on top of desktop.el seems, to me, to be using the wrong
> starting point.

Maybe, maybe not. It was much easier for me to glue two existing
packages together using a bit of simple code than to re-invent the
wheel. Yes, it overrides desktop.el's idea of where to get desktop
files, and which file to load, but that's only a little bit of gluing on
top of rather big package.

> If you believe that new packages should somehow build
> on existing packages, then start with project.el which is more aligned
> to the proposed package.  I would love to be able to type
>
> C-x p p <choose project> a

C-c d l <project>

in my case

C-c d l runs the command desksess-load

>
> with "a" for activity, say, taking me back to where I was last with that
> project.

Exactly how desksess.el works, and it loads last visited desktop on
startup, no matter what is current directory.

-- 
Sergey Organov



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
@ 2024-01-27 19:20 Drew Adams
  0 siblings, 0 replies; 29+ messages in thread
From: Drew Adams @ 2024-01-27 19:20 UTC (permalink / raw)
  To: Sergey Organov, Eric S Fraga; +Cc: emacs-devel@gnu.org

Just one comment about desktop.el, FWIW.

I've said this more than once over the
decades, but I'll mention it again since
the question of desktop files being limited
by being directory-based has come up again
in this thread (as only one small part of
this thread).

There's no reason desktop files should be
limited in this way.  You should be able to
have multiple desktop files in a directory.
There's no necessary relation between a
desktop file and any particular directory.

It's a design bug, IMO.

I fixed this long ago, in order to let you
bookmark desktops flexibly.  A trivial fix
lets you load an arbitrary desktop file.

This 2019 post covers this, but there are
likely older posts by me that do the same:

https://lists.gnu.org/archive/html/emacs-devel/2019-09/msg00571.html

Here again is the code that fixes this
design oversight, FWIW:

(defun bmkp-desktop-save (desktop-file)
  "Save current desktop in DESKTOP-FILE."
  (let ((desktop-base-file-name
         (file-name-nondirectory desktop-file))
        (desk-dir
         (file-name-directory desktop-file))
        (desktop-restore-eager  t)) ; Don't bother w/ lazy.
    (desktop-save desk-dir 'RELEASE 'AUTOSAVE)))

;; Derived from code in `desktop-read'.
;;
 (defun bmkp-desktop-read (file)
  "Load desktop-file FILE, then run `desktop-after-read-hook'.
Return t if FILE was loaded, nil otherwise."
  (interactive)
  (when (file-directory-p file)
    (error "`%s' is a directory, not a file" file))
  (setq desktop-dirname  (file-name-directory file))
  (if (not (file-readable-p file))
      nil ; Return nil: not loaded.
    (let ((desktop-restore-eager      t) ; Don't bother w/ lazy.
          (desktop-first-buffer       nil)
          (desktop-buffer-ok-count    0)
          (desktop-buffer-fail-count  0)
          ;; Prevent desktop-saving for eval of desktop buffer.
          (desktop-save               nil))
      (desktop-lazy-abort)
      (load file t t t)
      (setq desktop-file-modtime (nth 5 (file-attributes file)))
      (mapc 'bury-buffer
            (nreverse (cdr (memq desktop-first-buffer
                                 (nreverse (buffer-list))))))
      (switch-to-buffer (car (buffer-list)))
      (run-hooks 'desktop-delay-hook)
      (setq desktop-delay-hook  ())
      (run-hooks 'desktop-after-read-hook)
      (message "Desktop: %d buffer%s restored%s%s."
               desktop-buffer-ok-count
               (if (= 1 desktop-buffer-ok-count) "" "s")
               (if (< 0 desktop-buffer-fail-count)
                   (format ", %d failed to restore"
                           desktop-buffer-fail-count)
                 "")
               (if desktop-buffer-args-list
                   (format ", %d to be restored lazily"
                           (length desktop-buffer-args-list))
                 ""))
      t))) ; Return t: successfully loaded.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-27 16:14               ` Sergey Organov
@ 2024-01-28 11:25                 ` Eric S Fraga
  2024-01-29 10:45                   ` Sergey Organov
  0 siblings, 1 reply; 29+ messages in thread
From: Eric S Fraga @ 2024-01-28 11:25 UTC (permalink / raw)
  To: emacs-devel

On Saturday, 27 Jan 2024 at 19:14, Sergey Organov wrote:
> That's how I use Emacs as well, yet I've built a package based on
> deskstop.el and session.el a long time ago that I've called desksess.el,
> and I'm still using it.

Interesting.  Are you able to share?

Thank you,
eric
-- 
Eric S Fraga via gnus (Emacs 30.0.50 2023-09-14) on Debian 12.2




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-28 11:25                 ` Eric S Fraga
@ 2024-01-29 10:45                   ` Sergey Organov
  2024-01-29 13:03                     ` Philip Kaludercic
  2024-01-29 15:29                     ` Fraga, Eric
  0 siblings, 2 replies; 29+ messages in thread
From: Sergey Organov @ 2024-01-29 10:45 UTC (permalink / raw)
  To: Eric S Fraga; +Cc: emacs-devel

Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> On Saturday, 27 Jan 2024 at 19:14, Sergey Organov wrote:
>> That's how I use Emacs as well, yet I've built a package based on
>> deskstop.el and session.el a long time ago that I've called desksess.el,
>> and I'm still using it.
>
> Interesting.  Are you able to share?

Sure,

https://drive.google.com/file/d/1U3TKybt8f7eiOGpyeoW_gFE8dDkFtASf/view?usp=sharing

-- Sergey Organov



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-29 10:45                   ` Sergey Organov
@ 2024-01-29 13:03                     ` Philip Kaludercic
  2024-01-29 22:23                       ` Sergey Organov
  2024-01-29 15:29                     ` Fraga, Eric
  1 sibling, 1 reply; 29+ messages in thread
From: Philip Kaludercic @ 2024-01-29 13:03 UTC (permalink / raw)
  To: Sergey Organov; +Cc: Eric S Fraga, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 593 bytes --]

Sergey Organov <sorganov@gmail.com> writes:

> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>
>> On Saturday, 27 Jan 2024 at 19:14, Sergey Organov wrote:
>>> That's how I use Emacs as well, yet I've built a package based on
>>> deskstop.el and session.el a long time ago that I've called desksess.el,
>>> and I'm still using it.
>>
>> Interesting.  Are you able to share?
>
> Sure,
>
> https://drive.google.com/file/d/1U3TKybt8f7eiOGpyeoW_gFE8dDkFtASf/view?usp=sharing

I hope you don't mind me reposting the code here, because I know that
many here won't be able or willing to follow that link:


[-- Attachment #2: desksess.el --]
[-- Type: application/emacs-lisp, Size: 25563 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-29 10:45                   ` Sergey Organov
  2024-01-29 13:03                     ` Philip Kaludercic
@ 2024-01-29 15:29                     ` Fraga, Eric
  1 sibling, 0 replies; 29+ messages in thread
From: Fraga, Eric @ 2024-01-29 15:29 UTC (permalink / raw)
  To: Sergey Organov; +Cc: emacs-devel@gnu.org

Thank you.  I'll have a look.
-- 
Eric S Fraga via gnus (Emacs 30.0.50 2023-07-11) on Debian bullseye/sid


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26 10:36   ` Adam Porter
@ 2024-01-29 19:50     ` Adam Porter
  2024-01-30  7:16       ` Philip Kaludercic
  0 siblings, 1 reply; 29+ messages in thread
From: Adam Porter @ 2024-01-29 19:50 UTC (permalink / raw)
  To: philipk; +Cc: emacs-devel

Hi Philip,

Is there anything else I need to do before activities.el can be added to 
GNU ELPA?  The activities.info file is already in the .elpaignore file, 
which I think should cover your feedback.

Thanks,
Adam



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-26  0:59 [ELPA] New package: activities Adam Porter
                   ` (2 preceding siblings ...)
  2024-01-26  8:25 ` Eshel Yaron
@ 2024-01-29 21:48 ` JD Smith
  2024-01-30  0:08   ` Chris Van Dusen
  3 siblings, 1 reply; 29+ messages in thread
From: JD Smith @ 2024-01-29 21:48 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel


> On Jan 25, 2024, at 7:59 PM, Adam Porter <adam@alphapapa.net> wrote:
> 
> Hi,
> 
> I'd like to add a new package to ELPA, activities.el.  It's hosted at:
> 
>  https://github.com/alphapapa/activities.el
> 
> Here's the description; please see the readme/manual for more details.


I've given activities a try and am very impressed.  None of desktop.el/framesets/burly/bufler ever stuck for me.  And project.el is great but many activities span projects.  Activities is literally already a one key interface for me: <f10> to jump to an activity from anywhere, C-<f10> to revert the current one (OK two keys).  I think people are going to love it, and I can very much imagine it migrating to core someday.  Strong support for including in ELPA.  

PS: I personally feel that by the time a package author presents a well-written and fairly complete package for inclusion into ELPA, it is too late to make the argument that they should have instead contributed that functionality to a built-in package.  If you can convince them earlier in the process, of course, but it certainly adds to the outside impression that ELPA is a gauntlet that must be run, which I think all agree is not desired.


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-29 13:03                     ` Philip Kaludercic
@ 2024-01-29 22:23                       ` Sergey Organov
  0 siblings, 0 replies; 29+ messages in thread
From: Sergey Organov @ 2024-01-29 22:23 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: Eric S Fraga, emacs-devel

Philip Kaludercic <philipk@posteo.net> writes:

> Sergey Organov <sorganov@gmail.com> writes:
>
>> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>>
>>> On Saturday, 27 Jan 2024 at 19:14, Sergey Organov wrote:
>>>> That's how I use Emacs as well, yet I've built a package based on
>>>> deskstop.el and session.el a long time ago that I've called desksess.el,
>>>> and I'm still using it.
>>>
>>> Interesting.  Are you able to share?
>>
>> Sure,
>>
>> https://drive.google.com/file/d/1U3TKybt8f7eiOGpyeoW_gFE8dDkFtASf/view?usp=sharing
>
> I hope you don't mind me reposting the code here, because I know that
> many here won't be able or willing to follow that link:

Yep, sure! I rather thought attachment might cause a problem on the
list.

Thanks,
-- Sergey Organov



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-29 21:48 ` JD Smith
@ 2024-01-30  0:08   ` Chris Van Dusen
  2024-01-30  0:24     ` Adam Porter
  2024-01-30  2:50     ` JD Smith
  0 siblings, 2 replies; 29+ messages in thread
From: Chris Van Dusen @ 2024-01-30  0:08 UTC (permalink / raw)
  To: JD Smith; +Cc: Adam Porter, emacs-devel



> On Jan 29, 2024, at 15:49, JD Smith <jdtsmith@gmail.com> wrote:
> 
> 
> 
> PS: I personally feel that by the time a package author presents a well-written and fairly complete package for inclusion into ELPA, it is too late to make the argument that they should have instead contributed that functionality to a built-in package.  If you can convince them earlier in the process, of course, but it certainly adds to the outside impression that ELPA is a gauntlet that must be run, which I think all agree is not desired.

I’m not sure I follow. Most of the time package authors don’t ssy anything until they want to publish the package, so how can the maintainers suggest to them to contribute to  an existing package?

An alternative would be for potential package authors to post to emacs-devel, stating that they would like to see feature foo in package bar.  If it turns out that it is not feasible to implement the feature, then sure, a new package can be created. 

Chris. 


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-30  0:08   ` Chris Van Dusen
@ 2024-01-30  0:24     ` Adam Porter
  2024-02-01  3:49       ` Richard Stallman
  2024-01-30  2:50     ` JD Smith
  1 sibling, 1 reply; 29+ messages in thread
From: Adam Porter @ 2024-01-30  0:24 UTC (permalink / raw)
  To: Chris Van Dusen, JD Smith; +Cc: emacs-devel

On 1/29/24 18:08, Chris Van Dusen wrote:

>> PS: I personally feel that by the time a package author presents a well-written and fairly complete package for inclusion into ELPA, it is too late to make the argument that they should have instead contributed that functionality to a built-in package.  If you can convince them earlier in the process, of course, but it certainly adds to the outside impression that ELPA is a gauntlet that must be run, which I think all agree is not desired.
> 
> I’m not sure I follow. Most of the time package authors don’t ssy anything until they want to publish the package, so how can the maintainers suggest to them to contribute to  an existing package?
> 
> An alternative would be for potential package authors to post to emacs-devel, stating that they would like to see feature foo in package bar.  If it turns out that it is not feasible to implement the feature, then sure, a new package can be created.

Please don't forget the possibility that the author has already 
considered and rejected the idea to modify an existing library.  I 
reached this decision over 3 years ago, before I started working on 
burly.el, which has led me to finally develop activities.el.  Sometimes 
it is best to start with a fresh perspective, rather than trying to 
shoehorn ideas into an existing framework.



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-30  0:08   ` Chris Van Dusen
  2024-01-30  0:24     ` Adam Porter
@ 2024-01-30  2:50     ` JD Smith
  1 sibling, 0 replies; 29+ messages in thread
From: JD Smith @ 2024-01-30  2:50 UTC (permalink / raw)
  To: Chris Van Dusen; +Cc: emacs-devel


> On Jan 29, 2024, at 7:08 PM, Chris Van Dusen <cavandusen@gmail.com> wrote:
> 
>> On Jan 29, 2024, at 15:49, JD Smith <jdtsmith@gmail.com> wrote:
>> 
>> PS: I personally feel that by the time a package author presents a well-written and fairly complete package for inclusion into ELPA, it is too late to make the argument that they should have instead contributed that functionality to a built-in package.  If you can convince them earlier in the process, of course, but it certainly adds to the outside impression that ELPA is a gauntlet that must be run, which I think all agree is not desired.
> 
> I’m not sure I follow.  Most of the time package authors don’t ssy anything until they want to publish the package, so how can the maintainers suggest to them to contribute to  an existing package?

That's a different issue than how to receive new packages with advancements that might have, in an alternate Universe, been contributed to core.   But it's a fair point.

I'm not sure I have a solution to the chicken and egg problem.  Advertising "low-hanging fruit" capabilities that core packages need, and providing starter packs for aspiring package developers?   Perhaps with the explicit offer of the occasional core developer's ear for questions?  I mean the quality of answers here is usually off-scale good.

> An alternative would be for potential package authors to post to emacs-devel, stating that they would like to see feature foo in package bar.  If it turns out that it is not feasible to implement the feature, then sure, a new package can be created.

I could also imagine a yearly "meet and greet with core developers" type of event, where new ideas get passed around, people talk about the packages they'd love to build next, and others in the know can mention how those may relate to or potentially extend core packages.  An old-fashioned spit-balling session.




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-29 19:50     ` Adam Porter
@ 2024-01-30  7:16       ` Philip Kaludercic
  2024-01-30  7:43         ` Adam Porter
  0 siblings, 1 reply; 29+ messages in thread
From: Philip Kaludercic @ 2024-01-30  7:16 UTC (permalink / raw)
  To: Adam Porter; +Cc: emacs-devel

Adam Porter <adam@alphapapa.net> writes:

> Hi Philip,
>
> Is there anything else I need to do before activities.el can be added
> to GNU ELPA?  The activities.info file is already in the .elpaignore
> file, which I think should cover your feedback.

Nothing, it's just the end of my semester, so I have slight difficulties
catching up to my non-uni backlog :)

Regardless, I've added your package specification, and it should appear
shortly on the archive.

> Thanks,
> Adam



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-30  7:16       ` Philip Kaludercic
@ 2024-01-30  7:43         ` Adam Porter
  0 siblings, 0 replies; 29+ messages in thread
From: Adam Porter @ 2024-01-30  7:43 UTC (permalink / raw)
  To: Philip Kaludercic; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 606 bytes --]

Thanks, Philip!

--Adam

On Tue, Jan 30, 2024, 01:16 Philip Kaludercic <philipk@posteo.net> wrote:

> Adam Porter <adam@alphapapa.net> writes:
>
> > Hi Philip,
> >
> > Is there anything else I need to do before activities.el can be added
> > to GNU ELPA?  The activities.info file is already in the .elpaignore
> > file, which I think should cover your feedback.
>
> Nothing, it's just the end of my semester, so I have slight difficulties
> catching up to my non-uni backlog :)
>
> Regardless, I've added your package specification, and it should appear
> shortly on the archive.
>
> > Thanks,
> > Adam
>

[-- Attachment #2: Type: text/html, Size: 1154 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
  2024-01-30  0:24     ` Adam Porter
@ 2024-02-01  3:49       ` Richard Stallman
  0 siblings, 0 replies; 29+ messages in thread
From: Richard Stallman @ 2024-02-01  3:49 UTC (permalink / raw)
  To: Adam Porter; +Cc: cavandusen, jdtsmith, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > I’m not sure I follow. Most of the time package authors don’t
  > > ssy anything until they want to publish the package, so how can
  > > the maintainers suggest to them to contribute to an existing
  > > package?
  > > 
  > > An alternative would be for potential package authors to post to
  > > emacs-devel, stating that they would like to see feature foo in
  > > package bar.  If it turns out that it is not feasible to
  > > implement the feature, then sure, a new package can be created.

  > Please don't forget the possibility that the author has already 
  > considered and rejected the idea to modify an existing library.  I 
  > reached this decision over 3 years ago, before I started working on 
  > burly.el, which has led me to finally develop activities.el.  Sometimes 
  > it is best to start with a fresh perspective, rather than trying to 
  > shoehorn ideas into an existing framework.

First, I have no opinions about what to do with activities.el in
particular.  It could potentially be useful for many users, but it
probably won't be useful for me on a Linux console.  It doesn't seem
to affect Emacs at a deeper level.  So I decided to leave its design
issues to others.  I'm writing only about this broader question.

I am glad that you first considered adding the feature to an existing
package.  Thinking about that was a wise thing to do.

You reached the conclusion that it was better to make a new, separate
package.  Maybe that is right.  (I don't know the details so I have no
opinion about it.)

Nonetheless, it would be good if everyone considering a new feature
were to ask for advice on emacs-devel about the best way to implement
it before starting to write it.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [ELPA] New package: activities
@ 2024-02-01  5:33 Joseph Turner
  0 siblings, 0 replies; 29+ messages in thread
From: Joseph Turner @ 2024-02-01  5:33 UTC (permalink / raw)
  To: adam; +Cc: emacs-devel

Hello!

I find activities.el's ideas and its implementation useful.

I'm glad ELPA accepts packages that overlap with core functionality.

With activities.el available on ELPA, I wonder if it's more likely that
someone will find it, appreciate its ideas, and extend desktop.el.

Everybody wins :)

Thank you!!

Joseph



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2024-02-01  5:33 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-26  0:59 [ELPA] New package: activities Adam Porter
2024-01-26  7:33 ` Philip Kaludercic
2024-01-26 10:36   ` Adam Porter
2024-01-29 19:50     ` Adam Porter
2024-01-30  7:16       ` Philip Kaludercic
2024-01-30  7:43         ` Adam Porter
2024-01-26  7:45 ` Eli Zaretskii
2024-01-26 10:42   ` Adam Porter
2024-01-26 12:32     ` Eli Zaretskii
2024-01-26 21:59       ` Adam Porter
2024-01-27  7:08         ` Eli Zaretskii
2024-01-27  8:46           ` Adam Porter
2024-01-27 14:53             ` Eric S Fraga
2024-01-27 15:32               ` Eli Zaretskii
2024-01-27 16:14               ` Sergey Organov
2024-01-28 11:25                 ` Eric S Fraga
2024-01-29 10:45                   ` Sergey Organov
2024-01-29 13:03                     ` Philip Kaludercic
2024-01-29 22:23                       ` Sergey Organov
2024-01-29 15:29                     ` Fraga, Eric
2024-01-26  8:25 ` Eshel Yaron
2024-01-26 10:48   ` Adam Porter
2024-01-29 21:48 ` JD Smith
2024-01-30  0:08   ` Chris Van Dusen
2024-01-30  0:24     ` Adam Porter
2024-02-01  3:49       ` Richard Stallman
2024-01-30  2:50     ` JD Smith
  -- strict thread matches above, loose matches on Subject: below --
2024-01-27 19:20 Drew Adams
2024-02-01  5:33 Joseph Turner

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.