[Csnd] Csound Package Manager - v0.1
Date | 2012-11-08 18:23 |
From | Steven 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 |