I just built conary=2.2.alpha_a98b4e8eaf6f-1-1 which has several
important changes, several of which were suggested by foresight
developers.  Again, I thank you for your testing and suggestions.
Also, I thank you for your patience as you read through this long
email.  If you use system model, you definitely want to read this.

This update changes the /etc/conary/system-model file in a few ways.
This may lead to both you and conary rewriting your system-model
file.  The rest of this email describes how and why.


STABLE LATEST VERSIONS
======================

Whenever you specify an "update" or "install" command with a label,
Conary will look up the latest package and put an explicit reference
to that version in the /etc/conary/system-model file.

    # conary rq --labels xchat=mkj.rpath....@fl:2
    xchat=mkj.rpath....@fl:2/2.8.4-0.3-1
    # conary update xchat=mkj.rpath....@fl:2
    # grep xchat /etc/conary/system-model
    update xchat=mkj.rpath....@fl:2/2.8.4-0.3-1

Note that Conary itself looked up the "2.8.4-0.3-1" and added it
to the model.

This means that when you are doing development, you can do:

    $ cvc ci foo
    
        <build foo=foresight.rpath....@fl:2-devel>

    # conary update foo=foresight.rpath....@fl:2-devel

Now, the latest version of foo that you just built will be on your
system.

This means that you no longer need to use a "search" line for every
package outside groups that you want to update in a stable way.
So most users will need only one or two search lines at the beginning
of your model.  If you have something like this:

    search exif=contrib.rpath....@rpl:2/0.6.9-7-0.1
    search exiftags=contrib.rpath....@rpl:2/1.01-2-0.1
    search jhead=contrib.rpath....@rpl:2/2.8-1-0.1
    update exif exiftags jhead

You will want to change it (with a text editor, this change is not
automated) to something like:

    update exif=contrib.rpath....@rpl:2/0.6.9-7-0.1 
exiftags=contrib.rpath....@rpl:2/1.01-2-0.1 
jhead=contrib.rpath....@rpl:2/2.8-1-0.1

When you run the "conary updateall" command, all trove reference that
include a version (not just a label) will update to the latest version.

The genmodel script has been updated not to generate the extra search
lines when creating new model files.


SIMPLER MODEL FILES
===================

Conary now tries to simplify the models that it writes, which should
make them easier to understand and faster to run -- and also fix
a bug.  It will do this only if it confirms that the simplification
doesn't change the way the system is defined.  Previously, if you ran
"conary update foo bar" followed by "conary erase foo", you would
have the following two lines in your /etc/conary/system-model file:

    update foo bar
    erase foo

Now, if "foo" is on the system only because of that update line,
it will change those two lines to:

    update bar

It will do that only if it results in the exact same set of packages
installed.  (Conary rebuilds the entire simplified model and compares
it to the unsimplified model, and if they don't match, it just gives
up.)  It does not try over and over to simplify until the model has
been reduced to its essense, but it is intended do at least some
reasonable simplifications introduced by the current command.

One very important simplification is that it should notice when
updating one locally-built changeset (you will see lo...@local:COOK
in the system-model file) supercedes another, and it should remove
the reference to the outdated version.  Previously, thate action
would succeed, but the next conary update/erase/sync action after
that would fail trying to look up the earlier version.  This should
be fixed.  https://issues.rpath.com/browse/CNY-3536

Expect additional simplifications to be added in the future.


PINNED VERSIONS IN MODELS
=========================

While it is nice that conary easily snapshots versions by default,
what if you want a specific version NOT to change?  You can
now specify a version that you do not want Conary to change when
running the "conary updateall" command: use a "==" instead of a "=".
This is considered an advanced capability and isn't available at
the command line; the only way to do this is with a text editor.

    search group-world=foresight.rpath....@fl:2-devel/2.4.9.1+2010.11.16-0.1-1
    install group-gnome-dist
    # I never want to update tightvnc from this specific version,
    # even when I run updateall
    install tightvnc==foresight.rpath....@fl:2/1.3.9-1.4-1
    # I like mkj's version of xchat, and I want new versions when I run
    # "conary updateall" after mkj has built a new version
    update xchat=mkj.rpath....@fl:2/2.8.4-0.3-1
    install Genshi pypdf
_______________________________________________
Foresight-devel mailing list
Foresight-devel@lists.rpath.org
http://lists.rpath.org/mailman/listinfo/foresight-devel

Reply via email to