QOF generator site, maybe
linux at codehelp.co.uk
Fri Mar 18 03:17:02 EST 2005
I'm off to a meeting today to see if the UK government can be persuaded
against software patents across Europe, but before I left I just thought I'd
raise an idea I've been trialling. I plan to add a little scripting to the
static documentation site:
All the code will be downloadable so that users can run it locally.
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 (which will only need to be modified between runs to input the
names of the new objects.) 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 - these
tables will not be directly equivalent to the GnuCash Sqllite tables
because those will contain objects that are not compatible with QOF.
However, using QSF, the objects and data can be converted and
then merged using qof_book_merge. (Isn't it amazing how much has
come from the book merge code!)
4. Cache objects for any one user so that objects can refer to each other.
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
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.
This will be 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'll probably 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.
I do not expect this to be fully operational before the Gnome2 port is
released, but shortly afterwards.
Linas? Do you think we'll be OK to release QOF 0.5.2 before or with the Gnome2
port of GnuCash? I need to also synchronise it with the release of
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20050318/968f8000/attachment.bin
More information about the gnucash-devel