Csound Csound-dev Csound-tekno Search About

[Csnd] Csound Package Manager - v0.1

Date2012-11-08 18:23
FromSteven Yi
Subject[Csnd] Csound Package Manager - v0.1
Hi All,

After doing a bit of a code sprint the past few days, I'm release v0.1 of cspm (Csound Package Manager). It is available at:


If you go to the tags section, there is one for v0.1. 

At the moment, I got a fair amount of commands implemented, though there are things that still need to be done.  

The current command looks like this:

usage: cspm [-h]
            {server,install,update,list,installed,info,init,build,xml} ...

Csound Package Manager - version 0.1

optional arguments:
  -h, --help            show this help message and exit

Commands:
  {server,install,update,list,installed,info,init,build,xml}
    server              Add, remove, and list servers.
    install             Installs a list of packages.
    update              Update list of known packages.
    list                List packages matching a search string.
    installed           List installed packages.
    info                Display detailed information about a particular
                        package.
    init                Create a default .cspm file in the current directory.
    build               Build a package using the passed in .cspm file.
    xml                 Generate XML from .cspm file, suitable for
                        cspmrepo.xml.

there is a cspm and cspm.bat scripts to use in the download (NB: I have not tested the cspm.bat on windows).  I have created a simple cspm repository server at http://cspm-server.appspot.com to server up two test packages.  

Some things you can try out:

* cspm update
     this will update the list of packages

* go into the testCsd folder, try 'csound test.csd'.  This should fail due to the include.  Then run 'cspm install --local test-1.0' and try running the csd again.  This should download the test-1.0.tar.bz2 file and unpack it into the folder.

* try 'cspm server list', 'cspm server add', and 'cspm server remove' to list, add your own servers (using file:/// works for local repos), and remove.

* try building a package.  you can look at testPackages for examples.  there are a few commands in cspm to help build packages.  

** 'cspm init' will help create a default .cspm file.  This file is a descriptor for the package.

** 'cspm build your.cspm' will build a tar.bz2 package using the .cspm file

** 'cspm xml your.cspm' will output xml descriptor from the cspm that is suitable for adding to a cspmrepo.xml file.  

Repositories are locations that have a cspmrepo.xml that describes available packages, and a packages folder full of tar.bz2 packages.  


What I'm interested at this moment is getting some testers to help try things out and file bugs/issues/requests.  You can file issues at:


There are some known issues I am aware of.  Some are listed in the README, but what I can think of off the top of my head are:

* how to deal with #include's without versions, i.e. instead of #include "test-1.0/test.udo", can we use #include "test/test.udo".  One possibility is to use symlinks so that pkgname links to pkgname-latestversion (not sure if this would work on windows though)

* dependency tracking is not yet implemented (the test2 package is set to depend on test, but it is not yet worked out)

* coding practice: wondering if we need to do #ifndef guardblocks as a standard practice for items in the repository?

* not sure what fields will go into .cspm files

Also, a cspm-server needs to be developed.  I am currently doing research on using Google App Engine as I imagine it could handle the files and processing. If someone wants to work on building a server though, I'm more than happy to delegate on this one. :) 

Thanks!
steven