MidCOM and its further adaption to new Midgard versions - AKA Midgard core quality

Torben Nehmer <[email protected]>
Newsgroups gmane.comp.web.midgard.devel
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

as you might have noticed, I'm already growing a bit annoyed again about certain
 changes in 1.8 functionality, which seem - to me - not very well
thought-through. I have already complained about this trend more then once, both
in IRC and on this list, without too much of a response except the work did by
Jukka. Therefore I now draw my consequences.

To sum it up for a last time:

Large parts of the Midgard core, *including* the new parts that have been
written within the last 6 months, are undocumented, both in terms of their
specification and their actual API (both on a C level and on their language
bindings). In addition to this, many of the enchantments done are very isolated
pieces of "this could be a good thing here", they don't fit into a (not actually
existing) grand scheme and forced me to create hundreds, if not thousands of
lines of glue code to bring them up to the OO standards I provide to my authors.

Just to name a *few* examples as they come to my mind:

- - QB-APIs, which still produce notices on empty(!) resultsets
- - QB calls which just fail when you pass them null (at least they don't segfault
  anymore).
- - An mgdschema file format, which provides tons of features to you, given you
  can get hold of one of the core guys so that he cen tell you about it.
- - Date handling in the schema, which is unflexible and actually broke full
  backwards compatiblity by deprecating UNIX timestamps replacing them by ISO
  timestamps everywhere (not just on date fields you explicitly declare). My
  recommendation to have more then one date type to handle this was ignored.
- - The neccessity to get_by_(gu)id instead of just using the constructor of the
  DB class (like in DBA).
- - No schema parsing in config-test, essentially shooting down your server in
  case you have an error in your schema when trying to restart. Especially great
  for production environments. <irony> At least we now have an occasional error
  message before a SIG_ABORT here, not just a SIG_SEGFAULT, guess I should be
  grateful.</irony>

The existing documentation (like the MgdSchema or QB API in the Wiki) is - to
say it defensivly) mostly useless, it omits most cavets that are in all those
classes.


I said that I'd draw the consequences:

Hereby I officially cease to support any 1.8 version/feature in the current
MidCOM CVS codebase or any future development thereoff in any part of the core
(/lib/midcom/*), unless:

a) The whole development of the core gets into a more regulated and documented
iterative software development process including full specifications (not like
mRFC 12, more like mRFC 24).

b) The core is completly and verbosly documented in terms of *both* core *and*
language binding (at least PHP) level.


I will no longer put any time into discussing these things, this is
unproductive, time-consuming and frustrating in most cases nowadays. If you want
me to support a feature, show me the *full* specs and docs you have about it so
far, then I'll give you thumbs up or down (with critics of course).

I will not comment 25-line specifications of anything.


Again, I regret that I have to take this drastic measure, but I stand for MidCOM
core quality with my name throughout the community, both private and commercial
(and thus my current primary income).

If the Midgard core cannot keep up to the standards I am trying to establish so
far, I cannot keep up this level of quality I have established so far. Thus I am
 forced to stay with versions that I can safely declare usable for myself.


There will be *no* discussion about this topic. If you do not like my decision,
feel free to find another MidCOM project leader or just fork off your own
branch. But as long as I have the final saying on this, my decision stands.


Live long and Prosper!
Torben Nehmer

- --
Torben Nehmer, Guenzburg, Bavaria, Germany
http://www.nathan-syntronics.de, mailto:[email protected]
PGP Public Key: https://www.link-m.de/pgp/t.nehmer.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFD6esCJPh4Kn6d5FYRAl0qAKCHq6jijwL0As1uWVtcKH3VRkDhpgCdET+f
9kM/CTlJuQfVN6nCZ+PAt+M=
=eHl3
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.