[geeklog-devel] [geeklog-cvs] Geeklog-1.x
Mark Howard
mark at the-howards.net
Wed Nov 28 11:42:53 EST 2007
Apologies if this post from a relative newcomer violates list
etiquette/rules.
Perhaps if:
1) You froze the changes to 1.5, and released it as a 'developer's release'
eg. 1.5DR with big red warning stickers relating to the 1.4.1
incompatibilities.
2) In the 1.5DR documentation, you communicated/detailed the changes in the
API that break the 1.4.1 plugins - and I mean really good documentation,
with snippets/examples, etc etc (this makes it easier on the
less-accomplished developers)
3) Announced an 'end of support' for 1.4.1 as say, 6 months beyond the
release date for 1.5DR, what that actually means is something you can
determine (perhaps only efforts to fix security vulnerabilities if possible)
This may provide the motivation and information needed to bring the plugins
forward in a reasonable amount of time, and I think this 'overlapping
support' methodology is what I see in many commercial software packages.
This does, in effect, shorten the release cycle, and for the most
accomplished of developers, essentially makes 1.5 available on the release
date of 1.5DR.
Not trying to provoke or extend an argument, just trying to provide a
constructive suggestion, and my apologies if this has been suggested and
beaten into a bloody pulp on a prior occasion. ;^)
-m
-----Original Message-----
From: geeklog-devel-bounces at lists.geeklog.net
[mailto:geeklog-devel-bounces at lists.geeklog.net] On Behalf Of Joe Mucchiello
Sent: Tuesday, November 27, 2007 10:50 PM
To: Geeklog Development
Subject: Re: [geeklog-devel] [geeklog-cvs] Geeklog-1.x
At 01:11 PM 11/26/2007, Dirk Haun wrote:
>Which is the whole point of me pushing to stop adding new features and
>finishing what we have started elsewhere. You should have no problems at
>all to find quotes for my position on that ... Plus a few where I argued
>that we should try and move to a shorter release cycle.
This is my last attempt, I promise. I've beaten this bloody, vaguely
horse-shaped spot so hard because I don't see any upside to waiting
for 1.5.1 but I see plenty of downside.
1.5 breaks several API interfaces. This means few 1.4.1 plugins will
be 1.5 compatible without upgrades. The template library breaks
sloppy order of calls to the template class. This means many plugins
are not compatible out of the box with it. If you delay the template
library to 1.5.1, users will be forced to upgrade there plugins when
moving from 1.4.1 to 1.5 and 1.5 to 1.5.1.
Dirk, you want to shorten the release cycle. If you shorten the
release cycle, that puts extra burden on the admins of those Geeklog
sites. I would think it preferable to break the plugins only once and
perhaps have a quick upgrade after 1.5 where plugins (for the most
part) don't need to be updated and thus don't add to the burden of
upgrade. I'm sure the plugin authors will prefer not having to
release upgrades twice because Geeklog's core changes underneath them.
How about some plugin authors chiming in here? Or admins with a
several Geeklog sites? The upside to extra hassles over the next two
upgrades is 1.5 comes a few weeks sooner. I don't see how that's an
even tradeoff.
Taking full advantage of the new template library will take time.
Delaying the library also has the downside of not having stuff like
this in Geeklog. Below is a code snippet from ADMIN_list that I've
modified. There is no HTML in the code snippet. There are a lot fewer
IFs in the code snippet. There are a lot fewer temp variables in the
code snippet. Yes, the template file is a lot more complex. Arguably
the onclick HREF might belong in code. Still this doesn't go far
enough. With set_block, most of the files in the admin/list directory
should go away. But I didn't want post hundreds of lines of code to the
list.
Okay, I've said my peace. I'm done.
<!-- this is admin/list/header.thtml -->
<th class="{class}" nowrap="nowrap"
{!if sortable}
OnMouseOver="this.style.cursor='pointer';"
onclick="window.location.href='{form_url}{separator}order={order_var}&pr
evorder={prevorder}&direction={direction}"
{!endif}>
{!if chk_delete}
<input type="checkbox" name="chk_selectall"
title="{$LANG01[126]}" onclick="caItems(this.form);"{xhtml}>');
{!else}
{header_text}
{!if arrow} <img
src="{layout_url}/images/{arrow}.{image_type}" alt=""{xhtml}>{!endif}
{!endif}
</th>
if (is_array($options) AND $options['chkdelete']) {
$admin_templates->set_var('chk_delete', true);
$admin_templates->set_var('sortable', false);
$admin_templates->set_var('class', "admin-list-field");
$admin_templates->parse('header_row', 'header', true);
}
$admin_templates->set_var('chk_delete', false);
$admin_templates->set_var('image_type', IMAGE_TYPE);
$admin_templates->set_var('separator', $separator);
for ($i=0; $i < count($header_arr); $i++) { #iterate through all
headers
if (!empty($header_arr[$i]['header_class'])) {
$admin_templates->set_var('class',
$header_arr[$i]['header_class']);
} else {
$admin_templates->set_var('class', "admin-list-headerfield");
}
$admin_templates->set_var('header_text', $header_arr[$i]['text']);
$admin_templates->set_var('sortable',
isset($header_arr[$i]['sort']));
$admin_templates->set_var('order_var', $i);
$admin_templates->set_var('prevorder', $prevorder); //
these variables come from the $_GET array and are processed above this
snippet.
$admin_templates->set_var('direction', $direction);
$admin_templates->set_var('arrow',
$order==$header_arr[$i]['field'] ? $arrow : false);
$admin_templates->parse('header_row', 'header', true);
}
----
Joe Mucchiello
Throwing Dice Games
http://www.throwingdice.com
_______________________________________________
geeklog-devel mailing list
geeklog-devel at lists.geeklog.net
http://eight.pairlist.net/mailman/listinfo/geeklog-devel
More information about the geeklog-devel
mailing list