Skip to Content.
Sympa Menu

devel - [sympa-developpers] First milestone reached: ready to merge

Subject: Developers of Sympa

List archive

Chronological Thread  
  • From: Guillaume Rousse <address@concealed>
  • To: address@concealed
  • Subject: [sympa-developpers] First milestone reached: ready to merge
  • Date: Tue, 18 Dec 2012 16:26:59 +0100

Hello guys.

I think my branch is reasonably ready to merge. I reached my first milestone, and I'd prefer to first sync with other's work before pursuing API cleanup.

Here is a quick resume of what was achieved sofar:

* Source tree cleanup
All subdirectories containing code (soap, wwsympa, src) are now contained in a single directory (src): this makes grepping for code usage far easier, for instance.

This source directory is also more logicaly structured, with less depth: web content is now in src/www/js, for instance, instead of src/etc/scripts/js

Most files and directories there now have consistent svn properties (svn:eol-style, and svn:keywords), and consistent file headers (including vim and emacs modelines).

* Namespace usage
All perl packages now use a shared top-level Sympa:: namespace, some of them using nested namespaces (Sympa::Tools for what was previously the tools package, Sympa::Datasource for data sources, etc...)

All lowercased package names have been converted during the merge: tools is now Sympa::Tools, for instance.

Some packages have been renamed in the process, to ensure consistency and drop useless Sympa prefix. For instance, TT2 is now Sympa::Template, for consistency with Sympa::Template::Compat. And SympaSession is now Sympa::Session.

I'm not sure about Marc and Marc::Search, tough. Are they Sympa-specific piece of codes, or already existing code just bundled to avoid a dependency ?

* Packages import cleanup
Unused packages have been removed from import lists.

Remaining ones have been sorted, with distinct list for Sympa packages and external ones.

Usage of compile-time vs runtime loading have been sanitized, with runtime loading restricted to optional modules, or breaking cross-dependencies.

* Packages export cleanup
No package export anything anymore, and all usage of external subroutines/variables always use fully-qualified name.

* Generalisation of strictures usage
All packages now use strict.

* Interdependencies cleanup
The large tools package have been splitted in multiple ones: Sympa::Tools::File, Sympa::Tools::Time, etc... This allow to leverage dependencies issues, including circular ones.

Many subroutines requiring direct access to Sympa::Configuration have also been modified to receive required values as parameters, allowing to break more circular dependencies. This also make them more modular, and easier to tests.

As a result, all packages can now be loaded separatly...

* First pass at documentation cleanup
Most existing comments have been converted to POD format, using a consistent template.

A few undocumented functions/methods have also been documented.

* Initial test suite
We now have some tests in the t/ subdirectory. Most of them are simple automated tests (compilation test, pod syntax check, etc...) which just brings minimal quality testing. They are also a few actual functional tests for some functions defined in the Sympa::Tools hierarchy.

Indeed, that's quite a lot of changes, rather invasive. I just tested installation and sympa_wizard usage so far, and I was rebuffed by not-so-clear error messages while trying to launch daemons :) Should I continue those tests further, and ensure my branch is sane, or can we first try to merge it in its current state with other branches before testing and stabilizing the result ?
--
Guillaume Rousse
INRIA, Direction des systèmes d'information
Domaine de Voluceau
Rocquencourt - BP 105
78153 Le Chesnay
Tel: 01 39 63 58 31

Attachment: smime.p7s
Description: Signature cryptographique S/MIME




Archive powered by MHonArc 2.6.19+.

Top of Page