Hi
I have successfully set up a number of non-critical sites on 4.7 beta4, with quite a few contrib modules, and all is working fine.
I'd now like to take some tentative steps toward getting more involved in the drupal community, and specifically developing some themes. I'm reasonably experienced in html/css, and have been learning php gradually. I think a theme would be a good first step for me.
I'd like some guidance please on the best working methods to do this, and also on maintaining my own site.
Here's where i'm at:
1. Have read the drupal handbooks, and spent about 18 months hanging around in these forums and reading the mailing lists. I've also explored the code alot.
2. Have downloaded+installed eclipse plus it's php add-in and grabbed head from CVS.
3. I have a number of non-critical sites running on 4.7 beta4 and one critical site running on 4.6. The sites on 4.7b4 are running under a multi-site configuration off one codebase.
4. all my sites are on a dedicated LAMP server i manage.
Here's what I'd like to know please (please bear in mind I am a newb to development):
1. Is there a way for me to use eclipse to merge changes from head or the 4.7 branch into a 'master' drupal codebase on my local pc, then 'sync' this master with the codebase on my server - i.e. have two projects: one connected to drupal cvs, one to live codebase on my server, but with changes being moved from drupal cvs to my own project as i require them, then with easy syncing from my project to my server? should i install a cvs server on my remote server too? is there another way? Or do i need to stick with filezilla to get code from my local pc to my live server? (is the new microsoft SyncToy any good for this also?)
2. What other software do you recommend for developing? I've been using WinSCP, Filezilla, TopStyle, WinRAR, Putty, Navicat, BeyondCompare and Notepad++ (not yet sure how much of this is obsolete now i have eclipse) for other projects.
3. Are there any other good plugins i should get for eclipse that would help me with drupal development?
4. Is there anyone I should liase with about developing a theme, or do I just get on with it and apply for a cvs account when its done?
5. Any other advice?
Thanks very much for any help.
Steve
PS I'd also like to take a quick opportunity to give my thanks as a user to all the people who have made drupal so damn good. It's powerful yet easy to use. It's reliable too. I am so grateful that you've developed it, and made it open source - I wouldn't have been able to run my sites without it. Thank-you.
Comments
Whoa - big topic :)
Good move :)
It sounds like you're completely on the right track. Don't worry about getting your workflow perfect before starting - these kind of things evolve over time as your skills improve. Keep it simple, and only add extra stuff when you start needing it.
Source control is a big topic on it's own (one that I'm a relative novice with as well) - especially when you want to start doing it in a distributed manner. CVS is a primitive tool and is really quite centralised - you may want to investigate other options. Subversion is the next step up the ladder in sophistication. Some of the core developers are experimenting with nifty new distributed source control systems like bazaar-ng etc. There is no one good solution for distributed development at this stage - especially for no budget windows users.
I'm not suggesting you do this, but here is a rough look what we do at work (one day I'll write this up properly - it's a big job though):
We have two Debian servers. The production one on the DMZ, the development one on the LAN. The production server also has an identical test instance.
The dev server runs subversion and samba. It shares the web directories via smb. Non unixy designers/developers can use tortoise svn over samba shares to manage their source code.
We have a bunch of numbered 'webslots' for each web developer/designer on the dev server. Each webslot becomes a subversion working directory. We also have a bunch of MySQL databases on the dev server for holding dev instances of Drupal. We use a multisite Drupal config so that the same Drupal codebase in subversion can work out of the box in any of our virtual host webslots (dev, prod or test). Each site config is then versioned as well - no need to separate out code and config from subversion.
The production database is replicated to the dev MySQL server inside the LAN via an ssh tunnel. Backups are taken off the replica to avoid production downtime, and we also have scripts that can sync any dev database with the production data from the replica and copy the uploaded files to the appropriate webslot.
We also have deployment scripts for updating the production and test instances in the DMZ from the latest code in a given subversion branch or tag. This uses rsync.
What we still need to do:
Automate vendor drops (see the subversion book) from drupal.org a little more. Currently this is a manual process.
Handle contrib module syncing better.
Build some sort of web interface for our scripts so non unixy people can run them.
As for tool suggestions, I don't think sync toy will help you much unless your servers run Windows as well. You might have to look at rsync either through cygwin, interix or a version compiled for windows. Editors are just personal preference - we use all kinds, Kate (on KDE), JEdit on both Windows and Linux, and even vi :)
Tip: configure your editors to use Unix line endings. They seem to be the most portable option - the only Windows editor that doesn't seem to understand them is notepad which you probably don't want to do much editing in. Even wordpad understands them.
Hope that helps somewhat...
--
Anton
Thanks
Hi Anton
wow - thanks for such a comprehensive answer! You've helped by giving me an idea of some places to start with regards to the dev environment, and its reassuring to know that you think a template is good point to start out.
Thanks alot
steve
===
Steve Parks
Convivio - a digital services agency
http://weareconvivio.com
welcome
To participate merely takes involvment. Drupal is remarkably open that way. So, at it's basic level, a theme ready to contribute, a CVS account.
If you want, then certainly feel free to collaborate with anyone you like. The more collaboration the better. Other resources. There is an irc channel on freenode #drupal-themes. Sparsly poulated. There is a themes mailling list.
Consider hopping on this thread: http://drupal.org/node/50428
I currently use Notepad2 for editing. I suspose I should use an IDE at some point but that would require leanring yet another thing. :)
I sync cvs for core and contrib to my local system with turtlecvs per the handbook docs.
-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain
-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide
thanks
Hi Steven
Thanks for the welcome. Yes, the quality and size of the community is one of the things that has attractred me to drupal, and made me keen to help out by giving something back (though i will be making donations too!)
I'm currently getting used to cvs, using it via eclipse, and then i will begin some active work.
cheers
steve
===
Steve Parks
Convivio - a digital services agency
http://weareconvivio.com
Further stuff. There is a
Further stuff. There is a thread where several of us are working at trying to port some themes to Drupal. Porting themes can be a good start as you skip the desgin stage and go directly to the technical stuff using an existing target.
My current attempt pending technical difficulties.
http://www.blkmtn.org/node/306
-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain
-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide
themes
Yes - I've been following some of those threads.
I've got to finish a book this month, so once that's sent off I'm going to leap into trying to port a template as the first stage of my drupal journey!
Thanks for your help and encouragement.
Steve
===
Steve Parks
Convivio - a digital services agency
http://weareconvivio.com