public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Pacho Ramos <pacho@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] RFC: Making backwards-incompatible tree changes | a solution for GLEP 55's problem
Date: Tue, 20 Sep 2011 15:09:01 +0200	[thread overview]
Message-ID: <1316524141.1711.0.camel@belkin4> (raw)
In-Reply-To: <20110919221341.GA3211@fury>

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

El mar, 20-09-2011 a las 01:14 +0300, Alex Alexander escribió:
> EAPI in profiles and the -live version suffix are some of the improvements
> many people would like to see in the tree. Unfortunately, the risk of breaking
> systems with old versions of portage has been too high, holding evolution
> back.
> 
> I've been thinking about a way to solve this that would be easy to implement,
> without any significant compromises and one thing comes to mind:
> 
> Manipulation of the SYNC variable (i.e. rsync module),
> combined with tree snapshots.
> 
> At the moment, all systems have a SYNC line similar to this:
> 
> SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
> 
> My idea is simple. When incompatible changes have to be introduced to the
> tree, push a new version of portage that includes support for all the new
> features we want to provide.
> 
> Then, freeze the tree and clone it into a revbumped rsync module, i.e.
> 
> SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage-r1"
> 
> That way the last update provided by the old tree will be the updated portage
> package, which will be aware of the SYNC change.
> 
> After the user installs that update, every subsequent emerge run will print a
> fat red warning telling the user that the tree has been revbumped.
> 
> It will then provide instructions on how to update the make.conf/SYNC
> and a Y/N prompt to fix it itself. It could even do it automatically,
> but that's debatable.
> 
> By doing this we can be sure that any user using the revbumped SYNC have
> an up-to-date portage (if they cheated, well, that's their problem), allowing
> us to use all the new features provided by the latest version of portage.
> 
> For the above to work, we would require at least
> - support for multiple rsync modules pointing to different trees
>   [also in mirrors]
> - a way to freeze the current state of the tree for the current rsync module
>   and push future updates to a revbumped rsync module.
> - update our portage-snapshot tools to use the latest rsync module.
> - other things I'm probably forgetting right now
> 
> I'm not sure how much work would be required to make our current
> infrastructure support this, the infra people could shed some light on
> this.
> 
> The idea is to use this system sparingly, only when we need to push big
> changes that can't be supplied through an EAPI. Another example would be a
> change that would break the upgrade path. By freezing the tree at the right
> moment, we can be sure that the users will follow a known upgrade path
> that works.
> 
> Please keep in mind that my solution isn't trying to be the best thing
> possible. Instead, I'm aiming for something that would do the job and would be
> implemented in a realistic timeframe.
> 
> What do you guys think?

I haven't ever tried it but, what would occur if that people with really
updated systems simply unpack an updated stage3 tarball in their / and,
later, try to update?

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

  parent reply	other threads:[~2011-09-20 13:09 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-19 22:14 [gentoo-dev] RFC: Making backwards-incompatible tree changes | a solution for GLEP 55's problem Alex Alexander
2011-09-19 22:53 ` [gentoo-dev] " Duncan
2011-09-20  0:46   ` Rich Freeman
2011-09-20  1:44     ` Duncan
2011-09-20  7:12     ` Alex Alexander
2011-09-20 10:43       ` Patrick Lauer
2011-09-20 10:28     ` Brian Harring
2011-09-20 10:40       ` Ciaran McCreesh
2011-09-20 11:07         ` Brian Harring
2011-09-20 11:27           ` Ciaran McCreesh
2011-09-20 13:33         ` Ulrich Mueller
2011-09-20 10:50       ` Dirkjan Ochtman
2011-09-20  6:56   ` Alex Alexander
2011-09-20 13:09 ` Pacho Ramos [this message]
2011-09-20 13:16   ` [gentoo-dev] " Pacho Ramos
2011-09-20 13:16   ` Michał Górny
2011-09-20 13:25     ` Pacho Ramos
2011-09-20 13:57   ` [gentoo-dev] " Duncan
2011-09-20 14:23     ` Pacho Ramos
2011-09-20 17:00   ` [gentoo-dev] " Patrick Lauer
2011-09-21  4:00     ` [gentoo-dev] " Duncan
2011-09-21 13:24       ` Pacho Ramos
2011-09-20 15:19 ` [gentoo-dev] " Zac Medico
2011-09-20 15:28   ` Zac Medico
2011-09-20 17:03   ` Patrick Lauer
2011-09-20 17:14     ` Rich Freeman
2011-09-20 17:48       ` Alec Warner
2011-09-20 20:03         ` Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1316524141.1711.0.camel@belkin4 \
    --to=pacho@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox