[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]
I just thought I'd raise an idea I've been trialling and ask if anyone is able to help out. QOF Generator is now active at SourceForge: http://sourceforge.net/projects/qof-gen/ http://qof-gen.sourceforge.net/ It's about generating code to use with a *specific* C library. The library is QOF - Query Object Framework and I've been working with it for some time, extending it's capabilities. I've added an XML backend that is known as QSF. http://sourceforge.net/projects/qof http://code.neil.williamsleesmill.me.uk/ A QOF definition is basically a repetitive, standardised layout of C code. Every QOF object C file *could* look basically the same as every other. The customised code that actually does something useful with the data in RAM is separate, all I'm providing here is the simple link to the QOF framework expressed in C. All the code will be downloadable so that users can run it locally. It has it's first CVS commits and first file release. Most of the intended functionality is to follow, this is very much pre-alpha. However, the C file produced DOES compile. What I'm working on today is the mini-application and general functionality / documentation. Currently, it's setup in testing mode so it tends to rename everything invoice and it doesn't take your name or email, it uses mine as default! ;-) Project Outline: ------------------ 1. Through a series of HTML forms, create the C code for a new QOF object. Complete with parameter handlers, makefiles and a simple query console application. The object will contain enough data to populate it's own entities when the application is compiled and linked against QOF. 2. Provide a simple command-line interface for the mini-application to query the objects and write out the results as QSF. (A simple application like this already exists - it's waiting for the release of pilot-link-0.12 before being committed to pilot-link CVS.) 3. Write out an empty QSF file as a template and a MySQL CREATE statement for a suitable table for the object. (That will provide a way for QSF to create MySQL tables suitable for specific objects. 4. Cache objects for any one user so that objects can refer to each other. (MySQL). 5. Populate those tables / objects using PHP and the local MySQL tables created during generation, maybe using a MySQL call to a different table(s) and write out to QSF. (Best done locally.) 6. Upload a QSF file and create the C code (and databases) that are needed. Each QSF file is a complete description of each object within, omitting only those parameters that are get() only. 7. A simple method of creating a QSF Map by possibly comparing two QSF files. 8. All the code to be provided in a generated tarball at the end of the scripting process, complete with ./configure, GNU GPL, makefiles and ready to link against libqof >= 0.5.2. I may even be able to do a test build on the server before the tarball is created. 9. Reverse-engineer any existing QOF object by uploading a QSF file and re-creating the fundamental C code. This code will not do anything specific with the data, just store it in the object, provide QOF access and therefore QSF. 10. All generated C code will automatically include the usual copyright notice as well as the GNU GPL notice. Note that as generation of the code using a remote site is, in essence, publication and distribution, the GNU GPL becomes effective immediately when code is generated that way. :-) 11. Although users will "login" to provide their name and email address for the copyright stuff, that data will be erased when the code is generated. However, the generated code itself will remain available as a tarball on the site. Visitors are, naturally, free to download the generator code itself and implement it locally if this is preferable. The QSF schema will remain under the GNU GPL. 12. The code is packaged into a tarball; the code requires QOF to build. Currently, this must also be the CVS QOF code - the binary and main package release are too old. This is a separate project as it can't really be part of the main QOF codebase. It will be allied to it and will serve the main purposes of QOF and GnuCash. I've put it on SourceForge and if anyone is interested in helping out, please contact me. You'll need MySQL, PHP, XML and HTML experience only. C or Scheme experience is NOT required. OK, that's it for this list, all discussions on the generator via private email please. I'll use a dedicated SourceForge mailing list if there is a need. -- Neil Williams ============= http://www.dcglug.org.uk/ http://www.nosoftwarepatents.com/ http://sourceforge.net/projects/isbnsearch/ http://www.neil.williamsleesmill.me.uk/ http://www.biglumber.com/x/web?qs=0x8801094A28BCB3E3
Attachment:
pgp00018.pgp
Description: PGP signature