CartoWeb 3.4.0 RC1
Download Now!

Advanced Geographical Information System for the Web

Guide for CartoWeb 3 Development

This page is meant to be useful for existing and new developers wanting to extend and contribute to cartoweb3. It gives general rules and pointers to documentation.

  • Coding style: See the Coding style section in the CartoWeb documentation

  • Consistency: please be consistant with the existing style (naming) and policy. See NamingPolicy for recommended/required names.

  • See CartowebCvs how to setup your project in CVS

  • The existing infrastructure matches your needs:
    • Use the concept of project to customize the aspect of cartoweb: ProjectHandling

      • Most of the work of the visual customisation and configuration can be done using the concept of projects.
  • You need new functionalities not present in cartoweb:
    • Be really sure the existing plugins can not fit your needs. Just ask what you want on the mailing list, and with luck a developer will tell you that it is already possible to do it in the base system.
    • Do not reinvent the wheel: try to extend an existing plugin which does already part of what you are trying to achieve.
      • If the base plugin does not expose a point of extension for derivated plugins to use:
        • Ask the developers about you need, and the proposition of modification you need to make to the base system. As an example, you would need that an existing plugin includes a protected method which can be overriden by subclasses, to let them do specific work. The base plugin would then have a "do nothing" method for this purpose.
    • Write a proposal in the wiki, with the explanation of the requirements, the proposed design and implementation
    • Develop your new plugin.
      • If the framework would benefit from your plugin -> See next point.

You want to make changes to the framework:

  • This might be the case when:
    • you added new functionalities
      • to improve the main framework
      • to add extensibility to the framework for your new plugin
    • you added a new plugin
    Follow the following points:
  • Announce the changes you are about to commit to the list.
  • Be sure you respected the coding style and philosophy of the framework.
  • Add the new features (if visible) to the "test" mapfile. All features should be visible by default.
  • Add unit test for the new plugins and features. There are plenty examples in the tests directory how to do it.
  • Be sure all tests are passed ok.

Before Commit:

Before committing a new functionnality, a new plugin or an improvement which implies several changes in framework, you have to submit it to other Cartoweb developpers.

  • Create a patch using 'cvs diff'. You MUST use the unified diff format and use 8 lines of context. You can achieve this by putting this line to your ~/.cvsrc:

diff -u8

CartoWeb Wiki: CommitPolicy (last edited 2020-02-27 14:38:12 by SylvainPasche)

© 2002-2006 CartoWeb by Camptocamp SA - Wiki powered by MoinMoin