views:

63

answers:

1

Hi,

We are a small company which develops components for the Joomla! CMS. In the Joomla!'s jargon, a component is a small application that extends the CMS features (we are for example editing a directory component).

As a classical framework, Joomla has a pre-defined files structure which looks like this one:

|-- administrator/
|   |-- backups/
|   |-- cache/
|   |-- components/  <- here
|   |-- help/
|   |-- images/
|   |-- includes/
|   |-- language/
|   |   `-- en-GB/   <- here
|   |-- modules/
|   `-- templates/
|-- cache/
|-- components/      <- here
|-- images/
|-- includes/
|-- language/
|   `-- en-GB/       <- here
|-- libraries/
|-- logs/
|-- media/           <- here
|-- modules/         <- here
|-- plugins/         <- here
|-- templates/
|-- tmp/
|-- xmlrpc/

and our components is taking place in different directories marked with 'here'. To summup, we've got:

  • a back-end interface
  • a front-end interface
  • language files (for back and front)
  • media files (images, JS script, CSS...)
  • modules
  • plugins

We use SVN as version control system, but we are hesitating on the "best" way to organize our repository:

  • should we mimic the Joomla's files structure, for example create a administrator/components/ to hold our back-end folder or just set a back/ folder
  • should we separate modules and plugins from the component's trunk?

What is your opinion about setting a repository for a software which should sit on an already predefined files structure? What is the "best" strategy for this?

Thank you

A: 

I would mimic Joomla's structure so that installing the component is a simple matter of merging your tree with the Joomla tree, but really that is a matter of personal preference. As long as you have a simple install procedure (e.g. "sudo make install" or "sudo python setup.py install" or the like), I don't think it matters.

Michael Aaron Safyan
That was our first idea and this technique has some good advantages, like making a single `svn up` to update our WC, but on the other side, it does not feel very logical to have a administrator/components/com_<our_component_name> folder for our back-end for 2 reasons: 1. We've got a repository per component, so having a com_<our_component_name> folder seems redundant since we already know the name of our component... 2. Having a components/ (plural form) folder seems ilogical since we'll only have a single component.
abernier
I know it's quite a twitest reasoning but I'm just trying to think stupid, to keep things as simple as possible.
abernier