Contribute Code

Brief outline for new developers

Created by: xing, Last modification: 10 Nov 2008 (23:52 UTC)
As you know, bitweaver consists of a set of core packages and a number of optional packages. New devs who join the bitweaver coding team, have immediate access to non core packages and may commit to these. When there is demand, we will grant access to the core packages. Commits to these need to be treated with more respect since they affect all packages.

How can i contribute?

We recommend that you subscribe to the bitweaver-core mailing list. This is a low volume mailing list where important announcements are made.
Frequently it's useful to discuss changes in real time and we recommend that you ConnectingToIRC.

Commit using CVS (recommended)

  1. You will need an account on Sourceforge
  2. Ask one of the developers to add you to the bitweaver developers (best done on IRC)
  3. GetCode with your sourceforge username
  4. Get a list of all cvs modules

    Check out CVSROOT

    
    cd bitweaver/
    cvs co CVSROOT
    vim CVSROOT/modules
  5. Check out all packages you're interested in using commands such as:

    Get additional packages

    
    <?php
    cvs co _bit_gmap
    ?>
  6. Start contributing (thank you!)

Submit Patches to Sourceforge

Alternatively, you may submit patches to sourceforge. This might not always get picked up right away, since we are not very good at checking the patches section...

Discuss Commits

Certain types of commits should always be discussed via the bitweaver-core mailing list or on IRC:
  • All changes to schema related files:
    • package/admin/schema_inc.php
    • package/admin/upgrade_inc.php
    • package/admin/upgrades/*
  • Any change to any core package that isn't simply cosmetic
  • Major changes to the behaviour of a package
  • Any change that is not backwards compatible

Schema Changes

If you do need to make schema changes (regardless of how small the changes are):
  1. Discuss them with the creator / maintainer of the package or one of the lead developers
  2. Commit schema change to package/admin/schema_inc.php
  3. Enter the change in SchemaChangelog
  4. Create an appropriate upgrade file in package/admin/upgrades/version.php. Please see existing upgrade files on how to deal with upgrades.
  5. announce the schema change on the bitweaver-core mailing list

Version Numbers

Any package can use version numbers as they see fit. Core packages stick to the following rules:
Major Minor Fix Desription
X
This is the major release version of bitweaver and indicates what version of bitweaver the core package belongs to.
Y
This is the minor release which is increased when there is a schema change to that package.
Z
This is a bug fix release that simply fixes issues with existing code.

To illustrate this with an example:
bitweaver version 2.0.0 is released and all core packages have version 2.0.0. now liberty undergoes a schema change which would bump it up to version 2.1.0 but the remainder of the core packages still remain at version 2.0.0

Core Packages

Core packages consist of:
  • KernelPackage
  • LanguagesPackage
  • LibertyPackage
  • StoragePackage
  • TempPackage
  • ThemesPackage
  • UsersPackage

Other notes

Please make sure you view the CodingGuidelines before you start committing. We've spent a lot of time cleaning up the code and it would be a shame to mix styles and get sloppy.

Be careful when committing and always make sure you've tested your changes before committing them.