Tuesday, October 17 - Qcodo Beta 3 Pre-Release

thread: 16 messages  |  last: about 5 years ago  |  started: tuesday, october 17, 2006, 12:11 am pdt


#1  |  Mike Ho (Sunnyvale, CA) United States of America Qcodo Administrator
Tuesday, October 17, 2006, 12:11 AM PDT

After a lot of exciting anticipation, I'm happy to announce the PRE RELEASE of Qcodo Beta 3!

There are a <B>LOT</B> of changes in this new release, which will break Backward Compatability against prior releases of Qcodo.  Beta 1 -> Beta 2 broke BC as well, but presented a tremendous step in the front end of Qcodo, adding a comprehensive component-based event-driven server-side AJAX control API.  In a similar way, although Beta 2 -> Beta 3 does break BC, it presents a tremendous step mostly in the back end of Qcodo.

We've been able to get a lot of stuff into this release, but because we are still hoping to get a lot more pretty big/major updates and pieces of functionality into Beta 3, we decided to call this a Pre Release for now.

The highlights thus far include:
** A completely new Release Management System, including the Qcodo Update Service.  Think “Windows Update” for your Qcodo installation... only better.  Once you have upgraded to Qcodo Beta 3, upgrading AND downgrading to new/old releases of ANY version of Qcodo (>= beta 3) will become a minutes-long process.  (Note, that the update service will only work once you have upgraded to Qcodo Beta 3.  The Update Service will unfortunately not be able to perform upgrades/updates on prior versions.)
** Full XHTML compatability -- and the examples site was rewritten and completely validated against XHTML 1.1
** A rearchitected code gen engine which will soon offer support for non database-based data sources (like REST/SOAP/RSS servers/services, etc.), as well as a single, modularized Codegen Settings (XML) file to be able to perform codegens against an unlimited number of data sources all in one shot.
** The new Qcodo Query API - a fully object oriented approach to performing SQL Load queries
** Added emphasis on security and ease of deploying-to-production: the filesystem and directory tree hiearchy has been completely reorganized (qcodo directories can now be installed anywhere on your server, not just in docroot).
** Centralized HTML Entities and secured/”locked down” print functionality to, by default, always perform HTML entities (this is of course always explicitly overridable)
** Form Validation has been greatly improved, along with the addition of Form_Validate() for custom form-level validation.
** And as a bonus, the much anticipated examples site page on handling multiple QForms by using custom QPanels.

We now have a centralized change log at <http://www.qcodo.com/view.php/release_changelog> which will log all changes of new release from here on out.  And because of the new release management system, we should hopefully be seeing much more frequent updates to the Qcodo release.

because of this, we are now beginning to institute a STABLE and DEVELOPMENT release pattern.  You should always be able to see the latest STABLE and DEV releases on the Downloads page.  And of course, with Qcodo 3, you'll be able to upgrade to the most recent version of either the stable or development release by simply running the qcodo_updater command line tool:

qcodo/_devtools.cli/qcodo_updater.cli development
qcodo/_devtools.cli/qcodo_updater.cli stable
qcodo/_devtools.cli/qcodo_updater.cli 0.3.1
etc.

The Pre Release is currently considered a development release, and can be downloaded at <http://www.qcodo.com/downloads/>.

Please download, test and try it out.  We need everyone's help in providing feedback so that we can get this to STABLE as soon as possible.  Thanks!

#2  |  ByronH (Tzaneen, Limpopo) South Africa
Tuesday, October 17, 2006, 12:52 AM PDT

Excellent! :D
Hehe, I knew something was up when the site started behaving all funky on me. I see there are a few nifty tweaks here and there too. Very cool :)

#3  |  renoldi (Pindamonhangaba, SP - Brazil) Brazil
Tuesday, October 17, 2006, 11:04 AM PDT

It´s very good.

We are following the evolution of the Qcodo, and being able to see as the PHP is a powerful language. The QCodo this if becoming powerful framework of high speed.

Mike Ho, don´t say thanks, cause we have to say: thanks !

#4  |  Mike Ho (Sunnyvale, CA) United States of America Qcodo Administrator
Tuesday, October 17, 2006, 12:08 PM PDT

And... just like that, 0.3.2 is up with some small changes and fixes.  From this point forward, you can refer to <http://www.qcodo.com/view.php/release_changelog> for the changelog, and you can download the entire package at <http://www.qcodo.com/downloads/>.

For users already using Qcodo 3, you can upgrade using the qcodo_updater command line tool.

#5  |  platini (Boston, MA) United States of America
Wednesday, October 18, 2006, 6:55 AM PDT

Mike Ho, this is huge release, but I'm not sure why Qcodo is still under Beta, are u hidding something...or u just playing the game Google and Microsoft have been playing us with Gmail Beta and Windows Live Beta respectively,

In any occasion, I still think Qcodo is the bomb it brings the best of PHP5, I've been thinking objects for quite a while now...

Like Renoldi from Brazil said, “don't say thanks, cause we have to say: thanks!”

#6  |  Martin Kronstad (Mjoendalen) Norway Qcodo Core Contributor
Wednesday, October 18, 2006, 11:57 AM PDT

I noticed that there are pretty large changes to the codebase in this release. A lot of stuff is changing now.

I have a application running 0.2.2 (Qcodo Beta 2 Pre-Release), I just started looking at the changes I need to do to upgrade to Beta 3, and they even include changes to datagrids.

Do you recomend upgrading now, or should I wait until we are more stable? (I want to upgrade at some point, but I have pretty large customations to the default dataobjects and so on)

#7  |  Travis Barney (Salt Lake City, UT) United States of America
Wednesday, October 18, 2006, 5:00 PM PDT

I am extremely excited to really dig in using Beta3 and writing QQueries, just still floating in mid-learning-curve.  Is there a way to output the generated SQL statement, so that I can see what exactly is happening?

Heres what I'm trying, let me know if the logic is right.. an association table would be better to use instead of a comma delimited list of ids, but im just curious if I am on the right path.

$objCampaignArray = Campaign::QueryArray(
        QQ::In(
            QQN::Campaign()->SurveyId, Survey::QueryArray(
                QQ::In(
                    QQN::Survey()->Id, split(',', $strSurveyIdsCommaSeperated)
                )
            )
        ), 
        $objOptionalClauses
    );

Good job Mike, you rock the PHP world!

#8  |  ByronH (Tzaneen, Limpopo) South Africa
Thursday, October 19, 2006, 2:00 AM PDT

Any ETA on an updated Qcodo Class Library Quick Reference chart for Beta 3?

#9  |  Gadianton (San Jose, CA) United States of America
Thursday, October 19, 2006, 2:40 PM PDT

Thanks for beta 3 Mike, seems to add a lot of awesome stuff. However, wanted to post a warning to everyone who used beta 2, upgrading to 3 is PAINFUL!!

I can almost guarantee that you're going to have to change each and every file.

Here are some examples:

1) Changed prepend.inc (and all other .inc) to prepend.inc.php. This means every files reference needs to be changed that uses qcodo unless you want to change the new file to match the old, but then things like codegen and others that come with qcodo need to be changed.

2) Directory name changes. Lots of these, so if you're using CVS, I feel sorry for you.

3) Not only is the new OQL introduced, but its pretty much required. For example, wherever I've loaded blogs with something such as:

$this->dtrRecentBlogList->DataSource = Blog::LoadAll('create_date desc', '10');

The new Blog::LoadAll function takes a totally different parameter list, namely one $objOptionalClauses. This is going to require me to make massive code changes on just about every file.

anyhow, beta 3, cool, but painful to migrate to for sure.

#10  |  Mike Ho (Sunnyvale, CA) United States of America Qcodo Administrator
Thursday, October 19, 2006, 6:58 PM PDT

Thanks for the feedback everyone.  Let me try and answer some of hte questions/concerns above:
** Platini -- heheh no.  Not hinting at anything (e.g., Qcodo will always be open sourced and freely available).  Since “Beta 1”, I've had a pretty lengthy list of things that I thought are definitely required before a framework could be (in my opinion) considered “1.0”.  And although we've cut into that list a good amount, there are still a good number of things that I feel really need to be in a 1.0 product before syaing that Qcodo is “1.0”.  Also, with Beta 3, we definitely are in “pre release” as there are still quite a few bugs that need to be ironed out (as opposed to Beta 0.2.15, which is actually very stable, albeit still with a few quirks that i'm sure people have uncovered =)  While I would personally feel comfortable running Beta 3 (once we get the “stable” beta 3 release out) in production environments (and in fact, we plan to), I would hesitate to fully recommend it on truly “mission critical” applications until it goes “1.0”.
** Martin/Gadianton - yes, Beta 3 is a major release, and upgrading will definitely not be a 10-minute task.  But I do feel that the BC-breaking changes were necessary to be able to keep Qcodo on a track that can continue to grow and adapt very easily.  Plus, the new release management system will should start to make upgrades, especially all the point upgrades, a REALLY esay task - especially wit hteh ability to perform up AND downgrades (e.g. if you're at 0.3.2, and the current version is 0.3.15, you can go ahead and try to upgrade to 0.3.15, and if things break, you have the option to just as easily revert back to 0.3.2).  And yes, while the file/directory structure is one set of changes that will be a bit tedious, the introduction to Qcodo Query definitely presents a whole 'nother set of code fixes that will need to be required.  But over the past 4 years that I've used this or prior versions of Qcodo in the proejcts that I've worked on, one of the biggest headaches with data model changes was the need to go back and update all the custom-coded queries because of new columsn that were added, etc.  The new Qcodo Query layer will get rid of that issue significantly.  And finally... whether to upgrade now or later -- it's ultimately up to you.  Like I said, once you're on Beta 3, future upgrades will be significantly easier from that point forward.  But like Gadianton said... there will be pains in migrating.
** Travis... for now, the best way to get the generated output would be to enable DB Profiling, and then output the profiling data on your page.  You can then view the DB profiling page and view the queries that were run.  But you bring up a good point -- it'd probably be nice to be able to just “view the Sql”... basically , it'd be a QueryStatementOnly() (or something like that) call on the data class, itself, which would return a string instead of an object or an array of objects.  Finally, in terms of your query quesiton... first of all you don't need the second QueryArray in the Query code... I believe just the following will be enough:

<?php
    $objCampaignArray 
Campaign::QueryArray(
        
QQ::In(
            
QQN::Campaign()->SurveyIdsplit(','$strSurveyIdsCommaSeperated)
        ),
        
$objOptionalClauses
    
);
?>

Not really sure what you mean by considering an association table -- association tables are used to record a many-to-many relationship between two tables... but if memory serves, Campaigns and Surveys are a zero-to-one relationship (e.g. a campaign must be assigned to one and only one survey, and surveys can have either zero or one campaigns).  So I don't think an assn table is needed here.
** Visor, no ETA.  Looking for takers to help out with this? =)  It's in Visio Professional 2003 format... and the issue isn't just getting the documentation down... but getting all the classes laid out on the page just right so that it's readible and useful.  And of course, with the significantly added functionalities, the API doc will need to go to 3 pages.  Seriously though, looking for a volunteer to take this on.  I'll e-mail you the vsd file.



Copyright © 2005 - 2012, Quasidea Development, LLC
This open-source framework for PHP is released under the terms of The MIT License.