[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Developer Guide



On Sun, Dec 21, 2003 at 11:46:27AM +0200, Mohammed Sameer wrote:

> > Variable names should begin in lower-case characters. If it contains 
> > multiple words, following words should begin with upper-case 
> > characters. 
> 
> why that ?
> if I have a variable foo_bar, now I'm required to foo_Bar ?
> Now come on guys make things easy!
> 
> > Contant names should be in full CAPS. 
> should be constant ;-)

These are 'suggestions' and are not binding.

> 
> spaces vs. tabs: discussed i think ;-)
> 
> Makefile.cvs: why not use the ./autogen.sh script ?
> Most of the projects i see use an autogen.sh script. I didn't find the 
> Makefile.cvs except in Qt apps.
> and why run make -f Makefile.cvs when i can simply ./autogen.shh ?
> with a proper autogen.sh you can pass arguments to the "configure" 
> script. That's one.
> The second is that writing a proper Makefile.cvs forces the developer to 
> learn the syntax of Makefiles, That's bad.
> and with the ./autogen script you can produce meaningfull errors and 
> instructions on where to get the missing packages from the autotools "I 
> think this can be done with the Makefile.cvs, but perhaps not that easy 
> ?"
> I can't think of more reasons as I'm typing this in a hurry!

Again, the requirement is to have a Makefile.cvs present. Having an
autogen.sh boostrap.sh or whatever you would like to call it is entirely
up to you. 

Learning how to write Makefiles should not be a problem. If you are a
developer and don't know how to write a Makefile then you have some
serious problems ;) 

> I don't see a reason for the RCS headers ? why is it required ??

It just is. I can give reasons, but we can argue over it for years to
come. Consistency, forcing the user to explain what the file does,
making it easy for others (and the developer) to know what revision he's
looking at.. are among a few reasons that come to mind.

> doxygen ? I don't think that's required if I'm not writing a library.

The Doxygen requirement is only there to force commenting the code. The
comments should be done using the Doxygen style comments.. which are
fairly easy and flexible. No one is required to use all the features
that come with Doxygen (they are pretty elaborate). Simply commenting
each and every function at a minimum.

> ChangeLog, Comeon guys DON'T complicate things. It's important but I 
> don't think it's mandatory.

It is mandatory if you intend to make a release. I don't remember when
was the last time I grabbed a prgram that did not have a changelog file.
If there is one that did not have a changelog file, I would not be
taking it seriously.. since the author would imply that he is not
tracking its progress and so he is not serious enough.

> even for stable and odd for development. Are we maintaining such large 
> projects ?
> Please leave the versioning system for each project maintainer.

This is one of the main reasons that prompted the whole developer guide
to begin with. It most certainly must be made as a rule across all
projects. A verioning scheme/system must exist. This is irrelevant of
the size of the project. I most certainly would not back down from my
position on that. 

When I wrote that, I did make a lot of considerations. For example, I
did not want to break how Katoob was being versioned, so I made it so
alpha releases hold the dates as a suffix.

We want people to know what to expect when they grab a project that has
the 'Arabeyes' name on it. We also want it to be easy for people to
contribute to existing projects. In addition to that, we want to lay
down guidelines for new people to know how to start a project here
properly and without guessing and making too many u-turns (a prime
example would be the ITL project).

All in all, the versioning system is here to stay.

Regards
-- 
-------------------------------------------------------
| Mohammed Elzubeir    | Visit us at:                 |
|                      |  http://www.arabeyes.org/    |
| Arabeyes Project     | Homepage:                    |
| Unix the 'right' way |  http://elzubeir.fakkir.net/ |
-------------------------------------------------------

Attachment: pgp00026.pgp
Description: PGP signature