[[repository]] The CentOS Artwork Repository ============================ [[repository-mission]] == The Repository Mission The CentOS Artwork Repository exists to produce The CentOS Project monolithic visual identity (see <>). 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 <>), 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 <>) but no ``artistic motifs'' (see <>). 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//+ 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+ string, its content is intended for the ++ of The CentOS Distribution, only. When the +-el+ 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 <>. == 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-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 <>. This manual specifically is covered by the conditions found in <>. [[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: