Staging or test site management
Create an ability for a Joomla install to manage both a live and staging site where changes can be tested on a staging site and then pushed to the live site when appropriate.
Richard Pike commented
This a "have to have" if you want high quality websites. We have just added another piece to the puzzle by creating webseam. It takes your staging site and presents it to your clients. Webseam then let's clients edit web pages to give feedback to their developers. But they are not real edits instead they are captured and provided by the tool to the developers as a list of issues and bugs. Then when the page is fixed the client sees it like Word 'track changes' so they know what was fixed
Alberto Corona commented
This is a common feature in enterprise level CMS like CQ5 . It seems most comments here not agreeing with the need for this feature are missing the point that a CMS is not intended just for hard core developers/administrator. It should make it easy for content managers to make changes to their site, have them reviewed and then when approved promote them to production. This typically include tasks such as adding a new menu, editing an existing article, re-arranging existing modules. For these scenarios, I see no need for someone having to work trough scripts to merge changes from one site (staging) to a another (production). Why not just an option in the content element to be promoted to production...at the minimmun this is only a matter of having version support in all db data with at least two versions (staging and production).
For more complex changes such as completely removing a component and replace it by a new one, or making code changes to existing components, that I understand I may need more control and need a separate physical server to test, debug and fix. Then do the migration to production using scripts, git, svn...etc.
No you all got it wrong, this wouldn't be helpful but essential to any one that has more than one joomla site live on the internet.. It really upsets me that no-one needs this service.. How long do you think it takes me to update a few joomla website as per client specs.. I need to do it twice for every site each time (on dev and then finally live)
I don't care if it is a third party extension that costs $200 for owned license! At least wont have to struggle and waste countless hours configuring SVN and RSync to even consider something like this..
I even tried using JFusion and have a master/slave joomla addons configured..
Unfortunately, Jfusion's documentation and support is utterly useless..
this is something we've been requiring for years now sinse joomla 1.5
So for everyone that says WAMP/XAMPP or not required please go get some live website running and get a feel for doing updates regularly. Then we can talk again
AkeebaBackup does this already. The "hard" part is knowing what tables and files are immutable by end users. If anything I suggest a new Joomla table like #__immutable_tables that all extension devs and Joomla devs can store immutable table names in. Then any tool can look in that table and only transfer what is listed in it from a staging site to a live site.
I suppose a #__immutable_files would be good too.
The concept being simply if a user can mutate the data it cannot be sync'd. But if only the admin/backend can mutate the tables then it is safe to assume the admin is only making changes in the unreleased site.
http://www.ostraining.com/blog/joomla/creating-a-joomla-development-site/ apparently this does the trick to have a development site then push it out to the production site.
Fantasic Idea, as a noob to joomla I have learned the hard way what i can and cant do before it impacts my site. I think a test site that I can load and test extentions on etc. would have saved me so much time. A facility to take snapshots of the test site so you could rollback would be very handy too.
Web Design Hero commented
Full site replication is not staging. In a real site, you cannot simply overwrite your live site with a stag/dev site. Joomla has a few factors you need to consider - such as content is separate from design and that you need to manage content created on the backend and by authors/admins as well as content created by visitors - forums/comments. You need to merge individual tables in most cases and keep various things in sync. For the most part, in terms of content staging you can deal with a simple cut and paste, an automated script to push specific article from one db instance to another, or you a versioning extension which allows a preview version that can be activated on the frontend for a given user or GET parameter. As one other commented, these are not really Joomls things. If you are at the point in your development where you want a staging server, you should be able to handle these things under the web application.
Good idea, it will be nice to list and compare the changes (files, content, menus, components etc) and then choose what to push
Davide Bartolucci commented
Too bad I can't place votes, this would be a +3.
Steve Amerige commented
For most non-trivial websites, the ability to work on a staging website and then promote it to be the production website is essential. Right now, I do this by hand for most of my clients. The thing that is needed is for Joomla to provide a formal way for Extensions to EXPORT and IMPORT their content. This must be a first-class feature in the Joomla core because things like database names, hostnames, and other things change from the staging server to the production server. So, at a minimum, if the Joomla core provided export and import capabilities for extensions that the extension provider could write code to, this would help tremendously. If Joomla marked extensions as "Can Migrate" with some icon, this would encourage extension developers to provide the migration (export/import) functions. And, of course, the Joomla devs would have to provide the export and import functions for all of the Joomla core. This is why there are people whose job titles are Release Engineers. It's that important!
Keith Mountifield commented
This could bedone with a really good synchronisation component, or as part of joomla's core. What dp we actually need here?
1. The ability to enter the URL, base path and ftp deails for the live and development site
2. the ability to manage what is synchronised, this would include database and files elements of 3rd party extensions as well as Joomla core elements (which would allow for staging updates before putting them live.
This wouldn't, as Node-0 dumb down joomla, but instead would provide an extremely useful productivity tool, in fact it would also provide both the 'reduce client anxiety' and 'elimniate uncertainty features that he himself asked for :o)
I myself havea number of clients who use thier development server on an ongoing basis for practivce, reasearch and testing before putting content live.
Elektra Studio Design commented
Absolutely all my clients will love this. I have two (my biggest clients, heavy enterprise focused work) that have a staging site using a clone. Imagine the extra work we all have to do to upload things to test, verify, then up to production and also verify. This is a must for Joomla to gain a serious foothold on the enterprise market.
Let's be real here, total site replication for the purpose of staging is a necessary job skill, not a missing feature in Joomla or any other CMS.
Honestly, what's next, a "reduce client's anxiety" feature?
How about an "eliminate uncertainty" feature?
Having said that extension version history and rollback would be useful and handy but an entire staging system?
Yes. I do NOT want to mAMP or wAMP Joomla. I just want a test site (as: testjoomla.domain.com
Dan Knauss commented
Might make a good enterprise extension.
THIS is an idea, something else than just "making a module native to Joomla! " ! How is it that Joomla! can stay simple if every mods developed by the Community is native ?
I would love this option as well. The way I do updates now is so cumbersome. The option to test your updates and then send them live - all in one place - would be great!!
Gabe Wahhab commented
Was really hoping the working copy component would come to fruition as it does just this. I'm not sure this should be in the core but it sure would be nice if someone would develop it as component. Makes dev's lifes easier.
Don't items like svn, git rsync etc only manage the files and not the database though?
Down vote by 200 please! stop filling joomla with garbage!
@Mark Dexter, its called XAMPP, run it locally and sync your database.
There are already ways of doing this, however it would be good to see an additional install option, so if you use localhost for testing etc.. Then allow for upload the tested site.