Key:
*-An important Item that needs to be finished
B-Initial of person who needs to fix this (Binki)
M-LordofWar needs to fix this
E-normaldotcom needs to fix this
x-finished task
=-Long-term goal
~-Cancelled goal
a-Goal needing assessment
?-needs reconsideration/explanation/rewording
Notes:
Initial release will no longer feature SSH auth, distrend will handle auth telnet-style. User registration will be done via PHP.
Simpleslave uses a PHP API to communicate with the mysql-backed server, allowing debugging while server software is nonfunctional.
Build
General
=-documenation: manpages
=-runtime support: should we eventually just go with APR, glib, maybe something from suckless people? Is libdaemon (or whatever's out there) useful?
=-XML (XML-RPC): useful as a communication protocol? as RPC protocol? see atheme; useful as job description format possibly.
B-remoteio: figure out how to handle communications; async + callbacks seems the best method to me atm
Master
B/E/?-Add calls to remotio -> make API for sending messages ~= a function for every type of message defined in protocol.h (are SendSignal() and SendExtSignal() good enough?)
a-XML-RPC interface for obtaining info
=-charsets: the program should operate in UTF-8. This is partially required by libxml2's (and XML's) usage of UTF-8. We want the program's internal charset to be UTF-8 and figure out if we need w_char/whatever to fulfill UTF-8. I don't believe we do... mabye we just need a declaration that al data stored must be in UTF-8 format. -> we need to consider how charsets work when and if issues come up
*-figure out delete-during-traversal with liblist
*-after job is complete and verified by the user, tar frames for easy download
x-Complete testing with interactive test mode
x-Complete DB testing with php server workaround
x-resolve conflict between liblist and libmysqlclient
x-update frame assigner to distribute some frames for lower-priority jobs when there's a higher priority job (Ask LordOfWar if this is implemented in sprocs already(it is))
Slave
B-UnpackJob() and supporting functions need to work
E-Add calls to remoteio, once it works or even before it works -> write message API functions and API
=-Make code more flexible for different types of jobs and operating systems (such as paths, libs, etc)
=-Add code to allow pausing/resuming of the slave (including a running blender process) -> signal handling (SIGTSTP vs. SIGSTOP), distrenslave_control cmdline interface
B-Add tmpdir variable (just like the datadir variable) that is compile-time or whatever -> simple API to allow configuration-file override while taking into account defaults set by ./configure
E-Add error checking and cleaner recursive deletion to delete_jobdata
=-Upload finished frames' output files while rendering subsequent frames
x=Add lockout of slaves below a certain version
x-Add simpleslave with code to work around nonexisting server codebase
x-Backport SimpleSlave functionality to slave code
x-Restore tar functionality after unpackJob() is functional (6/26/10: unpackJob isn't functional, but tar re-implemented)
Options
B-Push patch for relative includes in confuse to the confuse developers -- windows/mingw32 testing required first
?-Expand execio() to support stderr
=-Rewrite some stuff, try to make it simpler
=-Review all confuse interfacing
x-Move server and client confuse code into their individual files, rather than in the common file. -- note: there wasn't any client code in options.c. There was the ``server'' section. That section is passed multiple times and provides information to remoteio on how to connect to servers
WebInterface
*-Tarball validation and other checks
*-Scale images on web interface, imagemagick?
*-Add "stop" button functionality and other missing button functionality
E-Check queries and output for all edit scripts, e.g., edit profile userlevel dropdown doesn't show the user's current userlevel
E-Simplify web interface, make it more lightweight
E-Make some icons for deleting/editing/etc that aren't horribly ugly
E-Get rid of "My Output" or move some functionality to this area
=-Allow "archiving" of jobs?
=-Begin working on MeshLib seamless integration with DistRen
=-Create install.php to guide through database connection and schema deployment
=-Add feature to "purchase" priority with Render_Points
Overall
*-Output type is currently a placeholder option at this point, make it actually affect the output
*-Change the way the database handles storage of paths to frame data (path + extension?)
*-Output resolution is currently a placeholder option, make it actually affect the output