Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2009-08-22 11:56:40

bikuta
New Member
Registered: 2009-08-22
Posts: 5

Advice for team development

Hi,

I’m thinking of introducing Textpattern to my web development team.
Just wanted to get some thoughts on some recommendations on how you guys manage the txp site development between multiple developers?

Any recommended workflows for doing this?
What about having an offline/local version for development and then doing an upload when ready?

At the moment we’ve been using SVN for our web apps development, but it looks like with Textpattern the customisations are stored in the database.

Any suggestions would be appreciated.

Thanks.

Offline

#2 2009-08-22 16:58:17

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,454
Website GitHub

Re: Advice for team development

bikuta

I’m currently working on a multi-dev project and we’ve got something workable; whether it’s streamlined is open to interpretation :-)

Essentially, the dev TXP site is versioned online by SVN (basecamp/beanstalk, though that’s not essential). We made a database that had all our logins in it in one of the /branches. The /trunk holds the live site.

When someone checks out the latest version of the TXP branch, files, images, etc we’ve agreed on a local URL scheme. We set our hosts files and XAMPP vhosts such that local.site.com resolves to wherever we have our local copy.

The key to this working well is to not version the textpattern/config.php file. Thus our own local copies of TXP always work after SVN checkout.

The only sticking point, as you say, is the database. We have agreed that after you make changes to your local database you take an SQL dump or SQL diff that list your changes and upload it to a directory that is also not under version control — each developer has their own directory for this type of thing.

So when you check out a new revision you take the corresponding database image/update/diff and apply them to your local copy. This can fall over a little with multiple developers uploading essentially static copies of a database dump but most of the time it’s OK. Guess it’ll depend on how big your team is.

If you ever drop your local database and replace it with one from another developer, the only thing you have to alter are 4 or 5 paths in the txp_prefs table. Again, I have a .sql file with these settings in it that are relevant to my local directory structure. Every time I install a fresh DB I just paste these few lines in to phpMyAdmin and I’m away. One of the other things that might help is the cnk_versioning plugin because that holds the forms, pages and stylesheets as external files which you can version more easily.

Every so often one of us will merge forward the changes from the /branch to the /trunk, if applicable.

It sounds complicated but it works reasonably well. I’m sure it could be improved but we’re on a bit of a tight timescale so we haven’t really sat down and hammered out an uber efficient protocol. We could have always made sure to export everything except the relevant path lines in txp_prefs but it seemed more hassle than simply exporting the entire DB and then re-applying the 5 lines of SQL to reset the paths. And perhaps if we versioned the Database sql files or always used SQL diffs it would be easier. *shrug* there are only three of us so it’s not much hardship.

The other alternative is to work online on a shared copy. I’ve done that as well and it’s OK as long as you don’t step on each other’s toes, which is easy to do! In that situation I’d wager that TheEric’s new plugin for an admin-side messaging system would be ideal. Failing that, adi_notes might help to pass stuff between yourselves or mark when things are scheduled to be done.

Not sure if that has helped or hindered!

Last edited by Bloke (2009-08-22 17:02:02)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#3 2009-08-23 11:33:00

bikuta
New Member
Registered: 2009-08-22
Posts: 5

Re: Advice for team development

Yea that helps, thanks for taking the time to share your experiences.
I guess you can’t really get away from having to do a db dump/diff due to how the CMS works.

Maybe one day someone will develop an offline version using something like google gears :P

I’ll see how I go, we are only starting with 2 devs at the moment so we can be quite flexible. Just wanted to get an idea on what others do in these situations and if I’m going to be using TXP more then I would prefer a more scalable solution.

Offline

#4 2009-08-31 16:54:21

maniqui
Member
From: Buenos Aires, Argentina
Registered: 2004-10-10
Posts: 3,070
Website

Re: Advice for team development

Hi bikuta,

I’ll come back in a few days and share my experiences on this, which are related to Bloke’s experiences.

In the meanwhile, you and other developers may be interested in reading this article:
version control for expressionengine using gitpart 1

I’ve just give it a quick read, but it may have some tips and tricks that could be applied to your workflow. Also, I never used git, so not sure if it’s possible with TXP.


La música ideas portará y siempre continuará

TXP Builders – finely-crafted code, design and txp

Offline

Board footer

Powered by FluxBB