File Release Notes and Changelog
Release Name: 1.4.2
Notes:
INTRODUCTION
-----------------------------------------------------------------------
This program is designed to enter data in personal databases, for a
single user. The goals are: load quickly, support easy keyboard
entry, support foreign key lookups and strong referential integrity,
and do not require a database server.
It includes several sample schemas (the chief example is d-schema.xml).
Because schemas can be expressed in the schema language, the program
can be used to create new schemas.
NOTES ON USING THE PROGRAM
-----------------------------------------------------------------------
* The only command line argument accepted is the name of the schema
and data file to load. The schema is <name>-schema.xml and the
data file is <name>.xml.
* Check Help|About to see what schema and data files are being loaded.
The directories searched are:
- If the application is installed, running from
/usr/bin:
+ First, ~/.tupim,
+ then /usr/share/tupim.
+ Files are always saved in ~/.tupim.
- If the appication is run from the "src/" directory of the source
distribution:
+ [app-dir]/../data.
- If the application is run from an extracted debian archive:
+ [app-dir]/../share/tupim.
* If no name is given, "default" is assumed, so "default-schema.xml"
is loaded as the schema and "default.xml" is loaded as the data file.
* If you try to delete a record that other records depend on, a dialog
will appear allowing you to "Highlight Dependencies." You must
delete these records first due to referential integrity. Use
View | Clear Highlights to remove the highlights.
* The tree view shows the "recordstring" (some of the fields seperated
by spaces). All fields except counters are added by default. Use
"<x/>" (Exclude From Recordstring) in the schema to exclude unwanted
fields.
* You cannot save the changes to the data file or navigate to a
different record while a record is being edited. Save or cancel the
record edits first.
* No attempt is made to validate the data file against its schema.
If you add a new required field to the schema, records are not
validated until they are modified. If incompatible changes are
made to the schema, adjust the data file in a text editor or with
a tool. The program can segfault or operate incorrectly if the data
file is incompatible with the schema.
* The file is not saved until you press Save. I usually save after
each record change, to "commit changes" early. The program is
designed for a single user, with small databases, so saving the
file after each record change is a good idea.
* Backup your data file after making important changes or when
altering the schema. No data corruption has been observed
under "normal" circumstances, but the program is not designed
to be resillient to invalid or insecure data.
* Use Help|Regexp Patterns to view the regular expressions
for the various formats, to see why your input is rejected.
* All application commands are displayed in the menu. Keyboard
shortcuts are displayed next to their menu commands. Other useful
GTK shortcuts are: F6, to switch between panes, and Ctrl+Enter,
to enter a newline.
SCHEMA SYNTAX
-----------------------------------------------------------------------
schema: top level element
l: choice list
n: list name
i: list item
s: section
t: table
n: code name Caption
r: references table columns
b: display before
c: column
n: code name Caption
e: edit type (text, note, counter, lookup, choice, check)
f: format (currency, date, decimal, email, number, phone,
signed-currency, signed-decimal, signed-number, zip)
t: lookup table
l: choice list
b: allow blank
x: exclude from recordstring
DATA SYNTAX
-----------------------------------------------------------------------
data: top level element
<table-code>: records for <table-code>
x: record
<column-code>: value of <column-code> for this record
NOTES ON SCHEMAS DISTRIBUTED
-----------------------------------------------------------------------
* schema-schema.xml is a schema which generates data files that can
be transformed into schemas using schema.xsl. schema-source.xml
is a data file which when transformed produces schema-schema.xml.
* d-schema.xml is a sample schema used to keep track of personal
information, and the reason I wrote the program. d-source.xml can
be transformed into d-schema.xml.
* verify-source verifies that a source and its generated schema are
identical.
Examples:
zcat /usr/share/doc/tupim/examples/verify-source.gz \
| bash -s /usr/share/tupim/schema
-> Verifies that schema-source.xml and schema-schema.xml produce the
same XML (except for formatting).
zcat /usr/share/doc/tupim/examples/verify-source \
| bash -s /usr/share/tupim/d
-> Does the same for d-source.xml and d-schema.xml.
* make-schema generates a schema from a source. Use this when creating
new schemas.
Example:
ln -s /usr/share/tupim/schema-schema.xml \
~/.tupim/foo-source-schema.xml
cp /usr/share/tupim/empty.xml ~/.tupim/foo-source.xml
tupim foo-source
-> [use the program to populate foo-source with a schema definition]
zcat /usr/share/doc/tupim/examples/make-schema.gz \
| bash -s ~/.tupim/foo
tupim foo
-> [use the program to edit data based on your new schema]
* Other schemas included:
c-schema: Track your credit card receipts.
r-schema: Enter your resume.
m-schema: Track your music collection.
w-schema: Track your weight/calorie intake.
Changes:
Changed package name to "tupim" (Tom's Unique PIM) to avoid namespace pollution if/when added to the Debian archive.
Symlinks to /usr/bin/pim as well.
ChangeLog:
main.c: Change default schema to "default"
symlink d{,-schema}.xml to default{,-schema}.xml
main.c: Look for schemas and data in [app-dir]/../data and
[app-dir]/../share/tupim when app is not installed.
proj.c: Include docs/ sources, pixmaps, proj.c, info.h, and
exclude docs/ outputs from make dist
proj.c: Do not build docs/README
change NEWS to script, add NEWS to Help Menu
main.c: Fixed bugs in checking schema_name in main().
main.c: Follow symlinks in find().
main.c: Display schema and data file names in Help|About.
proj.c: Fixed broken symlinks in make dist.
Fixed typos and added new documentation in README.m4.
debian/changelog:
* New Release (see changelog)
* proj.c: Build docs/README in debian/rules.
* proj.c: Added debian/tupim.links.
* proj.c: Depend on clean in debian/rules binary.