Sunday, August 21, 2011

Things to deploy, things to deploy...

I'm taking a look at the number of different things I'll have to install together with StudyStreams, and it is, to say the least, depressing.  I wouldn't say that it's more than an average project: in fact, I'm quite sure it's a good deal less than an average project, but this will be the first time I write an install script, and I am not sure I'm happy with all the things it'll have to do.

So far, I've identified the following parts:
  •  The header files that lessons will need to include.  Unclear:  should I also provide those that lessons will never want to include?  Do I have such headers (I think I do:  enumutils.hpp).
  • The static library that will need to be linked.  By the way: do I really want it to be a static library, or should I change it to be dynamic now that the testing phase is over?  Is there any benefit in making it dynamic?
  • Some Python modules that get the build system going.
  • The lessons themselves.
  • Some generic way of specifying rules for the lessons:  most likely, a single SConstruct file.
A few concerns:
  • It seems like it may take too long to read all SConscript files before building.  Better get it working before worrying about speed, though.
  • There needs to be a good way of defining lessons in Python, and I'm still not sure whether I've gotten a way to add that in elegantly.  Hopefully the Scons builder system will provide a good answer.
I'm not quite pleased that the user will be unable to move the lessons around:  it seems like lessons should be agnostic of their location, but customisation becomes much easier if they're bundled like this.   Still deciding whether one SConstruct per lesson would be better...

All in all, I expect installation to be somewhat of a pain.  Will get that out of the way before writing the lessons, and once that's done, it's just a matter of reviewing all documentation, figuring out if there are any more tests to add, and preparing for shipping.

.ii ru'e

No comments:

Post a Comment