After an interesting discussion on twitter with @curtismchale, @ericmann, @mikeschenkel, and @rarst I have decided its time to have another look at “local development”.

The basics so far have been the following downloads:

  1. Tortoise SVN
  2. Git
  3. WampServer
  4. PhpStorm

Tortoise SVN and Git are for the version control aspects of this project; WampServer (since I am testing on a Windows PC) is for the “local” environment; and PhpStorm is a recently discovered IDE that ties all of these together.

The next step was choosing a plugin and theme as well as setting up WordPress, my preferred CMS for development. I chose to go with the Nightly Builds version of WordPress, keeping it up to date via the core subversion access.

The plugin and theme are respectively ‘BNS Theme Add-Ins’ and ‘NoNa’. The first, a new WordPress plugin I recently released; and the second, one of my WordPress Themes due to be updated. To test the version control aspects these are now being maintained via github.

Although it has been a bit of a stumbling, grumbling affair I am finding the mix of these tools to have some interesting potential. I have been doing most of my current development work on “live” test servers (all I need is access to the Internet) and have always found everything goes quite well.

Transferring an existing project into the new process goes along these lines:

  1. Download existing project via FTP into the local environment folder.
  2. Share the new plugin/theme with GitHub.
  3. Develop and test in local environment.
  4. Deploy to a test server for online testing.
  5. Commit/push changes to GitHub.
  6. Repeat steps 3 through 5 as needed.
  7. Release to the appropriate WordPress repository.

Starting a new project would work in a similar fashion … maybe.

The discussions on twitter gave me reason to reconsider local development so I will give this some time, namely the 30 day demonstration period attached to PhpStorm. If all works out I may just spend the $99 for the application and make this my new workflow.