This week has been a very active one for Midgard development. A
lot of interesting ideas have been discussed on both main and
developer mailing lists, and we also have many promising new
patches in for the upcoming third beta of Midgard 1.4.
Midgard’s new replication system Repligard is being worked on
very actively. Jukka Zitting has assumed the responsibility for
this module, and is now handling most of the development.
We have divided the project into three phases for easier
manageability. The first phase is for creating one-way (one to
many) replication and tools for working with the Repligard XML
files. This is very possibly the level where Repligard will be in
the final 1.4 release.
The second phase is for collecting experiences about usability
of the one-way replication and creating a set of
replication-friendly coding standards.
The third phase then is about extending the one-way replication
system into working as a more general two-way (many to many)
replication and packaging system. The coding standards will play a
very important part here, helping us to move from the current ID
number system that is tied to an individual database to a new
system of unique IDs (GUIDs).
Our current hopes are to be well into the third phase by
mid-April, but the schedule might change slightly as the work
At the moment Repligard is already able to dump selected parts
of a Midgard database into XML files and keep the sequence of
entries there consistent so that these XML dumps can be version
controlled using CVS. Midgard now also includes a new history table
that Repligard can use for determining when different changes have
actually happened. The history table should also help teamwork on
Midgard applications by incorporating modification comments into
There has been quite much discussion on our implementation plans
for Repligard on the midgard-dev mailing list. The threads are
available from the MARC system.
There has been discussion about adding extensible records into
Midgard for quite some time, and this was supposed to be one of the
major new features for Midgard 2.0
As the work on that code tree has been stopped, the need to
develop this addition to the 1.2.x tree has come up.
There are now two proposals for doing this available. Emile
Heyns has already a patch for Midgard 1.2.5 that supports this
feature, and Jean-Pierre Arneodo has also posted his plans about
similar features for the Oracle port of Midgard.
Emile is currently looking for testers who are running Midgard
1.2.5, so if you are interested in trying this out, please contact
him. The patch can be found from Emile’s Web site.
Patch for PHP 3.0.15 available
Version 3.0.15 is the latest release of PHP. It includes some
important security fixes and also contains many other
Alexander Bokovoy has made a patch available for the release
enabling it to be used with Midgard. The patch is done for Midgard
1.2.6-beta2, but can also be made to work with Midgard 1.2.5 with
If you want to use this patch, be sure to read the thread about
it on Midgard’s mailing list.
OOP support for Midgard records
Jukka Zitting has added a nice new feature into Midgard,
enabling Midgard applications to be coded in a much cleaner way.
Now all mgd_get_record functions return methods for modifying the
records without needing to call the specific modification
This means that developers don’t need to use the hideously long
parameter lists when creating applications that modify the contents
of the Midgard database some way, but can rather spare the effort
for working on the more productive parts of their Midgard
The OOP functions are now available in CVS, and documentation
about them can be read from Jukka’s announcement on the midgard-dev
list. Read the mail and it’ll become clear to you why this is so
big an improvement.
New CVS commit policy
We now have enough developers working on the Midgard code that
some policies need to be set down to avoid a general state of chaos
in the repository.
By Emile’s proposal, all new feature additions to Midgard core
should now get approved by the branch maintainer before they are
allowed to be committed in. Bug fixes and minor improvements can of
course bypass these, as can normal work on the existing
This is not to add needless bureaucracy to Midgard development
work, but rather to ensure that everybody working on the code knows
what is going on and to keep the tree in a shape where it can be
stabilized when making a release.
The thread about this new policy also includes some discussion
about Midgard release practices and a listing by Alexander about
what additions have so far been discussed for inclusion into
Midgard is a freely-available Web application development and
publishing platform based on the popular PHP scripting language. It
is an Open Source development project, giving you the freedom to
create your solutions in an open environment. Midgard is the tool
for creating, modifying and maintaining dynamic database-enabled
The Midgard Weekly Summary is a newsletter for the Midgard user
and developer community.
The MWS is currently being distributed in following mediums:
-The Midgard Project’s Web site
-Linux Weekly News
-Linux Developer’s Network
-Midgard mailing list
If you would like to release it elsewhere, please contact Henri
Previous issues of Midgard Weekly Summary can be found archived
at the Midgard web site.