This thread grows long :) As we get into more detailed questions, you may want to switch to e-mail for some of them. Personally, I find formatting to be easier in e-mail. My e-mail is stjacobs@microsoft.com. Or you can send me a message through my profile here. So, on to the answers.
pasamio:So we're going to have to modify our package builders to make a new package with a subfolder and the extra files there then. Shouldn't be too hard but will still take some time. Does it support delta/patch packages or just full packages?
We just support full packages at this time. What we're finding is that for every five applications, there are ten ways of updating them. While we recognize this as an important issue, because of the complexity involved in may be a while before we can come up with a mechanism that works across all applications.
pasamio:The install script you've provided looks very MSSQL specific, is there anything for MySQL since that is all we properly support at this moment (in theory someone could write a MSSQL driver so long as the server or the DB connector supported UTF-8 and understood Joomla! will feed it UTF-8 and wants stuff in UTF-8). Is there any support for MySQL as well or is it just MSSQL?
You had me thinking I posted the wrong script for a minute there :). We do support MySQL, and the samples actually are MySQL specific. We ran into an interesting issue with user management. The Gallery apps need to work in all environments ranging from a developer's desktop through large scale dedicated deployments through shared hosting environments. In dedicated environments, the user will almost always have root credentials for MySQL. In shared environments, the user will almost never have root credentials. What we found in shared environments is that in many cases, the users did not have sufficient privileges to grant permissions to themselves, even if the GRANT matched what they already had. So, we wrapped the GRANT statement in a MySQL Stored Procedure that would ignore the error that gets thrown when a non-privileged user issues the GRANT statement inside it. That's all that install.sql script does. Most apps use this script to create the user, and then execute other SQL scripts as needed to perform other functions. i.e. load DDL, pre-load data or samples, etc...
UTF-8 is fine for all of the MySQL interactions. We are working on a new release of our MS SQL PHP driver which will support UTF-8 as well. If anyone wants to take a look at the driver to think about a MSSQL db connection for Joomla, let me know, and I'll put you in touch with the right folk from the SQL team. I haven't had much chance to use the new driver yet, but from what little work I've done, it's orders of magnitude better than the old MSSQL driver that still ships with PHP.
pasamio:Integrating everything isn't so much a problem in that the majority of the developers on Joomla! own Mac's (including both development co-ordinators). Linux is very popular and then Windows fits in there somewhere. So the people with the skills don't have the operating system which makes it hard to test IIS issues or integrating new things into web application gallery.
One of our main goals when designing the mechanisms for the Gallery software was to make sure that packages could be built on any platform - particularly Linux. Testing the packages, however, does require Windows. We're working on some tooling to help out with that, but it's too soon to go into details (as they'll probably change). We ran into an interesting Mac related issue just a couple of days ago, where a ZIP file created on a Mac has a bunch of additional files and folders. So, right now, ZIP files created on a Mac won't work. The "preferred" mechanism for creating the ZIPs is to use the Windows Explorer. I tend to use that when I'm iterating on manifest and parameters file changes as I can just drop the new one into the ZIP and re-test without having to recreate the archive. I know there's a way to do that with linux ZIP, but I haven't taken the time to figure it out yet. However, ZIP files created from the Linux command line (or other Linux tools) or from a cygwin zip command line all work fine.
Also, if you need a copy of Windows 2008 to test with, you can always download a 60 day evaluation copy from http://www.microsoft.com/windowsserver2008/en/us/try-it.aspx. If you need more than that, let me know.
pasamio:How does update notification work out of interest? Do you have a permaurl that you keep so whatever it farms out is it or can the system handle notification of a new location for the download?
My personal favorite updated notifications are the ones we get from apps that have integrated the notification into their build system. When a production build gets created and published, we get an e-mail. The e-mail needs to contain the following info:
- The URL for the new package (needs to be a new URL)
- A MD5 Hash for the new package (we'll be moving to SHA-1 soon)
- The size in bytes of the package
- An optional pointer to a change log (reduces our testing time when we have this)
- A notification when the release has security implications so we can prioritize it appropriately.
We need the package to be a new URL because of the hash. If you update in place, then your application stops working until we get through the certification of the new build, and the update of our feed to incorporate the new hash.
Thanks!
-Jake