summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-dev/20101008/001021.html
diff options
context:
space:
mode:
Diffstat (limited to 'zarb-ml/mageia-dev/20101008/001021.html')
-rw-r--r--zarb-ml/mageia-dev/20101008/001021.html183
1 files changed, 183 insertions, 0 deletions
diff --git a/zarb-ml/mageia-dev/20101008/001021.html b/zarb-ml/mageia-dev/20101008/001021.html
new file mode 100644
index 000000000..6c135ecb0
--- /dev/null
+++ b/zarb-ml/mageia-dev/20101008/001021.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> [Mageia-dev] Proposal: Updating released versions (long post)
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:mageia-dev%40mageia.org?Subject=Re%3A%20%5BMageia-dev%5D%20Proposal%3A%20Updating%20released%20versions%20%28long%20post%29&In-Reply-To=%3C4CAE5C89.9040501%40roadrunner.com%3E">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="001020.html">
+ <LINK REL="Next" HREF="001022.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>[Mageia-dev] Proposal: Updating released versions (long post)</H1>
+ <B>Frank Griffin</B>
+ <A HREF="mailto:mageia-dev%40mageia.org?Subject=Re%3A%20%5BMageia-dev%5D%20Proposal%3A%20Updating%20released%20versions%20%28long%20post%29&In-Reply-To=%3C4CAE5C89.9040501%40roadrunner.com%3E"
+ TITLE="[Mageia-dev] Proposal: Updating released versions (long post)">ftg at roadrunner.com
+ </A><BR>
+ <I>Fri Oct 8 01:49:29 CEST 2010</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="001020.html">[Mageia-dev] Talk of Browsers
+</A></li>
+ <LI>Next message: <A HREF="001022.html">[Mageia-dev] Proposal: Updating released versions (long post)
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#1021">[ date ]</a>
+ <a href="thread.html#1021">[ thread ]</a>
+ <a href="subject.html#1021">[ subject ]</a>
+ <a href="author.html#1021">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>Part of the recent thread about what the desirable release cycle should
+be devolved into a discussion of how backports works and whether or not
+it's suitable. I'd like to examine this issue.
+
+The current urpmi repository architecture serves purposes that were
+meaningful to Mandriva. It segregates main from contrib for statement
+of support reasons, it separates non-free from main for philosophical
+reasons, and it separates restricted from main for legal and business
+reasons.
+
+This works pretty well for cooker, where you either want a particular
+category of package considered or you don't, but the reuse of this model
+for updates, backports, and testing in released versions isn't as good a
+fit.
+
+The root of the problem is that the user base is different. Users of
+cooker want the latest and greatest of everything, and have accepted
+that if something breaks in cooker, it may stay broken for awhile.
+Users of released versions vary all over the map, from people who never
+want anything to change to people who want some specific updates to
+people who want everything new but want it stable. Users of cooker
+rarely think about security updates, because in grabbing everything
+available constantly, the security updates are &quot;just there&quot;. With users
+of released versions, they may have to opt-in for security updates, and
+usually want to treat other updates differently.
+
+I'd like to propose the following model for updating released versions:
+
+1) Users should not have to see, except in minor ways, the different
+repositories. Urpmi may see them, and advanced or ideologically polar
+users may care about them (e.g. free vs non-free), but most users
+won't. Instead, let urpmi or rpmdrake have knowledge about all
+repositories whether enabled or not, and display the offerings with an
+icon, tooltip, or extra column that indicates the status of the package.
+
+2) The update tool we give these users should distinguish between
+security updates and backports/testing, but present them both. This is
+very much like the Windows Update model, where all available fixes are
+divided into &quot;Critical System Updates&quot; and &quot;Software Updates&quot;. We don't
+really have the same support constraints as Mandriva, and there's no
+need to automatically disable backports across the board, and not even
+present the backports as possibilities.
+
+3) Users should be able to enable options for each category
+independently. Most users would probably want security updates applied
+automatically, but would want to be notified of availability of
+backports or testing and choose those manually.
+
+(Here's the biggie :-) )
+4) We need to enhance the urpmi.recover functionality and bring it fully
+into mainstream urpmi so that ANY PACKAGE CAN BE ROLLED BACK TO ITS
+PREVIOUS VERSION (sorry for the caps). If we don't want to be stuck
+with trying to reconcile our desire to QA some packages better than
+others with some users' desires to at least *try* the newest stuff, then
+we need to allow them to move forwards and backwards in the package
+history as easily as possible.
+
+Yes, I know this is problematic. It means that we have to do a really
+good job of getting dependencies right. But if the dependencies *are*
+right, then this should be doable.
+
+It means that we need to expand the logic in urpmi that can currently
+identify the packages that need to be uninstalled if some other package
+is uninstalled so that it can take into account the package it will be
+installing in its place (and the other older versions of packages that
+it will require), and compare the two lists to produce a &quot;diff&quot;.
+
+It needs to decide which changes can be &quot;quiet&quot;, e.g. &quot;A&quot; 1.3 requires
+&quot;B&quot; 1.3&quot; and &quot;A&quot; 1.2 requires &quot;B&quot; 1.2, so a request to replace &quot;A&quot; 1.3
+with &quot;A&quot; 1.2 would cause a replacement of &quot;B&quot; 1.3 with &quot;B&quot; 1.2 in the
+same transaction. This may have a cascading effect. In any event, the
+user should be told what's going to be backlevelled, but specifically
+*not* see the current urpmi list of everything that will have to be
+removed if &quot;A&quot; 1.3 is removed if most of that stuff is simply going to
+be replaced with its own previous versions. In other words, rather than
+tell the user that removing &quot;A&quot; 1.3 is going to remove half of KDE and
+scare the sh*t out of him, just tell him that the following packages are
+going to have to be backlevelled as well. If there really are things
+that can't be undone and redone, that should be a separate highly
+visible prompt.
+
+This will require some extended transactional support in urpmi, I would
+think, because we'd literally have to overrule rpm about pulling stuff
+out from under the feet of other packages if we knew we were going to
+put it back. That would mean that we'd have the responsibility of
+ensuring that the transaction either committed fully from our
+perspective, or got fully rolled back.
+
+This also means that packagers would have to be aware of packages that
+reformat their application files as the version increases, and would
+have to archive previous versions using some naming scheme so that they
+could be restored (and the current version archived) if an uninstall was
+requested. Of course, this would require a prompt to the user to inform
+him that any configuration changes made since the upgrade would be
+lost. We'd probably also have to expand the &quot;rpmnew&quot; concept to be
+version-specific.
+
+Yes, I realize that a couple of clicks could require a *lot* of
+processing; but that can happen today, and the user would still get a
+prompt about what was going to be done.
+
+=========================
+
+If all this were done, updates/backports/testing could be touted as a
+&quot;try it&quot; environment. Click on the update(s) you want to try, we'll
+tell you what else we're going to have to upgrade as well, and if for
+some reason it doesn't work, you click to restore it to version x.x, we
+tell you what will also be restored, and we do it. That way, we don't
+have to worry about &quot;guaranteeing&quot; perfect quality updates. If we
+missed something, and it doesn't work for you, just roll it back.
+
+This does require access to all previous versions of each package since
+release. However, unless we screw up royally on a recurring basis, the
+demand for these intermediate packages should be *much* lighter than for
+the current versions, so hosting them on a Mageia primary or possibly
+the first-tier mirrors should be sufficient.
+
+It may be that a good implementation of this would require the
+availability of significant disk space for translation-related backups
+or such, on the root partition or some other designated partition. If
+so, we should determine if there is sufficient space, and if not, alert
+the user that his choices are to abort the update or else realize that
+he won't be able to roll back. Windows XP SPs do this. I don't see a
+problem with this, since the current urpmi response to insufficient disk
+space is basically to abort the package install but keep going.
+
+Thoughts ?
+</PRE>
+
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="001020.html">[Mageia-dev] Talk of Browsers
+</A></li>
+ <LI>Next message: <A HREF="001022.html">[Mageia-dev] Proposal: Updating released versions (long post)
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#1021">[ date ]</a>
+ <a href="thread.html#1021">[ thread ]</a>
+ <a href="subject.html#1021">[ subject ]</a>
+ <a href="author.html#1021">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="https://www.mageia.org/mailman/listinfo/mageia-dev">More information about the Mageia-dev
+mailing list</a><br>
+</body></html>