updates tool

Luke Macken lmacken at redhat.com
Fri Jan 12 03:01:44 UTC 2007


On Thu, Jan 11, 2007 at 11:28:36AM -0800, John Poelstra wrote:
> Hi,
> 
> I'm trying to get up to speed with how the updates tool works and what it 
> does.
> 
> I followed the instructions on this page 
> http://fedoraproject.org/wiki/Infrastructure/UpdatesSystem and downloaded 
> the source from CVS.  After that I followed the instructions in the README 
> to configure and install.  The README was very detailed and helpful!

That's good to hear!

> Is there more documentation on how to use the tool now that I have it 
> installed and greater context on how it all goes together?  The last part 
> of the README says:

Nope, not yet.  I'm still neck deep in the code, and working on putting
all of the pieces together still to get minimum functionality so we can 
actually start using it.  I'll hopefully throw some more useful
docs together once I get a free second away from the code and school
work.

For now, after following the README, you will be setup with a
development environment and a local SQLite database.  As far as
configuration, `updatessystem/config/app.cfg` contains all of the global
config options, and should be fine for testing by default (it won't send
out emails and such, as I have that commented out at the moment).
>From here `./start-updatessystem` will bring up the system, in which you can
interact with by going to http://localhost:8080

All the tool needs to function properly is a directory of built packages
(package/version/release/arch format at the moment), which defaults to
the 'test-build' directory at the top level of the project.  Ideally,
we will be able to point the tool at the output from any buildsystem,
and it should Just Work.

When you go to the 'New update' form, and type in the package name, the
system will automagically present you with a list of available
package-version-release's to choose from.  Once a package is added,
and submitted for pushing, an admin[0] is then able to push them out
to the updates-stage.

> Running the updates system test suite
> =====================================
> 
>    All tests are stored in the 'tests' module in this project, and can be
>    run by executing the command `nosetests` in top level of the project.
> 
>    For more information on Nose unit tests, please see:
> 
>            http://somethingaboutorange.com/mrl/projects/nose/
> 
> 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 0) I confess I have limited knowledge of python and have never used 'nose.'
> 
> 1) What is meant by a "project" when it says to execute the `nosetests` 
> command in the top level of "the project?"
> 
> 2) Is there a UI and if so how do I navigate to it?

python-nose is just a simple "discovery-based unittest extension" that
TurboGears can use to test the application itself.  It
pretty much goes through the project looking for classess and functions
beginning with 'test' and executes them.  What's awesome is that
combined with TurboGears, you can easily define tests that will automatically
get run on a clean SQLite database in memory, just by simply inheriting from
a DBTest class.  Right now most of the tests will probably fail, as I have
been making large changes to the project, and have not gotten a chance to
update the test cases.

I'm presently working on polishing up the push code, and getting basic
functionality working in a public test environment.  Hopefully this
weekend I'll have something public that people can prod with.

If you've got any more questions, please ask :)

luke

[0]: To add yourself as an admin, type 'tg-admin shell' in the top level
of the updates system directory and type:

    >>> me = User.get(1)
    >>> admin = Group.get(1)
    >>> me.addGroup(admin)

Then ^D, save the db, changes, and you should be good to go.  Now
you should have access to Pushing and Unpushing updates, as well as
TurboGears's CatWalk database tool (all of which will now be displayed
for you on the tool)




More information about the infrastructure mailing list