[[repository]]
The CentOS Artwork Repository
============================

[[repository-mission]]
== The Repository Mission

The CentOS Artwork Repository exists to produce The CentOS Project
monolithic visual identity (see <<identity>>).

The CentOS Artwork Repository is a community effort developed by The
CentOS Artwork Special Interest Group (SIG) and supported by The
CentOS Community.

[[repository-infrastructure]]
== The Repository Infrastructure

The CentOS Artwork Repository is supported by Git version tracker and
conceived to provide a centralized work flow. In this configuration
there is one ``central repository'' and many ``working copies'' of
that central repository.  The working copies are independent one
another, can be distributed all around the world and provide a local
place for designers, documenters, translators and programmers to
perform their work in a decentralized way.  The central repository, on
the other hand, provides a common place for all independent working
copies to exchange data in the community. The exchange of data between
the working copies and the central repository takes place over SSH and
controlled by means of SSH public keys.

== The Repository Branches

The CentOS Artwork Repository uses branches to organize individual
work lines.  There is one long-running branch for each major component
affecting The CentOS Project visual identity and one or more topic
branches to handle issues.  Once issues have been fixed, topic
branches are merged into long-running branches and removed from the
repository.

The first time you clone a copy of CentOS Artwork Repository into your
workstation (see <<repository-install-git>>), it presents the last
snapshot of *tcar* branch.  To see the entire list of branches
available in the repository, you need to use the *git-branch(1)*
command. Then, to change from *tcar* branch to another branch you need
to use the *git-checkout(1)* command.

The CentOS Artwork Repository provides long-running branches for
graphic design and automation scripts work lines, mainly. Other
long-running branches in the repository include palettes, brushes,
patterns, fonts and customization of web applications. Inside these
branches, you might find directories holding documentation and locale
information for the component the branch refers to.

=== Graphic Design

Branches controlling graphic design contain ``design models'' (see
<<centos-themes-models>>) but no ``artistic motifs'' (see
<<centos-themes-motifs>>). Artistic motifs are organized in the
https://centos.org.cu/wiki/ArtWork[ArtWork wiki]. This separation of
contents is required in order to allow arbitrary combinations among
design models and artistic motifs.  Using a wiki application for this
separation purpose is very convenient for graphic designers whose need
to have quick visual access to new sketches, the related source files
and a log of changes.

When graphic designers need to produce final images, they download
artistic motif images from the wiki, and store them in the
+Final/Backgrounds+ directory. Then, checkout to the branch holding
the design models they want to produce final images for. At this
point, graphic designers use automation scripts to initiate the
rendition process.  As result of rendition process, final images are
produced and stored inside the +Final/<branch-name>/+ directory.

==== Design Models

Branches containing design models begin their names with the
+tcar-models-+ string. Each of these branches contain design models
required to build specific components of one visual manifestation.
Design models in these branches are produced with Inkscape and saved
as compressed Scalable Vector Graphics (svgz) files.  Images in PNG
(or other) format produced from these design models are never stored
in this kind of branches.

Branches containing design models are created for a specific release
of The CentOS Distribution or no specific release The CentOS
Distribution at all.  When a branch name includes the
+-el<MAJOR_RELEASE>+ string, its content is intended for the
+<MAJOR_RELEASE>+ of The CentOS Distribution, only. When the
+-el<MAJOR_RELEASE>+ string isn't present in the branch name, the
content of the branch is intended for all major release of The CentOS
Distribution or not major release at all.

=== Localization

Branches requiring localization for their source files include a
directory named +Locales+ in the branch's root directory. This
directory is controlled by *locale* command of *centos-art.sh* script
and used by *render* command at time of producing final content.

The +Locales+ directory contains PO files organized in locale-specific
directories. Translators use PO files to localize strings retrieved
from source files.  All PO files inside the +Locales+ directory are
tracked inside the repository.

=== Documentation

Branches requiring documentation for their source files include a
directory named +Documentation+ in the branch's root directory. This
directory contains documentation source files written in Asciidoc
format and one or more configuration files describing how
documentation is rendered.  Optionally, along with documentation
source files, you might also find design models in SVGZ format to
produce illustrations used inside documentation.

The +Documentation+ directory is read by *render* command of
*centos-art.sh* script to produce documentation final files in
different formats (e.g., man pages and html). All files inside
+Documentation+ are tracked inside the repository, but final files
produced from them in the +Documentation/Final+ directory are not.

=== Packages

==== tar.bz2

Branches holding source files used to produce +tar.bz2+ packages
include one +makefile+ file describing how the +tar.bz2+ file is built
(i.e., what are the files and directories the package is made of).

==== rpm

Branches holding source files used to produce +rpm+ and +srpm+
packages include one +spec+ file describing how +rpm+ and +srpm+ are
built and installed (i.e., what +tar.bz2+ file is used, and the way
files inside it are installed in the system).

In this kind of branches, both +makefile+ and +spec+ files are tracked
in the repository, but files produced from them aren't.

=== Automation

Branches holding source files related to automation scripts begin with
the *tcar-scripts* string in the branch name. Automations scripts are
mainly written in Bash and provide the production standards that
graphic designers, documenters, translators and packagers need in
order to make their work consistent and reusable through branches.

=== Gathering Information Through Branches

Branches play a significant role at time of producing and gathering
final contents.

In normal operation, you work in branch and render content from it
using automation scripts which, in turn, save the final result in a
directory named +Final+ in the same directory where the configuration
file used to initiate the rendition process is found.  The +Final+
directory is never tracked by Git (e.g., you set it in your
+./git/info/exclude+ file) so it is able to ``transcend'' checkouts
from one branch to another.

Then, using this feature, you checkout a new branch and repeat the
rendition process until you've gathered all the information you need
to build a tar.bz2 package.  At this point, you can create a tar.bz2
package and remove the +Final+ directory to cleanup the workspace.  As
part of this process, the tar.bz2 package created could be moved
automatically to a public place local in your workstation or remote
somewhere on the Internet.

[[repo-convs-filename-rfiles]]
== The Repository File Names

Inside The CentOS Artwork Repository, file names are always written in
lowercase.  Digits (e.g., 0, 1, 2), hyphen (-), dot (.) and low line
(_) characters are also accepted. In case you use hyphen and dot
characters, don't use them as first character in the file name.

=== File Names Written Correctly

* +01-welcome.png+
* +splash.png+
* +anaconda_header.png+

=== File Names Written Incorrectly

* +01-Welcome.png+
* +-welcome.png+
* +Splash.png+
* +AnacondaHeader.png+

== The Repository Link Names

Inside The CentOS Artwork Repository, links are always symbolic and
follow the same name convention used by regular files, as described in
<<repo-convs-filename-rfiles>>.

== The Repository Directory Names

Inside The CentOS Artwork Repository, directory names are all written
capitalized and sometimes in cammel case. Digits (e.g., 0, 1, 2),
hyphen (-), dot (.) and low line (_) characters are also accepted. In
case you use hyphen and dot characters, don't use them as first
character in the directory name.

=== Directory Names Written Correctly

* +Identity+
* +Themes+
* +Motifs+
* +TreeFlower+
* +0.0.1+
* +0.0.1-35+

=== Directory Names Written Incorrectly

* +identity+
* +theMes+
* +MOTIFS+
* +treeFlower+
* +.0.1+
* +.0.1-35+

[[repository-install]]
== The Repository Installation

[[repository-install-git]]
=== Git

The CentOS Artwork Repository is available online for anyone to make
local clones of it using a Git client but pushing changes to The
CentOS Artwork Repository is restricted to members of The CentOS
Artwork SIG, only.  In case someone without permission to push changes
up to central repository finds problems and wants to propose one or
more solutions, data exchange is always possible through patches via
e-mail with people able to push changes up to central repository.

* ssh://gitolite@centos.org.cu:centos-artwork.git

[[repository-install-yum]]
=== Yum

The CentOS Artwork Repository is also available for installing using
RPM packages from *[CentOS-Artwork]* Yum repository. The packages in
this repository provide automation scripts, design models, artistic
motifs and customizations that you can find useful for your own
projects.  When you install packages from this repository, you are
installing a framework to produce both images and documentation for
different locales, consistently.  Nonetheless, the information you
produce this way is not recorded in The CentOS Artwork Repository.

== The Repository Configuration

== The Repository Authoring

The content produced inside The CentOS Artwork Repository is copyright
of The CentOS Artwork SIG.  This is something you, as author, should
be aware of because you are contributing your creation's rights to
someone else; The CentOS Artwork SIG in this case.  This way, your
work is distributed using ``The CentOS Artwork SIG'' as copyright
holder, not your name (even you remain as natural author of the work).
Because The CentOS Artwork SIG is the copyright holder, is the license
chosen by The CentOS Artwork SIG the one applied to your work, so it
is the one you need to agree with before making a creation inside The
CentOS Artwork Repository.

The CentOS Artwork SIG is an organizational unit of The CentOS
Project. The CentOS Artwork SIG is formed by one or more core
developers and devoted community members whom have contributed a
significant amount of work to The CentOS Project visual identity. Core
developers provide a bond between The CentOS Artwork SIG and The
CentOS Project.  Community members, in coordination with core
developers, lead most of the work inside The CentOS Artwork
Repository.

The redistribution conditions of The CentOS Artwork Repository are
described in <<repository-copying>>.

[[repository-publishing]]
== The Repository Publishing

When you perform changes inside your working copy, those changes are
local to your working copy, only. In order for you to publish your
changes up to the central repository, you need to push them up across
the Internet, using git-push(1) command.  Initially, no one is able to
write changes up to the central repository except members of The
CentOS Artwork SIG. To be member of The CentOS Artwork SIG, it is
necessary to prove the sustained interest on it by contributing work,
fixing issues, making any clever suggestion (e.g., a patch) or just
explaining in the community what you intend to contribute.  These
restrictions are necessary in order to protect The CentOS Artwork
Repository from spammers.

Once write accesses have being granted to someone, they remain valid
and there is no need for that person to request them again the next
time he or she decides to push new changes up to the central
repository. Persons with write access are considered member of The
CentOS Artwork SIG and included in the AUTHORS file distributed with
The CentOS Artwork Repository.

When publishing changes up to central repository, it is nice to show
respect on the work already made by others and share ideas with
authors before changing relevant parts of their work, specially in
situations when the access required to realize the changes has been
granted to you already. The feeling produced by this behaviour is so
self-motivating that you might cross the line at some point but that
is fine as long as it has emerged from the good will and
inexperienced.  In these situations, education bursts naturally from
more experienced members in the community to correct the behaviour and
keep the order.

[[repository-copying]]
== The Repository Copying

The CentOS Artwork Repository is not in the public domain; it is
copyrighted and there are restrictions on their distribution, but
these restrictions are designed to permit everything that a good
cooperating citizen would want to do.  What is not allowed is to try
to prevent others from further sharing any version of this work that
they might get from you.

Specifically, we want to make sure that you have the right to give
away copies of The CentOS Artwork Repository, that you receive source
code or else can get it if you want it, that you can change this work
or use pieces of it in new free works, and that you know you can do
these things.

To make sure that everyone has such rights, we have to forbid you to
deprive anyone else of these rights.  For example, if you distribute
copies of the The CentOS Artwork Repository, you must give the
recipients all the rights that you have.  You must make sure that
they, too, receive or can get the source code.  And you must tell them
their rights.

Also, for our own protection, we must make certain that everyone finds
out that there is no warranty for the The CentOS Artwork Repository.
If this work is modified by someone else and passed on, we want their
recipients to know that what they have is not what we distributed, so
that any problems introduced by others will not reflect on our
reputation.

The precise conditions of the license for the The CentOS Artwork
Repository are found in <<licenses-gpl>>. This manual specifically is
covered by the conditions found in <<licenses-gfdl>>.

[[repository-history]]
== The Repository History

The CentOS Artwork Repository started at
mailto:centos-devel@centos.org[The CentOS Developers Mailing List]
around 2008, on a discussion about how to automate slide images used
by Anaconda (The CentOS Distribution installer).  In such discussion,
http://wiki.centos.org/RalphAngenendt[Ralph Angenendt] rose up his
hand to ask --Do you have something to show?.

To answer the question,
http://wiki.centos.org/AlainRegueraDelgado[Alain Reguera Delgado]
suggested a bash script which combined SVG and SED files in order to
produce PNG images in different languages --in conjunction with
the proposition of creating a Subversion repository where translations
and image production could be distributed inside The CentOS Community.

http://wiki.centos.org/KaranbirSingh[Karanbir Singh] considered the
idea interesting and provided the infrastructure necessary to support
the effort.  This way, https://projects.centos.org/trac/artwork[The
CentOS Artwork SIG] and https://projects.centos.org/svn/artwork[The
CentOS Artwork Repository] were officially created and made world wide
available. In this configuration, users were able to register
themselves and administrators were able to assign access rights to
registered users inside The CentOS Artwork Repository, both using a
Trac web interface.

Once The CentOS Artwork Repository was available, Alain Reguera
Delgado uploaded the bash script used to produce the Anaconda
slides;footnote:[See
https://projects.centos.org/trac/artwork/browser/Main/render.sh?rev=15]
Ralph Angenendt documented it very well;footnote:[See
https://projects.centos.org/trac/artwork/wiki/HowToTranslateSlides]
and people started to download working copies of The CentOS Artwork
Repository to produce slide images in their own
languages.footnote:[See
http://www.google.com/search?q=anaconda+slides+site%3Alists.centos.org]

From this time on The CentOS Artwork Repository has been evolving into
an automated production environment where The CentOS Community can
conceive The CentOS Project corporate visual identity.  The exact
changes committed to The CentOS Artwork Repository through history can
be found in the repository logs. footnote:[From 2008 to 2010 at
https://projects.centos.org/trac/artwork/timeline, and from 2011 up to
nowadays at
https://centos.org.cu/git/?p=centos-artwork.git;a=summary)]

// vim: set syntax=asciidoc:
