Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

WTP CVS Restructuring

Revision as of 00:45, 14 October 2007 by David williams.acm.org (Talk | contribs) (adding details)

Purpose

In an effort to standardized groups on dev.eclipse.org especially in light of our recent WTP Refactoring, the page is to propose and document how to restructure our CVS directories, so their access can be managed by associating directories with Unix Groups.

The document will start by focusing on the old wst and jst directories, as they need the most work, and other subprojects addressed later, towards the end of this proposal.

WST and JST

These initial WTP projects were created with the following sort of hierarchy -- abbreviated and idealized here to simplify explaining the principles of the restructuring.

 wst
   components
      assembly
         features
         plugins
      server
         features
         plugins
         tests
      xml
         features
         plugins
            org.eclipse.wst.xml.core
            org.eclipse.wst.xml.ui
         tests
         examples
         development
         thirdparty
      xsd
         plugins
            org.eclipse.wst.xsd.core
            org.eclipse.wst.xsd.ui
         tests

The new proposed structure would look as follows

webtools.releng
   features
   plugins
webtools.sourceediting
   features
   plugins
      org.eclipse.wst.xml.core
      org.eclipse.wst.xml.ui
      org.eclipse.wst.xsd.core
      org.eclipse.wst.xsd.ui
   tests
   examples
   development
   thirdparty
webtools.servertools
   features
   plugins
   tests

Principles

The above examples show a few points related to this restructuring.

  1. The best top-level name should "match" what the access group name will be: toplevel.subproject.component-subcomponent. We do not currently have components controlled by access restrictions, so I think we in webtools need only define the toplevel.subproject directories for now (this can change in the future, but best to start off with simplest, and add detail later, when needed.
  2. Thus, everyone in a certain subproject can be associated with the "highest" webtools directory, and automatically get access to everything lower, without the need for more than subprojects groups, for now.
  3. Note the previous "assembly" features and plugins will be become part of releng subproject. These are the "product" plugins, and the features that define our builds. Each project will be responsible for their own features delivered to WTP.
  4. Notes the example in source editing where what used to be directories, xml and xsd, are no longer distinguished by cvs directories, but all the plugins flattened under webtools.sourceediting/plugins.
    1. Conceptually and architecturally, xml and xsd could still be called 'components' but they do not have separate access control, so it's a bit overkill (and ultimately restrictive) to define them in separate cvs directories.
    2. Note that the "access control" for components such as xml and xsd is (still) social in nature. Legally, in theory, anyone in the source editing project could change the code there, but in practice, there are individuals or small teams that normally do. Others, even in the same project, usually would attach a patch to a bugzilla if they wanted one of those experts to review and commit the code.

Detailed Listings

The following are the detailed listing of directories in what would be their new structure.

webtools.common
webtools.servertools
webtools.datatools
webtools.sourceediting
webtools.webservices
webtools.jeetools
webtools.ejbtools
webtools.releng

To Do Items

  1. change maps to use module names only, to divide up the change, so once restructuring is done, only the modules file has to be changed, and builds will keep working. Note: there are probably some, JSF or JPA files that will have to be added to modules file. (Remember, any old builds, if they had to be re-created, would have to be changed, but that's unlikely to be needed).
  2. try using CVS snapshots, on local, test machines with some move scripts to test to be sure we've accounted for everything.


Reference and Notes

Committers can see our current CVS directories
/home/data/cvs/webtools

Snapshots of our CVS can be obtained at
http://archive.eclipse.org/arch/

Back to the top