unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#20137: number of generation doesn't always rise monotonically
@ 2015-03-18 17:35 Tomáš Čech
  2015-03-18 20:36 ` Ludovic Courtès
  2015-03-22 23:40 ` Tomáš Čech
  0 siblings, 2 replies; 9+ messages in thread
From: Tomáš Čech @ 2015-03-18 17:35 UTC (permalink / raw)
  To: 20137

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

Generation number is not always the maximum of all generation numbers
and so generation number is not always monotonic.

Steps to reproduce:

Lets start with on generation N.

1] install some package (you'll have N and N+1)
2] install some other package (you'll have N, N+1 and N+2)
3] delete generation N+1 (you'll have N and N+2)
4] switch to generation N
5] install some package - you'll get generation N+1 again
   (you'll have N, N+1 and N+2 again)

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-18 17:35 bug#20137: number of generation doesn't always rise monotonically Tomáš Čech
@ 2015-03-18 20:36 ` Ludovic Courtès
  2015-03-18 20:47   ` Taylan Ulrich Bayırlı/Kammer
  2015-03-22 23:40 ` Tomáš Čech
  1 sibling, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2015-03-18 20:36 UTC (permalink / raw)
  To: 20137

Tomáš Čech <sleep_walker@gnu.org> skribis:

> 1] install some package (you'll have N and N+1)
> 2] install some other package (you'll have N, N+1 and N+2)
> 3] delete generation N+1 (you'll have N and N+2)
> 4] switch to generation N
> 5] install some package - you'll get generation N+1 again
>   (you'll have N, N+1 and N+2 again)

That’s expected, yes.  What makes you think it’s a problem?

When implementing that, there were several possible choices:

  1. Upon rollback to N, remove all generations above N.  Rejected
     because it gratuitously prevents useful use cases.

  2. Upon rollback from P to N, keep all the generations, but use P+1
     for the next generation number.  Doesn’t work, because rolling back
     from P+1 would bring you back to P instead of N.

  3. The current behavior.

See <http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00325.html>
for part of the discussion.

Thanks,
Ludo’.

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-18 20:36 ` Ludovic Courtès
@ 2015-03-18 20:47   ` Taylan Ulrich Bayırlı/Kammer
  2015-03-18 20:52     ` Thompson, David
                       ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Taylan Ulrich Bayırlı/Kammer @ 2015-03-18 20:47 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 20137

ludo@gnu.org (Ludovic Courtès) writes:

>   2. Upon rollback from P to N, keep all the generations, but use P+1
>      for the next generation number.  Doesn’t work, because rolling back
>      from P+1 would bring you back to P instead of N.

Perhaps we can eventually move to an actual tree structure where the
nodes can be named whatever.  Until now I thought that's how generations
work, and are just named after integers for identification purposes.

Taylan

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-18 20:47   ` Taylan Ulrich Bayırlı/Kammer
@ 2015-03-18 20:52     ` Thompson, David
  2015-03-19  8:47     ` Ludovic Courtès
  2015-03-22 22:48     ` Ludovic Courtès
  2 siblings, 0 replies; 9+ messages in thread
From: Thompson, David @ 2015-03-18 20:52 UTC (permalink / raw)
  To: Taylan Ulrich Bayırlı/Kammer; +Cc: 20137

On Wed, Mar 18, 2015 at 4:47 PM, Taylan Ulrich Bayırlı/Kammer
<taylanbayirli@gmail.com> wrote:
> ludo@gnu.org (Ludovic Courtès) writes:
>
>>   2. Upon rollback from P to N, keep all the generations, but use P+1
>>      for the next generation number.  Doesn’t work, because rolling back
>>      from P+1 would bring you back to P instead of N.
>
> Perhaps we can eventually move to an actual tree structure where the
> nodes can be named whatever.

+1

- Dave

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-18 20:47   ` Taylan Ulrich Bayırlı/Kammer
  2015-03-18 20:52     ` Thompson, David
@ 2015-03-19  8:47     ` Ludovic Courtès
  2015-03-22 22:48     ` Ludovic Courtès
  2 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2015-03-19  8:47 UTC (permalink / raw)
  To: Taylan Ulrich "Bayırlı/Kammer"; +Cc: 20137

taylanbayirli@gmail.com (Taylan Ulrich "Bayırlı/Kammer") skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>>   2. Upon rollback from P to N, keep all the generations, but use P+1
>>      for the next generation number.  Doesn’t work, because rolling back
>>      from P+1 would bring you back to P instead of N.
>
> Perhaps we can eventually move to an actual tree structure where the
> nodes can be named whatever.

I agree this would be the right thing for a real undo mechanism.

But how useful would it be?  I’ve never been in a situation where
rollback/switch-generation would be insufficient or inappropriate.

I’m concerned that this would add both code and user interface
complexity for mostly hypothetical use cases.  WDYT?

Thanks,
Ludo’.

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-18 20:47   ` Taylan Ulrich Bayırlı/Kammer
  2015-03-18 20:52     ` Thompson, David
  2015-03-19  8:47     ` Ludovic Courtès
@ 2015-03-22 22:48     ` Ludovic Courtès
  2 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2015-03-22 22:48 UTC (permalink / raw)
  To: Taylan Ulrich "Bayırlı/Kammer"; +Cc: 20137-done, request

tag 20137 notabug
thanks

I think the initial “bug” report can be closed.  Feel free to open
another bug or wishlist item if you think something must be done in this
area.

Thanks to both of you!

Ludo’.

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-18 17:35 bug#20137: number of generation doesn't always rise monotonically Tomáš Čech
  2015-03-18 20:36 ` Ludovic Courtès
@ 2015-03-22 23:40 ` Tomáš Čech
  2015-03-23  9:13   ` Ludovic Courtès
  1 sibling, 1 reply; 9+ messages in thread
From: Tomáš Čech @ 2015-03-22 23:40 UTC (permalink / raw)
  To: 20137

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

Sorry, for some reason I didn't get any e-mail and noticed only
closing the bug. I'll subscribe to bug-guix ML to prevent it.


> That’s expected, yes.  What makes you think it’s a problem?

First, it was conflicting experience with what you were saying on IRC.
User experience was a bit confusing because the behaviour seemed
unexpected.

>When implementing that, there were several possible choices:
>
>  1. Upon rollback to N, remove all generations above N.  Rejected
>       because it gratuitously prevents useful use cases.
>
>  2. Upon rollback from P to N, keep all the generations, but use P+1
>     for the next generation number.  Doesn’t work, because rolling back
>     from P+1 would bring you back to P instead of N.

I can't understand this reason. It doesn't look like valid reason to
me, but only consequence of current implementation. It seems that you
don't store information about what was the previous generation and
that is whole point.

>  3. The current behavior.
>
>See <http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00325.html>
>for part of the discussion.

Thanks for looking that up!



>Perhaps we can eventually move to an actual tree structure where the
>nodes can be named whatever.  Until now I thought that's how generations
>work, and are just named after integers for identification purposes.

Yes, I had this in mind as well.


>I agree this would be the right thing for a real undo mechanism.

Exactly!

>But how useful would it be?  I’ve never been in a situation where
>rollback/switch-generation would be insufficient or inappropriate.

I haven't met such situation either (yet).

>I’m concerned that this would add both code and user interface
>complexity for mostly hypothetical use cases.  WDYT?

Yes, it would surely add some more code and would be demanding for
creating good visual represantation for users, but it could also be
much closer to behavior user would expect. And that is something which
makes tools to be natural to use.

Thank you all for your comments.

S_W

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-22 23:40 ` Tomáš Čech
@ 2015-03-23  9:13   ` Ludovic Courtès
  2015-03-23  9:50     ` Tomáš Čech
  0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2015-03-23  9:13 UTC (permalink / raw)
  To: Tomáš Čech; +Cc: 20137

Tomáš Čech <tcech@suse.cz> skribis:

>>Perhaps we can eventually move to an actual tree structure where the
>>nodes can be named whatever.  Until now I thought that's how generations
>>work, and are just named after integers for identification purposes.

[...]

>>I’m concerned that this would add both code and user interface
>>complexity for mostly hypothetical use cases.  WDYT?
>
> Yes, it would surely add some more code and would be demanding for
> creating good visual represantation for users, but it could also be
> much closer to behavior user would expect. And that is something which
> makes tools to be natural to use.

I’m not sure.  My guess is that an undo-style tree would turn out to be
less obvious or more difficult to use.

Currently, understanding what’s going on with M-x guix-generations or
--list-generations and similar is fairly straightforward.

Thanks for your feedback,
Ludo’.

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

* bug#20137: number of generation doesn't always rise monotonically
  2015-03-23  9:13   ` Ludovic Courtès
@ 2015-03-23  9:50     ` Tomáš Čech
  0 siblings, 0 replies; 9+ messages in thread
From: Tomáš Čech @ 2015-03-23  9:50 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 20137

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

On Mon, Mar 23, 2015 at 10:13:13AM +0100, Ludovic Courtès wrote:
>Tomáš Čech <tcech@suse.cz> skribis:
>
>>>Perhaps we can eventually move to an actual tree structure where the
>>>nodes can be named whatever.  Until now I thought that's how generations
>>>work, and are just named after integers for identification purposes.
>
>[...]
>
>>>I’m concerned that this would add both code and user interface
>>>complexity for mostly hypothetical use cases.  WDYT?
>>
>> Yes, it would surely add some more code and would be demanding for
>> creating good visual represantation for users, but it could also be
>> much closer to behavior user would expect. And that is something which
>> makes tools to be natural to use.
>
>I’m not sure.  My guess is that an undo-style tree would turn out to be
>less obvious or more difficult to use.
>
>Currently, understanding what’s going on with M-x guix-generations or
>--list-generations and similar is fairly straightforward.

I'm not using emacs for controling guix at all. But I should start - I can see
that is completely different user experience!

Thanks!

S_W

[-- Attachment #2: Type: application/pgp-signature, Size: 181 bytes --]

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

end of thread, other threads:[~2015-03-23  9:51 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-18 17:35 bug#20137: number of generation doesn't always rise monotonically Tomáš Čech
2015-03-18 20:36 ` Ludovic Courtès
2015-03-18 20:47   ` Taylan Ulrich Bayırlı/Kammer
2015-03-18 20:52     ` Thompson, David
2015-03-19  8:47     ` Ludovic Courtès
2015-03-22 22:48     ` Ludovic Courtès
2015-03-22 23:40 ` Tomáš Čech
2015-03-23  9:13   ` Ludovic Courtès
2015-03-23  9:50     ` Tomáš Čech

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

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).