Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have a project in Python where I have a server. The server can have a variety of different services, but I don't know what those are until I start it up. I want it to do a search of available plugin files to know what services are available.

Right now, I'm doing that by just having the metadata files as Python source code and loading it using imp.load_source.

My question is where do I store these metadata files? The metadata files need to contain information pointing to files on the filesystem. For example, one of the programs the service needs to launch is a java program. I have the jar file and I compile it myself, but when I'm working on the project the compiled file goes into the build directory. When I'm going to want to install this on a machine, I'll need to store the files somewhere else. I want to keep the source directory and build directory separate (as it makes the clean command easier).

What standard practice is done to handle the need for metadata files and where they are located?

EDIT: I'm trying to target both Windows and Linux systems (and hopefully Mac systems too, but that's less important). For Linux, most important are the major distributions (such as Fedora and Debian) and hopefully others (although this is dependent on others trying to use it on whatever distribution, as I cannot test all of them and will only test on Fedora and Debian myself).

share|improve this question
    
Please pick an operating system. Further, for Linux, it helps to pick a specific distribution. –  S.Lott Apr 27 '11 at 17:58
add comment

1 Answer

This sounds like you're reinventing software deployment. There are some great free tools for this! Using one will save you tons of headache and hassle, now and in the future, at the expense of learning one new simple tool.

I've had good experience with Buildout, which is quite widely used in Python projects and highly recommended.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.