[libvirt] [PATCH v3] Document preferred naming conventions
Jiri Denemark
jdenemar at redhat.com
Fri Mar 10 11:01:48 UTC 2017
On Mon, Mar 06, 2017 at 11:09:26 +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 at redhat.com>
> ---
>
> Changed in v3:
> - Clarify function naming wrt verb & subject
> - Simplify macro naming, since in practice libvirt code doesn't follow any
> rules consistently aside from having a VIR_ prefix.
>
> HACKING | 80 ++++++++++++++++++++++++++++++++++++++++++++
> docs/hacking.html.in | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> docs/hacking2.xsl | 4 +++
> 3 files changed, 177 insertions(+)
...
> diff --git a/docs/hacking.html.in b/docs/hacking.html.in
> index b1bb149..d904c3a 100644
> --- a/docs/hacking.html.in
> +++ b/docs/hacking.html.in
> @@ -314,6 +314,99 @@
...
> + <dl>
> + <dt>File names</dt>
> + <dd>
> + <p>
> + 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
s/'priv'./'priv',/
> + 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.
> + </p>
> + </dd>
...
> + <dt>Function names</dt>
> + <dd>
> + <p>
> + All functions should have a 'vir' prefix in their name,
> + followed by one or more words with first letter of each
> + word capitalized. Underscores should not be used in function
> + names. If the function is operating on an object, then the
> + function name prefix should match the object typedef name,
> + otherwise it should match the filename. Following this
> + comes the verb / action name, and finally an optional
> + subject name. For example, given an object 'virHashTable',
> + all functions should have a name 'virHashTable$VERB' or
> + 'virHashTable$VERB$SUBJECT". e.g. 'virHashTableLookup'
s/". e.g./", e.g./
> + or 'virHashTableGetValue'.
> + </p>
> + </dd>
> + <dt>Macro names</dt>
> + <dd>
> + <p>
> + All macros should have a "VIR" prefix in their name, followed
> + by one or more uppercase words separated by underscores. The
> + macro argument names should be in lowercase. Aside from having
> + a "VIR" prefix there are no common practices for the rest of
> + the macro name.
> + </p>
> + </dd>
> + </dl>
ACK
Jirka
More information about the libvir-list
mailing list