|
|
74c0c0 |
The CentOS Artwork Repository is supported by Subversion
|
|
|
74c0c0 |
(@url{http://subversion.tigris.org/}), a version control system which
|
|
|
74c0c0 |
allows you to keep old versions of files and directories (usually
|
|
|
74c0c0 |
source code), keep a log of who, when, and why changes occurred, etc.,
|
|
|
513258 |
like CVS, RCS or SCCS.
|
|
|
513258 |
|
|
|
513258 |
When using Subversion there is one @emph{source repository} and many
|
|
|
513258 |
@emph{working copies} of that source repository. The working copies
|
|
|
513258 |
are independent one another, can be distributed all around the world
|
|
|
513258 |
and provide a local place for designers, documentors, translators and
|
|
|
513258 |
programmers to perform their works in a descentralized way. The
|
|
|
513258 |
source repository, on the other hand, provides a central place for all
|
|
|
513258 |
independent working copies to interchange data and provides the
|
|
|
74c0c0 |
information required to permit extracting previous versions of files
|
|
|
74c0c0 |
at any time.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
@subsection Repository policy
|
|
|
74c0c0 |
|
|
|
32f4f2 |
The CentOS Artwork Repository is a collaborative tool that anyone can
|
|
|
32f4f2 |
have access to. However, changing that tool in any form is something
|
|
|
32f4f2 |
that should be requested in @email{centos-devel@@centos.org} mailing
|
|
|
32f4f2 |
list. Generally, people download working copies from CentOS Artwork
|
|
|
32f4f2 |
Repository, study the repository organization, make some changes in
|
|
|
513258 |
their working copies, make some tests to verify such changes do work
|
|
|
513258 |
the way expected and finally request access to commit them up to the
|
|
|
513258 |
CentOS Artwork Repository (i.e., the source repository) for others to
|
|
|
513258 |
benefit from them.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
Once you've received access to commit your changes, there is no need
|
|
|
74c0c0 |
for you to request permission again to commit other changes from your
|
|
|
74c0c0 |
working copy to CentOS Artwork Repository as long as you behave as a
|
|
|
74c0c0 |
@emph{good community citizen}.
|
|
|
74c0c0 |
|
|
|
513258 |
As a good community citizen one understand of a person who respects
|
|
|
74c0c0 |
the work already done for others and share ideas with authors before
|
|
|
74c0c0 |
changing relevant parts of their work, specially in situations when
|
|
|
513258 |
the access required to realize the changes has been granted already.
|
|
|
74c0c0 |
Of course, there is a time when conversation has taken place, the
|
|
|
74c0c0 |
paths has been traced and changing the work is so obvious that there
|
|
|
513258 |
is no need for you to talk about it; that's because you already did,
|
|
|
513258 |
you already built the trust to keep going. Anyway, the mailing list
|
|
|
74c0c0 |
mentioned above is available for sharing ideas in a way that good
|
|
|
74c0c0 |
relationship between community citizens could be constantly balanced.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
The relationship between community citizens is monitored by repository
|
|
|
74c0c0 |
administrators. Repository administrators are responsible of granting
|
|
|
74c0c0 |
everything goes the way it needs to go in order for the CentOS Artwork
|
|
|
74c0c0 |
Repository to comply its mission which is: to provide a colaborative
|
|
|
74c0c0 |
tool for The CentOS Community where The CentOS Project Corporate
|
|
|
74c0c0 |
Identity is built and maintained from The CentOS Community itself.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
It is also important to remember that all source files inside CentOS
|
|
|
74c0c0 |
Artwork Repository should comply the terms of GNU General Public
|
|
|
74c0c0 |
License in order for them to remain inside the repository. See file
|
|
|
74c0c0 |
@url{file:///home/centos/artwork/trunk/Scripts/COPYING,trunk/Scripts/COPYING},
|
|
|
74c0c0 |
for a complete license description.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
@subsection Repository organization
|
|
|
74c0c0 |
|
|
|
74c0c0 |
The CentOS Artwork Repository uses a @file{trunk}, @file{branches},
|
|
|
74c0c0 |
and @file{tags} organization.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
@table @file
|
|
|
74c0c0 |
@item trunk
|
|
|
74c0c0 |
|
|
|
74c0c0 |
The @file{trunk} directory organizes the main development line of
|
|
|
74c0c0 |
CentOS Artwork Repository. @xref{Directories trunk}, for more
|
|
|
74c0c0 |
information.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
@item branches
|
|
|
74c0c0 |
|
|
|
513258 |
The @file{branches} directory oranizes intermediate development lines
|
|
|
74c0c0 |
taken from the main development line. @xref{Directories branches},
|
|
|
74c0c0 |
for more information.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
@item tags
|
|
|
74c0c0 |
|
|
|
74c0c0 |
The @file{tags} directory organizes frozen development lines taken
|
|
|
513258 |
either from the main or the intermediate lines of development.
|
|
|
74c0c0 |
@xref{Directories tags}, for more information.
|
|
|
74c0c0 |
@end table
|
|
|
87b0e4 |
|
|
|
87b0e4 |
@subsection Repository file names
|
|
|
87b0e4 |
|
|
|
513258 |
Inside the CentOS Artwork Repository, file names are all written in
|
|
|
513258 |
lowercase (e.g., @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 |
|
|
|
74c0c0 |
@subsection Repository work lines
|
|
|
c2929c |
|
|
|
513258 |
Inside CentOS Artwork Repository there are four major work lines of
|
|
|
513258 |
production which are: @emph{graphic design}, @emph{documentation},
|
|
|
32f4f2 |
@emph{localization} and @emph{automation}. These work lines describe
|
|
|
32f4f2 |
different areas of content production. Content production inside these
|
|
|
32f4f2 |
specific areas may vary as much as persons be working on them.
|
|
|
32f4f2 |
Producing content in too many different ways may result innapropriate
|
|
|
32f4f2 |
in a collaborative environment like CentOS Artwork Repository where
|
|
|
32f4f2 |
content produced in one area depends somehow from content produced in
|
|
|
513258 |
another different area. So, a @emph{content production standard} is
|
|
|
513258 |
required.
|
|
|
87b0e4 |
|
|
|
2b93ca |
@subsubsection Graphic design
|
|
|
798844 |
|
|
|
74c0c0 |
The graphic design work line exists to cover brand design, typography
|
|
|
513258 |
design and themes design mainly. Additionally, some auxiliar areas
|
|
|
513258 |
like icon design, illustration design (for documentation mainly),
|
|
|
513258 |
brushes design, patterns designs and palettes of colors are also
|
|
|
74c0c0 |
included here for completeness.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
Inside CentOS Artwork Repository graphic design is performed through
|
|
|
74c0c0 |
Inkscape (@url{http://www.inkscape.org/}) and GIMP
|
|
|
513258 |
(@url{http://www.gimp.org/}). The Inkscape tool is used to create and
|
|
|
74c0c0 |
manipulate scalable vector graphics and export them to PNG format; it
|
|
|
74c0c0 |
also provides a command-line interface that we use to perform massive
|
|
|
513258 |
exportation from SVG files to PNG files in automation scripts. On the
|
|
|
513258 |
other hand, GIMP is used to create and manipulate rastered images,
|
|
|
513258 |
create brushes, patterns and palettes of colors.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
@quotation
|
|
|
513258 |
@strong{Tip} Combine both Inkscape and GIMP specific functionalities
|
|
|
513258 |
and possibilities to produce very beautiful images.
|
|
|
74c0c0 |
@end quotation
|
|
|
74c0c0 |
|
|
|
513258 |
The CentOS Project Corporate Visual Identity is made of different
|
|
|
513258 |
visual manifestations (e.g., Distributions, Web sites, Stationery,
|
|
|
513258 |
etc.). Visual manifestations implement the corporate identity
|
|
|
513258 |
concepts by mean of images. To produce these images, we decompose
|
|
|
513258 |
image production in @emph{design models} and @emph{artistic motifs}.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
Design models provide the structural information of images (i.e.,
|
|
|
513258 |
dimension, position of common elements in the visible area,
|
|
|
513258 |
translation markers, etc.) and they are generally produced as scalable
|
|
|
513258 |
vector graphics to take advantage of SVG standard, an XML-based
|
|
|
513258 |
standard which describe scalable vector graphics.
|
|
|
513258 |
|
|
|
513258 |
Artistic motifs provide the visual style (i.e., the background
|
|
|
513258 |
information, the look and feel) some design models need to complete
|
|
|
513258 |
the final image produced by automation scripts. Artistic motifs are
|
|
|
513258 |
generally produced as rastered images.
|
|
|
513258 |
|
|
|
513258 |
The result produced from 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
|
|
|
513258 |
several design models and several artistic motifs independently one
|
|
|
513258 |
another that can be albitrarily combined through @emph{theme
|
|
|
c2929c |
rendition}, a flexible way to produce images for different visual
|
|
|
513258 |
manifestations in very specific visual styles. Inside themes directory
|
|
|
513258 |
structure, theme rendition is performed in
|
|
|
513258 |
@file{trunk/Identity/Themes/Motifs} directory structure, the required
|
|
|
74c0c0 |
design models are taken from @file{trunk/Identity/Themes/Models}
|
|
|
513258 |
directory structure and the action itself is controlled by the
|
|
|
513258 |
@code{render} functionality of @command{centos-art.sh} script.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
In addition to theme rendition you can find @emph{direct rendition},
|
|
|
513258 |
too. Direct rendition is another way of image production where there
|
|
|
513258 |
is no artistic motif at all but design models only. Direct rendition
|
|
|
513258 |
is very useful to produce simple content that doesn't are in need of
|
|
|
513258 |
specific background information. Some of these contents are brands,
|
|
|
513258 |
icons and illustrations. Direct rendition is performed in
|
|
|
513258 |
@file{trunk/Identity/Images}, the required design models are taken
|
|
|
513258 |
from @file{trunk/Identity/Models} directory structure and the action
|
|
|
513258 |
itself is controlled by the @code{render} functionality of
|
|
|
513258 |
@command{centos-art.sh} script.
|
|
|
513258 |
|
|
|
513258 |
@xref{Directories trunk Identity}, for more information about The
|
|
|
513258 |
CentOS Corporate Identity and how graphic design fits on it.
|
|
|
798844 |
|
|
|
2b93ca |
@subsubsection Documentation
|
|
|
2b93ca |
|
|
|
74c0c0 |
The documentation work line exists to describe what each directory
|
|
|
513258 |
inside the CentOS Artwork Repository is for, the conceptual ideas
|
|
|
513258 |
behind them and, if possible, how automation scripts make use of them.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
The CentOS Artwork Repository documentation is supported by Texinfo, a
|
|
|
74c0c0 |
documentation system that uses a single source file to produce both
|
|
|
513258 |
online information and printed output.
|
|
|
513258 |
|
|
|
513258 |
The repository documentation is organized under @file{trunk/Manual}
|
|
|
513258 |
directory structure and uses the repository directories as reference.
|
|
|
513258 |
Each directory structure in the repository has a documentation entry
|
|
|
513258 |
associated in the documentation manual. Directory documentation
|
|
|
513258 |
entries are stored under @file{trunk/Manual/Directories} directory
|
|
|
513258 |
structure and the action itself is controlled by the @code{help}
|
|
|
513258 |
functionality of @command{centos-art.sh} script.
|
|
|
513258 |
|
|
|
513258 |
The @code{help} functionality let you create, edit and delete
|
|
|
513258 |
documentation entries in a way that you don't need to take care of
|
|
|
74c0c0 |
updating menus, nodes and cross reference information inside the
|
|
|
74c0c0 |
manual structure; the functionality takes care of it for you.
|
|
|
74c0c0 |
However, if you need to write repository documentation that have
|
|
|
74c0c0 |
nothing to do with repository directories (e.g., Preface, Introduction
|
|
|
74c0c0 |
and similar) you need to do it manually, there is no functionality to
|
|
|
74c0c0 |
automate such process yet.
|
|
|
87b230 |
|
|
|
87b230 |
@xref{Directories trunk Manual}, for more information on
|
|
|
87b230 |
documentation.
|
|
|
2b93ca |
|
|
|
8e4e50 |
@subsubsection Localization
|
|
|
87b0e4 |
|
|
|
74c0c0 |
The localization work line exists to provide the translation messages
|
|
|
513258 |
required to produce content in different languages. Translation
|
|
|
513258 |
messages inside the repository are stored as portable objects (e.g.,
|
|
|
513258 |
.po, .pot) and machine objects (.mo) under @file{trunk/Locales}
|
|
|
513258 |
directory structure.
|
|
|
87b0e4 |
|
|
|
74c0c0 |
The procedure used to localize content is taken from @command{gettext}
|
|
|
513258 |
standard specification. Basically, translatable strings are retrived
|
|
|
513258 |
from source files (e.g., Bash scripts, SVG, XHTML, XML, etc.) in order
|
|
|
513258 |
to create portable objects and machine objects for them. These
|
|
|
513258 |
portable objects are editable files that contain the information used
|
|
|
513258 |
by translators to do their work. On the other hand, machine objects
|
|
|
513258 |
are produced to be machine-redable only, as its name implies, and are
|
|
|
513258 |
produced from portable objects.
|
|
|
87b0e4 |
|
|
|
87b0e4 |
Since @command{gettext} needs to extract translatable strings form
|
|
|
513258 |
source files in order to let translators to localize them, we are
|
|
|
513258 |
limitted to use source files supported by @command{gettext} program.
|
|
|
513258 |
This is not a limitation at all since @command{gettext} supports most
|
|
|
513258 |
popular programming laguages (e.g., C, C++, Java, Bash, Python, Perl,
|
|
|
513258 |
PHP and GNU Awk just to mention a few ones. Nevertheless, formats like
|
|
|
513258 |
SVG, XHTML and Docbook don't figure as supported formats in the list
|
|
|
513258 |
of @command{gettext} supported source files.
|
|
|
87b230 |
|
|
|
87b230 |
To translate XML based source files like SVG, XHTML and Docbook we use
|
|
|
513258 |
the @command{xml2po} program instead. The @command{xml2po} comes with
|
|
|
513258 |
the @file{gnome-doc-utils} package and retrives translatable strings
|
|
|
513258 |
from one XML file which are used to produce one portable object that
|
|
|
513258 |
has the same format @command{gettext} portable objects have. With the
|
|
|
513258 |
portable object in place, we use @command{xml2po} again to create the
|
|
|
513258 |
final translated XML, just with the same definition of the source file
|
|
|
513258 |
where translatable strings were taken from (e.g., if we extract
|
|
|
513258 |
translatable strings from a SVG file, as result we get the same SVG
|
|
|
513258 |
file but with translatable strings already localized ---obviously, for
|
|
|
513258 |
this to happen translators need to localize translatable strings
|
|
|
513258 |
inside the portable object first, localization won't appear as art of
|
|
|
513258 |
magic---). When using @command{xml2po}, the machine object is used as
|
|
|
513258 |
temporal file to produce the final translated XML file.
|
|
|
87b0e4 |
|
|
|
87b0e4 |
@quotation
|
|
|
87b0e4 |
@strong{Tip} If you want to have your content localized inside CentOS
|
|
|
74c0c0 |
Artwork Repository be sure to use source files supported either by
|
|
|
74c0c0 |
@command{gettext} or @command{xml2po} programs.
|
|
|
87b0e4 |
@end quotation
|
|
|
87b0e4 |
|
|
|
8e4e50 |
@xref{Directories trunk Locales}, for more information.
|
|
|
87b0e4 |
|
|
|
2b93ca |
@subsubsection Automation
|
|
|
2b93ca |
|
|
|
513258 |
The automation work line exists to standardize content production in
|
|
|
513258 |
CentOS Artwork Repository. There is no need to type several tasks,
|
|
|
513258 |
time after time, if they can be programmed into just one script that
|
|
|
513258 |
groups them all and then execute the script instead of all individual
|
|
|
513258 |
tasks.
|
|
|
87b0e4 |
|
|
|
32f4f2 |
The automation work line takes place under @file{trunk/Scripts}
|
|
|
74c0c0 |
directory structure. Here is developed the @command{centos-art.sh}
|
|
|
87b0e4 |
script, a bash script specially designed to automate most frequent
|
|
|
513258 |
tasks (e.g., rendition, documentation and localization) inside the
|
|
|
513258 |
repository. Basically, the @command{centos-art.sh} script is divided
|
|
|
513258 |
in several functionalities independent one another that perform
|
|
|
513258 |
specific tasks and relaying on repository organization to work as
|
|
|
513258 |
expected.
|
|
|
74c0c0 |
|
|
|
74c0c0 |
@quotation
|
|
|
74c0c0 |
@strong{Tip} If you need to improve the way content is produced, look
|
|
|
32f4f2 |
inside automation scripts and make your improvement there for everyone
|
|
|
32f4f2 |
to benefit.
|
|
|
87b0e4 |
@end quotation
|
|
|
87b0e4 |
|
|
|
c2929c |
@xref{Directories trunk Scripts}, for more information on automation.
|
|
|
8e4e50 |
|
|
|
87b230 |
@subsection Connection between directories
|
|
|
87b230 |
|
|
|
513258 |
In order to produce content in CentOS Artwork Repository, it is
|
|
|
513258 |
required that all work lines be connected somehow. This is the way
|
|
|
513258 |
automation scripts can know where to retrive the information they need
|
|
|
513258 |
to work with (e.g., design model, translation messages, output
|
|
|
513258 |
location, etc.). We build this kind of connection using two path
|
|
|
513258 |
constructions named @emph{master paths} and @emph{auxiliar paths}.
|
|
|
32f4f2 |
|
|
|
513258 |
The master path points only to directories that contain the source
|
|
|
513258 |
files (e.g., SVG files) required to produce base content (e.g., PNG
|
|
|
513258 |
files) through automation scripts. Each master path inside the
|
|
|
513258 |
repository may have several auxiliar paths associated, but auxiliar
|
|
|
513258 |
paths can only have one master path associated.
|
|
|
32f4f2 |
|
|
|
32f4f2 |
The auxiliar paths can point either to directories or files. When an
|
|
|
32f4f2 |
auxiliar path points to a directory, that directory contains
|
|
|
513258 |
information that modifies somehow the content produced from master
|
|
|
513258 |
paths (e.g., through translation messages) or provides the output
|
|
|
513258 |
information required to know where to store the content produced from
|
|
|
513258 |
master path. When an auxiliar path points to a file, that file has no
|
|
|
513258 |
other purpose but document the master path it refers to.
|
|
|
513258 |
|
|
|
513258 |
The relation between auxiliar paths and master paths is realized using
|
|
|
513258 |
one unique master path and path information from repository second
|
|
|
513258 |
level directory structure. Generally, the master path is used like a
|
|
|
513258 |
path identifier and the second level directory structure taken from
|
|
|
513258 |
the repository organization is considered the common part where the
|
|
|
513258 |
path identifier is append in. For example, consider we want to know
|
|
|
513258 |
what the auxiliar path are for @file{trunk/Identity/Models/Brands}
|
|
|
513258 |
master path.
|
|
|
513258 |
|
|
|
513258 |
@float Figure, fig:Introduction/repo-convenctions:1
|
|
|
32f4f2 |
@verbatim
|
|
|
513258 |
-----+---------------+----------------------------+------+-----------
|
|
|
513258 |
Path | Suffix | Identifier |Prefix| Type
|
|
|
513258 |
-----+---------------+----------------------------+------+-----------
|
|
|
513258 |
A | |trunk/Identity/Models/Brands| | Directory
|
|
|
513258 |
-----+---------------+----------------------------+------+-----------
|
|
|
513258 |
B | trunk/Manual/|trunk/Identity/Models/Brands|.texi | File
|
|
|
513258 |
-----+---------------+----------------------------+------+-----------
|
|
|
513258 |
C | trunk/Locales/|trunk/Identity/Models/Brands| | Directory
|
|
|
513258 |
-----+---------------+----------------------------+------+-----------
|
|
|
513258 |
D | |trunk/Identity/Images/Brands| | Directory
|
|
|
513258 |
-----+---------------+----------------------------+------+-----------
|
|
|
513258 |
E | trunk/Locales/|trunk/Identity/Images/Brands|.texi | File
|
|
|
513258 |
-----+---------------+----------------------------+------+-----------
|
|
|
513258 |
|
|
|
513258 |
A = Master path.
|
|
|
513258 |
B = Auxiliar path to documentation entry.
|
|
|
513258 |
C = Auxiliar path to translation messages.
|
|
|
513258 |
D = Auxiliar path to final content output.
|
|
|
513258 |
E = Auxiliar path to documentation entry.
|
|
|
32f4f2 |
@end verbatim
|
|
|
513258 |
@caption{Base path construction.}
|
|
|
513258 |
@end float
|
|
|
513258 |
|
|
|
513258 |
The configuration described above is used by direct rendition and can
|
|
|
513258 |
be used as reference to organize other components that are equally
|
|
|
513258 |
produced through direct rendition in the repository. To create new
|
|
|
513258 |
components that make use of direct rendition inside the repository,
|
|
|
513258 |
change just the component name used above (e.g., @file{Brands}) to
|
|
|
513258 |
that one you want to add/create/use without changing the path
|
|
|
513258 |
structure around it (e.g., suffix and prefix information).
|
|
|
513258 |
|
|
|
513258 |
The file organization used by theme rendition is extends direct
|
|
|
513258 |
rendition by separating design models from background information. As
|
|
|
513258 |
a mnemotechnic resource helpful to better understand this
|
|
|
513258 |
configuration, you can consider it as two independent lists, one of
|
|
|
513258 |
design models and one of artistic motifs, which are arbitrary combined
|
|
|
513258 |
between themselves in order to render images in specific ways. The
|
|
|
513258 |
possibilities of this configuration are endless and let us describe
|
|
|
513258 |
visual manifestations with a very high level of details. For example,
|
|
|
513258 |
consider the organization used to produce Anaconda images; for CentOS
|
|
|
513258 |
distribution major release 5; using @file{Default} design models and
|
|
|
513258 |
version @file{3} of @file{Flame} artistic motif:
|
|
|
513258 |
|
|
|
513258 |
@float Figure, fig:Introduction/repo-convenctions:2
|
|
|
32f4f2 |
@verbatim
|
|
|
513258 |
-----+---------------+------------------------------------------------------+------+-----------
|
|
|
513258 |
Path | Suffix | Identifier |Prefix| Type
|
|
|
513258 |
-----+---------------+------------------------------------------------------+------+-----------
|
|
|
513258 |
A | |trunk/Identity/Themes/Models/Default/Distro/5/Anaconda| | Directory
|
|
|
513258 |
-----+---------------+------------------------------------------------------+------+-----------
|
|
|
513258 |
B | trunk/Manual/|trunk/Identity/Themes/Models/Default/Distro/5/Anaconda|.texi | File
|
|
|
513258 |
-----+---------------+------------------------------------------------------+------+-----------
|
|
|
513258 |
C | trunk/Locales/|trunk/Identity/Themes/Models/Default/Distro/5/Anaconda| | Directory
|
|
|
513258 |
-----+---------------+------------------------------------------------------+------+-----------
|
|
|
513258 |
D | |trunk/Identity/Themes/Motifs/Flame/3/Distro/5/Anaconda| | Directory
|
|
|
513258 |
-----+---------------+------------------------------------------------------+------+-----------
|
|
|
513258 |
E | trunk/Locales/|trunk/Identity/Themes/Motifs/Flame/3/Distro/5/Anaconda|.texi | File
|
|
|
513258 |
-----+---------------+------------------------------------------------------+------+-----------
|
|
|
513258 |
|
|
|
513258 |
A = Master path.
|
|
|
513258 |
B = Auxiliar path to documentation entry.
|
|
|
513258 |
C = Auxiliar path to translation messages.
|
|
|
513258 |
D = Auxiliar path to final content output.
|
|
|
513258 |
E = Auxiliar path to documentation entry.
|
|
|
32f4f2 |
@end verbatim
|
|
|
513258 |
@caption{Base path construction extended.}
|
|
|
513258 |
@end float
|
|
|
87b230 |
|
|
|
87b230 |
The Anaconda component is part of CentOS Distribution visual
|
|
|
87b230 |
manifestation. Inside CentOS Distribution visual manifestation there
|
|
|
513258 |
are other components like Syslinux, Grub, Rhgb, Gdm, Kdm, Gsplash and
|
|
|
513258 |
Ksplash that share a similar file organization to that described above
|
|
|
513258 |
for Anaconda component. The way each of these components is produced
|
|
|
513258 |
is described in their own documentation entry.
|
|
|
87b230 |
|
|
|
513258 |
When one master path is changed, it is required that all related
|
|
|
513258 |
auxiliar path to it, change 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
|
|
|
513258 |
the information required to automate tasks.
|
|
|
87b230 |
|
|
|
513258 |
The auxiliar paths should never be modified under any reason but to
|
|
|
513258 |
satisfy the relationship with the master path. 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 |
|
|
|
513258 |
The master and auxiliar paths are useful to keep repository organized
|
|
|
513258 |
but introduce some complications when we work with files that use
|
|
|
513258 |
master path information as reference to build structural information.
|
|
|
513258 |
In such cases, when a file is created, duplicated, deleted or removed,
|
|
|
513258 |
we use the master path information to update documentation structure,
|
|
|
513258 |
update inclusions, menus, nodes and cross reference information as
|
|
|
513258 |
well. To see the kind of complication we are talking about, consider
|
|
|
513258 |
what would happen if one master path is changed once it already has a
|
|
|
513258 |
documentation entry inside the documentation structure. What would
|
|
|
513258 |
happen with document structure definitions like file inclusion, menus,
|
|
|
513258 |
nodes and cross references?
|
|
|
513258 |
|
|
|
513258 |
Syncronizing path information is the action we use to keep all path
|
|
|
513258 |
information up to date in the repository. This action implies both
|
|
|
513258 |
@emph{file movement} and @emph{file content replacement} in this very
|
|
|
513258 |
specific order. File movement is the action we use to duplicate,
|
|
|
513258 |
delete and rename files and directories in the repository. File
|
|
|
513258 |
content replacement is the action we use to replace content, path
|
|
|
513258 |
information in this case, inside files in the repository.
|
|
|
513258 |
|
|
|
513258 |
The order followed to syncronize path information is relevant because
|
|
|
513258 |
the versioned nature of the files we are working with. We don't change
|
|
|
513258 |
path information first in files because that implies a repository
|
|
|
513258 |
change we need to commit first before duplicate, delete or rename the
|
|
|
513258 |
file where that change takes place. However, if we first perform the
|
|
|
513258 |
file movement, it is possible to commit both file movement and file
|
|
|
513258 |
content replacement changes as if they were just one change. In this
|
|
|
513258 |
case the file content replacement takes palce in the target location
|
|
|
513258 |
of file that have been duplicated or renamed, not the one use as
|
|
|
513258 |
source location. This configuration is specially useful when files are
|
|
|
513258 |
renamed (i.e., source file is copied to target location and then
|
|
|
513258 |
removed from repository).
|
|
|
87b0e4 |
|
|
|
87b0e4 |
@quotation
|
|
|
513258 |
@strong{Warning} There is no support for URLs actions inside
|
|
|
513258 |
@command{centos-art.sh} script. The @command{centos-art.sh} script is
|
|
|
513258 |
designed to work with local files inside the working copy only. If you
|
|
|
513258 |
need to perform URL actions directly, use Subversion commands instead.
|
|
|
87b0e4 |
@end quotation
|
|
|
87b0e4 |
|
|
|
74c0c0 |
@subsection Extending repository organization
|
|
|
87b0e4 |
|
|
|
513258 |
Occasionly, you may find that new components of The CentOS Project
|
|
|
513258 |
Corporate Identity need to be added to the repository in order to work
|
|
|
513258 |
them out. If that is the case, the first question we need to ask
|
|
|
513258 |
ourselves, before start to create directories blindly all over, is:
|
|
|
513258 |
@emph{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 |
|
|
|
513258 |
When extending respository structure it is very useful to bear in mind
|
|
|
513258 |
The CentOS Project Corporate Identity Structure (@pxref{Directories
|
|
|
513258 |
trunk Identity}) The CentOS Mission and The CentOS Release Schema. The
|
|
|
513258 |
rest is just matter of choosing appropriate names. It is also worth to
|
|
|
513258 |
know that each directory in the repository responds to a conceptual
|
|
|
513258 |
idea that justifies its existence.
|
|
|
513258 |
|
|
|
513258 |
To build a directory structure, you need to define the conceptual idea
|
|
|
513258 |
first and later create the directory. There are some locations inside
|
|
|
513258 |
the repository that already define some concepts you probably want to
|
|
|
513258 |
reuse. For example, @file{trunk/Identity/Themes/Motifs} to store theme
|
|
|
513258 |
artistic motifs, @file{trunk/Identity/Themes/Models} to store theme
|
|
|
513258 |
design models, @file{trunk/Manual} to store documentation files,
|
|
|
513258 |
@file{trunk/Locales} to store translation messages,
|
|
|
513258 |
@file{trunk/Scripts} to store automation scripts and so on.
|
|
|
87b230 |
|
|
|
87b230 |
To illustrate this desition process let's consider the
|
|
|
513258 |
@file{trunk/Identity/Themes/Motifs/TreeFlower/3} directory structure
|
|
|
513258 |
as example. This directory can be read as: the theme development line
|
|
|
513258 |
of version @file{3} of @file{TreeFlower} artistic motif. Additional,
|
|
|
513258 |
we can identify that artistic motifs are part of themes as well as
|
|
|
513258 |
themes are part of The CentOS Project Corporate Identity. These
|
|
|
513258 |
concepts are better described independently in each documentation
|
|
|
513258 |
entry related to the directory structure as it is respectively shown
|
|
|
513258 |
in the list of commands bellow.
|
|
|
87b0e4 |
|
|
|
87b0e4 |
@verbatim
|
|
|
74c0c0 |
centos-art help --read turnk
|
|
|
74c0c0 |
centos-art help --read turnk/Identity
|
|
|
74c0c0 |
centos-art help --read turnk/Identity/Themes
|
|
|
74c0c0 |
centos-art help --read turnk/Identity/Themes/Motifs
|
|
|
74c0c0 |
centos-art help --read turnk/Identity/Themes/Motifs/TreeFlower
|
|
|
513258 |
centos-art help --read turnk/Identity/Themes/Motifs/TreeFlower/3
|
|
|
87b0e4 |
@end verbatim
|
|
|
87b0e4 |
|
|
|
513258 |
The concepts behind other location can be found in the same way
|
|
|
513258 |
described above, just change the path information used above to the
|
|
|
87b230 |
one you are trying to know concepts for.
|