On Fri, Mar 03, 2017 at 09:48:23AM +0000, Daniel P. Berrange wrote:
> This documents the preferred conventions for naming files,
> structs, enums, typedefs and functions.
>
> Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
> ---
> HACKING | 71 ++++++++++++++++++++++++++++++++++++++++++++
> docs/hacking.html.in | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> docs/hacking2.xsl | 4 +++
> 3 files changed, 158 insertions(+)
>
> diff --git a/HACKING b/HACKING
> index fff003b..16be5cf 100644
> --- a/HACKING
> +++ b/HACKING
> @@ -239,6 +239,77 @@ on the subject, on Richard Jones' guide to working with
open source projects
>
<
http://people.redhat.com/rjones/how-to-supply-code-to-open-source-project...;.
>
>
> +Naming conventions
> +==================
> +When reading libvirt code, a number of different naming conventions will be
> +evident due to various changes in thinking over the course of the project's
> +lifetime. The conventions documented below should be followed when creating
> +any entirely new files in libvirt. When working on existing files, while it is
> +desirable to apply these conventions, keeping a consistent style with existing
> +code in that particular file is generally more important. The overall guiding
> +rule is that every file, enum, struct, function, and typedef name must have a
> +'vir' or 'VIR' prefix. All local scope variable names are exempt,
and global
> +variables are exempt, unless exported in a header file.
> +
> +*File names*
> +
> +File naming varies depending on the subdirectory. The preferred style is to
> +have a 'vir' prefix, followed by a name which matches the name of the
> +functions / objects inside the file. For example, a file containing an object
> +'virHashtable' is stored in files 'virhashtable.c' and
'virhashtable.h'.
> +Sometimes, methods which would otherwise be declared 'static' need to be
> +exported for use by a test suite. For this purpose a second header file should
> +be added with a suffix of 'priv'. e.g. 'virhashtablepriv.h'. USe
of
> +underscores in file names is discouraged when using the 'vir' prefix
style.
> +The 'vir' prefix naming applies to src/util, src/rpc and tests/
directories.
> +Most other directories do not follow this convention.
> +
Why not? I think src/conf/ should (and does) follow, so does
src/access/, I would even go as far as saying every src/ directory that
is not a hypervisor driver. But I, personally, would not be offended by
all of them being changed.
I didn't mean to imply that the other directories shouldn't change - I was
just documenting effective current usage. If we want to rename all existing
files to have a vir prefix, I'd certainly be open to considering such a
change. It makes backports a little more painful, but generally git can
detect the rename correctly when chery-picking. If we did such a change,
then obviously we could change this text to match at that point.
Regards,
Daniel
--
|: