Blame Manual/Introduction/repo-convenctions.texi

87b0e4
This section describes the organization of files and directories
e08079
inside the CentOS Artwork Repository, the names convenctions, how to
e08079
extend the current layout and the way content is produced, as well. 
e08079
e08079
The repository layout is used as standard backend for automation
e08079
scripts to work correctly. If repository layout changes unexpectedly,
e08079
automation scripts may get confuse themselves and stop doing what you
e08079
may expect from them to do.
87b0e4
87b0e4
As convenction, inside CentOS Artwork Repository, files and
87b0e4
directories related to CentOS corporate visual identity are organized
87b0e4
under three top level directories named: @file{trunk/},
87b0e4
@file{branches/}, and @file{tags/}. 
87b0e4
87b0e4
The @file{trunk/} directory (@pxref{Directories trunk}) organizes the main
87b0e4
development line of CentOS corporate visual identity. Inside
87b0e4
@file{trunk/} directory structure, the CentOS corporate visual
87b0e4
identity concepts are implemented using directories.  There is one
87b0e4
directory level for each relevant concept inside the repository. The
87b0e4
@file{trunk/} directory structure is mainly used to perform
87b0e4
development tasks related to CentOS corporate visual identity.
87b0e4
87b0e4
The @file{branches/} directory (@pxref{Directories branches}) oranizes
87b0e4
parallel development lines to @file{trunk/} directory. The
87b0e4
@file{branches/} directory is used to set points in time where
87b0e4
develpment lines are devided one from another taking separte and
87b0e4
idependent lives that share a common past from the point they were
87b0e4
devided on. The @file{branches/} directory is mainly used to perform
87b0e4
quality assurance tasks related to CentOS corporate visual identity.
87b0e4
87b0e4
The @file{tags/} directory (@pxref{Directories tags}) organizes parallel frozen
87b0e4
lines to @file{branches/} directory.  The parallel frozen lines are
87b0e4
immutable, nothing change inside them once they has been created.  The
87b0e4
@file{tags/} directory is mainly used to publish final releases of
87b0e4
CentOS corporate visual identity.
87b0e4
87b0e4
The CentOS Artwork Repository layout is firmly grounded on a
87b0e4
Subversion base.  Subversion (@url{http://subversion.tigris.org}) is a
87b0e4
version control system, which allows you to keep old versions of files
87b0e4
and directories (usually source code), keep a log of who, when, and
87b0e4
why changes occurred, etc., like CVS, RCS or SCCS.  Subversion keeps a
87b0e4
single copy of the master sources.  This copy  is called the source
87b0e4
``repository''; it contains all the information to permit extracting
87b0e4
previous versions of those files at any time.
87b0e4
87b0e4
@subsection Repository file names
87b0e4
87b0e4
Repository name convenctions are applied to files and directories
87b0e4
inside the repository layout. As convenction, file names are all
87b0e4
written in lowercase (@samp{01-welcome.png}, @samp{splash.png},
87b0e4
@samp{anaconda_header.png}, etc.) and directory names are all written
87b0e4
capitalized (e.g., @samp{Identity}, @samp{Themes}, @samp{Motifs},
87b0e4
@samp{TreeFlower}, etc.).
87b0e4
87b0e4
Repository name convenctions are implemented inside the
87b0e4
@code{cli_getRepoName} function of @file{centos-art.sh} script. With
87b0e4
@code{cli_getRepoName} function the amount of commands and
87b0e4
convenctions to remember are reduced and concentrated in just one
87b0e4
single place to look for fixes and improvements.
87b0e4
c2929c
@subsection Work lines
c2929c
c2929c
Work lines describe different areas of content production inside
c2929c
CentOS Artwork Repository. Content production inside these specific
c2929c
areas may vary as much as persons be working on them. Producing
c2929c
content in too many different ways may result innapropriate in a
c2929c
collaborative environment like CentOS Artwork Repository where content
c2929c
produced in one area depends somehow from content produced in another
c2929c
different area. To produce content in a syncronized but descentralized
c2929c
way, it is required to define a content production standard for each
c2929c
work line that everyone uses as reference to realize their work.
c2929c
c2929c
The standard way of producing content inside CentOS Artwork Repository
c2929c
is implemented through @command{centos-art.sh} script and described in
c2929c
@command{centos-art.sh} script related documentation entry
c2929c
(@pxref{Directories trunk Scripts}).
c2929c
c2929c
Inside CentOS Artwork Repository, work lines are organized in
c2929c
@emph{Graphic design}, @emph{Documentation}, @emph{Localization} and
c2929c
@emph{Automation}.
87b0e4
2b93ca
@subsubsection Graphic design
798844
2b93ca
This work line exists to cover brand design, typography design and
c2929c
theme design. Additionally, some auxiliar areas like icon design,
c2929c
illustration design for documentation, brushes design, pattern designs
c2929c
and palettes with color definitions could be included here for
c2929c
completeness.
c2929c
c2929c
Inside CentOS Artwork Repository, graphic design is performed through
c2929c
Inkscape and GIMP program.  Inkscape is used create and manipulate
c2929c
scalable vector graphics and export them to PNG format; it also
c2929c
provides a command-line interface that we use to automate the
c2929c
exportation process so you can perform massive exportation of SVG
c2929c
files to PNG files. On the other hand, GIMP is used to create and
c2929c
manipulate rastered images, create brushes, patterns and palettes of
c2929c
colors.  Notice that each program provides very specific
c2929c
functionalities and posibilities that when combined can let you
c2929c
produce very beautiful images.
c2929c
c2929c
The CentOS Project Corporate Identity is made of several visual
c2929c
manifestations.  These visual manifestations implement the Corporate
c2929c
Identity by mean of images placed in key areas of their visual space.
c2929c
To produce these images, we decompose image production in @emph{design
c2929c
models} and @emph{artistic motifs}. Design models provide the image
c2929c
structure (i.e., dimension, translation markers, common designs, etc.)
c2929c
and are generally produced as scalable vector graphics generally. On
c2929c
the other hand, artistic motifs provide the visual style (i.e., the
c2929c
background information, the look and feel) and are generally produced
c2929c
as rastered images.
87b0e4
87b0e4
Design models are created for each visual manifestation the CentOS
87b0e4
Project is made of. This way we describe the visual manifestation and
87b0e4
provide a template system for it where several artistic motifs can be
87b0e4
applied. Artistic motifs are created with design models in mind, not
c2929c
the visual manifestation that design models are built for.
c2929c
c2929c
The result produced by combining one design model with one artistic
c2929c
motif is what we know as a @emph{theme}. Inside themes directory
c2929c
structure (@pxref{Directories trunk Identity Themes}), you can find
c2929c
several design models and several artistic motifs, apart one another,
c2929c
that can be albitrarily combined one another through @emph{theme
c2929c
rendition}, a flexible way to produce images for different visual
c2929c
manifestations inside CentOS Artwork Repository. Inside themes
c2929c
directory structure, theme rendition is performed in
c2929c
@file{trunk/Identity/Themes/Motifs} directory structures and takes
c2929c
design models from @file{trunk/Identity/Themes/Models} directory
c2929c
structure.
798844
798844
In addition to theme rendition, you can find another way of image
798844
production, a more direct way of image production where there is no
798844
artistic motif at all, but design models only. Such configuration is
798844
named @emph{direct rendition} and is very useful to produce simple
c2929c
content that doesn't need specific background information (e.g., icons
c2929c
and illustrations for documentation). Direct rendition takes place in
c2929c
@file{trunk/Identity/Models} and @file{trunk/Identity/Images}
798844
directory structures.
798844
c2929c
@xref{Directories trunk Identity}, for more information on graphic
c2929c
design.
798844
2b93ca
@subsubsection Documentation
2b93ca
2b93ca
This work line exists to describe what each directory structure inside
2b93ca
the CentOS Artwork Repository is for and how to produce content inside
87b230
them.
87b230
87b230
Documentation is supported by Texinfo, a documentation system that
87b230
uses a single source file to produce both online information and
87b230
printed output.
87b230
87b230
Documentation is organized in the same way of CentOS Artwork
87b230
Repository directory structure. In the CentOS Artwork Repository we
87b230
use directories to store conceptual ideas of The CentOS Project
87b230
Corporate Visual Identity.  This way, each directory in CentOS Artwork
87b230
Repository has its own documentation section to describe the related
87b230
conceptual ideas it is based on. Documentation entries related to
87b230
repository directory structure are organized in sections under
87b230
@emph{Repository Directories} chapter (@pxref{Directories}).
87b230
87b230
The file structure of documentation related to the repository
87b230
directory structures is stored under @file{trunk/Manual/Directories}
87b230
directory structure and controlled by the @code{help} functionality of
87b230
@command{centos-art.sh} script.  Using this functionality you can
87b230
create, edit and remove documentation for each directory structure
87b230
inside the repository; so you don't need to take care of updating
87b230
menus, nodes and cross reference information inside the manual
87b230
structure, the functionality takes care of it for you.  However, if
87b230
you need to write repository documentation that have nothing to do
87b230
with directory structure (e.g., Preface, Introduction and similar) you
87b230
need to do it manually, there is no functionality to automate such
87b230
process yet.
87b230
87b230
@xref{Directories trunk Manual}, for more information on
87b230
documentation.
2b93ca
8e4e50
@subsubsection Localization
87b0e4
2b93ca
This work line exists to localize corporate design and documentation
2b93ca
source files, so they can be produced in different languages.
2b93ca
87b0e4
Whatever content rendition you perform, sometimes you need to produce
798844
content in different languages. Production of content in different
87b0e4
languages is known as localization or l10n for short.  Inside CentOS
87b0e4
Artwork Repository, content localization is performed using the
87b230
processes provided by @command{gettext} internationalization standard.
87b0e4
798844
Basically, the @command{gettext} internationalization standard
87b0e4
consists on retriving translatable strings from source files and
798844
creating Portable Objects and Machine Objects. Portable Objects
798844
contain the information used by translators to do their work, they are
798844
files that can be edited by any convenctional text editor like Vim,
798844
Emacs or Nano. On the other hand, Machine Objects are produced to be
798844
machine-redable as its name implies, and are produced from Portable
798844
Objects.
87b0e4
87b0e4
Since @command{gettext} needs to extract translatable strings form
87b0e4
source files in order to let translators to localize them, the types
87b0e4
of source files we use inside the repository are limitted to the file
87b230
types supported by @command{gettext} program. Most of the source files
87b0e4
supported by @command{gettext} are those from programming languages
798844
like C, C++, Bash, Python and Perl just to mention a few ones from the
798844
long list of supported formats. However, formats like SVG, XHTML and
87b0e4
Docbook don't figure as supported in the long list of
87b230
@command{gettext} supported source files. 
87b230
87b230
To translate XML based source files like SVG, XHTML and Docbook we use
87b230
the @command{xml2po} program. This program comes with
87b230
@file{gnome-doc-utils} package and reads one XML based file to extract
87b230
translatable strings from it. As result it creates one Portable Object
87b230
that is use by @command{xml2po} itself to create a translated XML
87b230
based file with the same definition of the source file where
87b230
translatable strings were taken from (e.g., if we extract translatable
87b230
strings from a SVG file, as result we get the same SVG file but with
87b230
translatable strings already localized ---obviously, for this to
87b230
happen translators need to localize translatable strings inside the
87b230
Portable Object first, localization won't appear as art of magic---).
87b230
When using @command{xml2po}, the Machine Object file is used just
87b230
temporally to produce the final translated XML based file.
87b0e4
87b0e4
@quotation
87b0e4
@strong{Tip} If you want to have your content localized inside CentOS
87b0e4
Artwork Repository be sure to use source files supported by
87b0e4
@command{gettext} and @command{xml2po} programs.
87b0e4
@end quotation
87b0e4
8e4e50
@xref{Directories trunk Locales}, for more information.
87b0e4
2b93ca
@subsubsection Automation
2b93ca
87b230
This work line exists to standardize content production inside CentOS
87b230
Artwork Repository. There is no need to repeat several tasks time
87b230
after time if they can be programmed in just one.  If you need to
87b230
improve the way content is produced, look inside automation scripts
87b230
and make your improvement there for every one to benefit.
798844
87b0e4
So far, we've seen a conceptual view of how image production inside
87b0e4
CentOS Artwork Repository is performed, but how all this is
87b0e4
implemented, what is the practical view?
87b0e4
87b0e4
The practical view can be found through @command{centos-art.sh}
87b0e4
script, a bash script specially designed to automate most frequent
87b0e4
tasks inside CentOS Artwork Repository. The @command{centos-art.sh}
87b0e4
script is stored in @file{trunk/Scripts} directory structure and is
87b0e4
there where the main development for @command{centos-art.sh} script
87b0e4
takes place. Basically, the @command{centos-art.sh} script is divided
87b0e4
in several functionalities that perform specific tasks inside the
87b0e4
repository. Such functionalities relay on repository organization to
87b0e4
work as expected. 
87b0e4
87b0e4
Maiking the @command{centos-art.sh} script to automate tasks is the
87b0e4
only possible work flow that I can think about right now. If you are a
87b0e4
programmer, take a functionality from @command{centos-art.sh} script,
87b0e4
study it, look how to improve it and share your ideas at
87b230
@email{centos-devel@@centos.org} mailing list or create your own new
87b230
functionalities and propose them as well.
87b0e4
87b0e4
@quotation 
87b0e4
@strong{Note} As default configuration, everyone is denied from
87b0e4
committing changes up to CentOS Artwork Repository. In order to gain
87b0e4
commit rights, you need to prove your interest in contributing and
87b0e4
maintaining that contribution.  Otherwise, if you only want to comment
87b0e4
your ideas, the @email{centos-devel@@centos.org} mailing list exists
87b0e4
for you to manifest yourself. This restrictions are necessary to
87b0e4
protect our work from spammers.
87b0e4
@end quotation
87b0e4
c2929c
@xref{Directories trunk Scripts}, for more information on automation.
8e4e50
87b230
@subsection Connection between directories
87b230
87b230
In order to produce content correctly inside CentOS Artwork
87b230
Repository, it is required that all work lines be connected somehow.
87b230
This way it could be possible to know what design models and
87b230
translation messages to use in order to produce a specific content.
87b230
This directory connection between work lines takes place through one
87b230
@emph{master path} that may have several @emph{auxiliar paths}.
87b230
87b230
Master paths are those whose contain source files used to produce base
87b230
content and auxiliar paths provide the files used to modify the
87b230
production of such base content. For example, when images are produced
87b230
from source files, the directory structure that holds source files is
87b230
considered the master path and all other directory structures are
87b230
considered auxiliar paths. There are auxiliar paths to store images,
87b230
translation messages and documentation.
87b230
87b230
Auxiliar paths take their structure from one unique parent path.
87b230
Inside CentOS Artwork Repository, this unique parent path is under
87b230
@file{trunk/Identity} directory structure.  The @file{trunk/Identity}
87b230
location must be considered as a reference for whatever information
87b230
you plan to create inside the repository. For example, all the
87b230
possible paths related to brands component production, are:
87b230
87b230
@table @file
87b230
@item trunk/Identity/Models/Brands
87b230
87b230
This is the master path where source files used to produce brands are
87b230
stored in.
87b230
87b230
@item trunk/Locales/Identity/Models/Brands
87b230
87b230
This is the auxiliar path where translation messages used to produce
87b230
brands, if there is any at all, are stored in.
87b230
87b230
@item trunk/Manual/Directories/trunk/Locales/Identity/Models/Brands.texi
87b230
87b230
This is the auxiliar path where documentation about translation
87b230
messages, used to produce brands are stored in.
87b230
87b230
@item trunk/Identity/Images/Brands
87b230
87b230
This is the auxiliar path where output images produced as result of
87b230
rendition are stored in.
87b230
87b230
@item trunk/Manual/Directories/trunk/Identity/Models/Brands.texi
87b230
87b230
This is the auxiliar path where documentation about brand design is
87b230
stored in. This is, how brands are constructed, the color information,
87b230
the proportions, etc. Notice that it points to a regular file, not a
87b230
directory as other auxilar path use to do.
87b230
87b230
@item trunk/Manual/Directories/trunk/Identity/Images/Brands.texi
87b230
87b230
This is the auxiliar path where documentation about brand
87b230
implementation. This is, how the brand is applied and how it cannot be
87b230
applied in each different visual manifestation. Notice that it points
87b230
to a regular file, not a directory as other auxiliar path use to do.
87b230
@end table
87b230
87b230
The configuration described above for organizing brand component
87b230
inside the repository is the one used by direct rendition and can be
87b230
used as reference to organize other components inside the repository
87b230
that are produced through direct rendition too. Just change the
87b230
component name from brands to that one you want to add without
87b230
changing the path structure around it.
87b230
87b230
The file organization used by theme rendition, however, is a bit
87b230
different from that used by direct rendition. In theme rendition, both
87b230
master paths and auxiliar paths are built dynamically based on the
87b230
design model and the artistic motifs you specify at rendition time. As
87b230
a mnemotechnic resource, consider theme rendition as two independent
87b230
lists, one list of design models and one list of artistic motifs,
87b230
which are arbitrary combined among themselves in order to render
87b230
images. For example, consider the organization used to produce
87b230
Anaconda images to CentOS distribution major release 5 from Default
87b230
design model and Flame artistic motif:
87b230
87b230
@table @file
87b230
@item trunk/Identity/Themes/Models/Default/Distro/5/Anaconda
87b230
87b230
This directory contains source files used to produce Anaconda images
87b230
for CentOS distribution major release 5 using Default design models.
87b230
87b230
Here is where you, as graphic designers, define Default design models for
87b230
Anaconda images used in CentOS distribution major release 5.
87b230
87b230
The path to this directory is considered master because it contains
87b230
the most critical information (i.e., the information that can't be
87b230
absent) required to produce Anaconda images used inside CentOS
87b230
distribution major release 5.
87b230
87b230
@item trunk/Manual/Directories/trunk/Identity/Themes/Models/Default/Distro/5/Anaconda.texi
87b230
87b230
This file contains documentation, in Texinfo format, for Default
87b230
design models used to produce the Anaconda images used inside CentOS
87b230
distribution major release 5. 
87b230
87b230
Here is where you, as documentor, describe construction of Default
87b230
desing models used to produce the Anaconda images for CentOS
87b230
distribution major release 5. In this description you can include
87b230
image dimensions, color information, image location inside
87b230
distribution filesystem, image packaging and similar things.
87b230
87b230
The path to this file is considered auxiliar for
87b230
@file{trunk/Identity/Themes/Models/Default/Distro/5/Anaconda} master
87b230
path because provides the description required to let everyone know
87b230
how to build Default design models used to produce Anaconda images
87b230
required by CentOS distribution major release 5.
87b230
87b230
@item trunk/Locales/Identity/Themes/Models/Default/Distro/5/Anaconda
87b230
87b230
This directory contains translation files, as @command{gettext}
87b230
portable objects, for Default design models used to produce the
87b230
Anaconda images used inside CentOS distribution major release 5. 
87b230
87b230
Here is where you, as translator, localize translatable strings
87b230
retrived in English language from Default design models used to
87b230
produce the Anaconda images of CentOS distribution major release 5 to
87b230
your own language. If no portable object is found here, content is
87b230
produced in English language.
87b230
87b230
The path to this directory is considered auxiliar for
87b230
@file{trunk/Identity/Themes/Models/Default/Distro/5/Anaconda} master
87b230
path because provides the language-specific information required to
87b230
produce Anaconda Default design models in different languages.
87b230
87b230
@item trunk/Manual/Directories/trunk/Locales/Identity/Themes/Models/Default/Distro/5/Anaconda.texi
87b230
87b230
This file contains documentation, in Texinfo format, for translation
87b230
messages retrived from Default design models used to produce the
87b230
Anaconda images used inside CentOS distribution major release 5. 
87b230
87b230
Here is where you, as documentor, describe localization of Default
87b230
desing models used to produce the Anaconda images used in CentOS
87b230
distribution major release 5. In this description you can include
87b230
image dimensions, color information, image location inside
87b230
distribution filesystem, image packaging and similar things.
87b230
87b230
The path to this file is considered auxiliar for
87b230
@file{trunk/Identity/Themes/Models/Default/Distro/5/Anaconda} master
87b230
path because provides the language-specific information required to
87b230
produce Anaconda Default design models in different languages.
87b230
87b230
Each master path has its own auxiliar path to store their specific
87b230
documentation and whatever the artistic motifs used to produce images
87b230
be is somthing irrelevant.
87b230
87b230
@item trunk/Identity/Themes/Motifs/Flame/3/Distro/5/Anaconda
87b230
87b230
This directory contains Anaconda final images produced from Anaconda
87b230
Default design models used by CentOS distribution major release 5 and
87b230
Flame 3 artistic motif. 
87b230
87b230
Here is where you, as packager, can find the images you need to
87b230
rebrand Anaconda in CentOS distribution major release 5.
87b230
87b230
The path to this directory is considered auxiliar for
87b230
@file{trunk/Identity/Themes/Models/Default/Distro/5/Anaconda} master
87b230
path because it provides the final images produced from Anaconda
87b230
Default design models.
87b230
87b230
@item trunk/Manual/Directories/trunk/Identity/Themes/Motifs/Flame/3/Distro/5/Anaconda.texi
87b230
87b230
This directory should contain documentation about how to implement
87b230
Anaconda component in CentOS distribution major release 5 would be.
87b230
However, since all artistic motifs are produced based on one design
87b230
model (@file{trunk/Identity/Themes/Models/Default/Distro/5/Anaconda},
87b230
in this case) we may end up duplicating the same documentation in all
87b230
artistic motifs documentation entries and there is no need of that.
87b230
87b230
To avoid duplicating information, all documentation related to theme
87b230
components like Anaconda is put in design model documentation entires
87b230
(@file{trunk/Manual/Directories/trunk/Locales/Identity/Themes/Models/Default/Distro/5/Anaconda.texi}
87b230
in this case).  The only reason to create documentation entries inside
87b230
artistic motifs is to put a redirection admonition to link design
87b230
model related information.
87b230
@end table
87b230
87b230
The Anaconda component is part of CentOS Distribution visual
87b230
manifestation. Inside CentOS Distribution visual manifestation there
87b230
are other components Syslinux, Grub, Rhgb, Gdm, Kdm, Gsplash and
87b230
Ksplash that share a similar file organization to that described for
87b230
Anaconda component. The way each of these components is produced is
87b230
described in their own documentation entry.
87b230
87b230
When one master path is changed, it is required to change the related
87b230
auxiliar path related to it, too. This is required in order for master
87b230
paths to retain their relation with their auxiliar paths. This way,
87b230
automation script are able to know where to retrive translation
87b230
messages, where to store final output images and where to look for
87b230
documentation. If relation between master paths and auxiliar paths is
87b230
lost, there is no way for automation scripts to know where to retrive
87b230
the information required by for task automation.
87b230
87b230
The auxiliar paths should never be modified under no reason but to
87b230
satisfy the relation to their master paths.  Liberal change of
87b230
auxiliar paths may suppress the conceptual idea they were initially
87b230
created for; and certainly, things may stop working the way they
87b230
should.
87b0e4
87b0e4
@subsection Syncronizing path information
87b0e4
87b230
The master and auxiliar paths concept is very useful to keep
87b230
repository organized but introduce some complications.  For instance,
87b230
consider what would happen to functionalities like @code{help}, that
87b230
rely on master paths to create documentation entries, through auxiliar
87b230
paths, if one of those master paths suddenly change after the
87b230
documentation entry has been already created for it?
87b230
87b230
In such cases, functionalities like @code{help} may confuse themselves
87b230
if path information is not updated to reflect the appropriate path
87b230
relation.  Such functionalities work with master paths as reference;
87b230
if a master path is changed, the functionalities won't even note it
87b230
because they work with the last master path available in the
87b230
repository, no matter what it is. 
87b230
87b230
In the specific case of documentation (the @code{help} functionality),
87b230
the problem mentioned above provokes that older master paths, already
87b230
documented, remain inside documentation directory structures as long
87b230
as you get your hands into the documentation directory structure
87b230
(@file{trunk/Manual}) and change what must be changed to match the new
87b230
master path information.
87b230
87b230
There is no immediate way for @code{help} and similar functionalities
87b230
that use master paths as reference, to know when and how the path
87b230
information is changed inside the repository. Such information is
87b230
available only when files or directories are moved in the repository.
87b230
So, is there, at the moment of moving files, when we need to
87b230
syncronize paths information between master paths and auxiliar paths
87b230
and rename old paths to new paths inside all the files which includes
87b230
them (e.g., scalalble vector graphics, documentation files and
87b230
translation files files) and commit everything to keep the central
87b230
repository up to date.
87b0e4
87b0e4
@quotation
87b230
@strong{Warning} Even Subversion can perform some operations using
87b230
URLs, there is not support for URLs inside @command{centos-art.sh}
87b230
script.  The @command{centos-art.sh} script is designed to work with
87b230
local files inside the working copy only. If you need to work on URLs
87b230
directly, use Subversion command-line interface instead of
87b230
@command{centos-art.sh} script. 
87b0e4
@end quotation
87b0e4
87b230
File movement inside the repository is considered a repository change
87b230
and it should be recorded as such. In order for this to happen, we
87b230
need to add directories and files into the version control system to
87b230
make them part of it, commit them, perform the file movement using
87b230
version control system commands and finally commit all files related
87b230
in the operation. This configuration makes possible for everyone to
87b230
know about changes details inside the repository; and if needed,
87b230
revert or update them back to a previous revision.
87b230
87b230
Once all path information has been updated in the filesystem, it is
87b230
time to update path information inside all the files involved in the
87b230
operation. Considere what would happen to documentation entries
87b230
defined in the documentation manual when the target locations they
87b230
point to are removed from filesystem. Certainly, that would make
87b230
Texinfo to produce an error message when documentation manual is
87b230
exported to output files. Something similar could happen to scalable
87b230
vector graphics that include artistic motifs background images and
87b230
translation messages with path information inside.
87b230
87b230
So, in order to keep path information syncronized, the
87b0e4
@file{centos-art.sh} script needs to know when such changes happen, in
87b230
a way they could be noted and handled without producing errors (e.g.,
87b230
replacing old path information to new path information inside all the
87b230
files that may include any kind of path information inside).
87b0e4
87b230
@subsection Extending repository structure
87b0e4
87b0e4
Occasionly, you may find that new corporate visual identity components
87b0e4
need to be added to the repository. If that is your case, the first
87b0e4
question you need to ask yourself, before start to create directories
87b0e4
blindly all over, is: What is the right place to store it?
87b0e4
87b230
The best place to find answers is in The CentOS Community (see page
87b230
@url{http://wiki.centos.org/GettingHelp}), but going there with hands
87b230
empty is not good idea. It may give the impression you don't really
87b230
care about. Instead, consider the following suggestions to find your
87b230
own comprehension in order to make your own propositions based on it.
87b230
87b230
The best advice we probably could offer you, when extending
87b230
respository structure, is to bear in mind The CentOS Project Corporate
87b230
Identity Structure (@pxref{Directories trunk Identity}). The rest is
87b230
just matter of choosing appropriate names.  
87b230
87b230
To illustrate this desition process let's consider the
87b230
@file{trunk/Identity/Themes/Motifs/TreeFlower} directory structure as
87b230
example.  It can be read as: the trunk development line of
87b230
@emph{TreeFlower} artistic motif; artistic motifs are part of themes;
87b230
and themes part of CentOS corporate visual identity.
87b0e4
87b0e4
When building parent directory structures, you may find that reaching
87b0e4
an acceptable location may take some time, and as it uses to happen
87b230
most of time; once you've find one, that may be not a definite
87b230
solution.  There are many concepts you need to play with, in order to
87b230
find a result that match the conceptual idea you try to implement in
87b230
the new directory structure. To know which these concepts are, split
87b230
directory structures and read their documentation entry from less
87b230
specific to more specific.  The concepts used in
87b230
@file{trunk/Identity/Themes/Distro/Motifs/TreeFlower} directory
87b230
structure are described in the following documentation entries,
87b230
respectively:
87b0e4
87b0e4
@verbatim
87b230
centos-art help --read turnk/
87b230
centos-art help --read turnk/Identity/
87b230
centos-art help --read turnk/Identity/Themes/
87b230
centos-art help --read turnk/Identity/Themes/Motifs/
87b230
centos-art help --read turnk/Identity/Themes/Motifs/TreeFlower/
87b0e4
@end verbatim
87b0e4
87b230
The @file{trunk/Identity/Themes/Motifs/TreeFlower} location has
87b230
evolved through several months of contant work and there is no certain
87b230
it won't change in the future, even it fixes quite well the concept we
87b230
are trying to implement.  Other location concepts can be found in the
87b230
same way described above, just change the directory structure to the
87b230
one you are trying to know concepts for.