Repository History The CentOS Artwork Repository started at CentOS Developers mailing list (centos-devel@centos.org) around 2008, on a discussion about how to automate slide images used by Anaconda. In such discussion, Ralph Angenendt rose up his hand to ask —Do you have something to show?—. To answer the question, 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—. Karanbirn Sighn considered the idea intresting and provided the infrastructure necessary to support the effort. This way the CentOS Artwork SIG and the CentOS Artwork Repository were officially created. Once the CentOS Artwork Repository was available, Alain Reguera Delgado uploaded the bash script for rendering Anaconda slides; Ralph Angenendt documented it very well; and people started to download working copies of CentOS Artwork Repository to produce slide images in their own languages. 2009's Around 2009, the rendition script was at a very rustic state where only slide images could be produced, so it was redesigned to extend the image production to other areas, different from slide images. In this configuration, one SVG file was used as input to produce a translated instance of it which, in turn, was used to produce one translated PNG image as output. The SVG translated instance was created through SED replacement commands. The translated PNG image was created from the SVG translated instance using Inkscape command-line interface. The repository directory structure was prepared to receive the rendition script using design templates and translation files in the same location. There was one directory structure for each artwork that needed to be produced. In this configuration, if you would want to produce the same artwork with a different visual style or structure, it was needed to create a new directory structure for it because both the image structure and the image visual style were together in the design template. The rendition script was moved to a common place and linked from different directory structures. There was no need to have the same code in different directory structures if it could be in just one place and then be linked from different locations. Corporate identity concepts began to be considered. As referece, it was used the book "Corporate Identity" by Wally Olins (1989) and Wikipedia related links. This way, the rendition script main's goal becomes to: automate the production process of a monolithic corporate visual identity structure, based on the mission and the release schema of The CentOS Project. The repository directory structures began to be documented by mean of flat text files. Later, documentation in flat text files was moved onto LaTeX format and this way the "The CentOS Artwork Repository" documentation manual is initiated. 2010's Around 2010, the rendition script changed its name from render.sh to centos-art.sh and became a collection of functionalities where rendition was just one among others (e.g., documentation and localization). The centos-art.sh was initially conceived to automate frequent tasks inside the repository based in the idea of Unix toolbox: to create small and specialized tools that do one thing well. This way, functionalities inside centos-art.sh began to be identified and separated one another. For example, when images were rendered, there was no need to load functionalities related to documentation manual. This layout moved us onto common functionalities and specific functionalities inside centos-art.sh script. Common functionalities are loaded when centos-art.sh script is initiated and are available to specific functionalities. Suddenly, no need was found to keep all the links spreaded around the repository in order to execute the centos-art.sh script from different locations. The centos-art command-line interface was used instead. The centos-art command-line interface is a symbolic link stored inside the ~/bin directory that point to centos-art.sh script. As default configuration, inside The CentOS Distribution, the path to ~/bin is included in the search path for commands (see PATH environment variable). This way, using the centos-art command-line interface, it is possible for us to execute the centos-art.sh script from virtually anywhere inside the workstation, just as we frequently do with regular commands. Start using GNU getopt as default option parser inside the centos-art.sh script. The repository directory structure was updated to improve the implementation of corporate visual identity concepts. Specially in the area related to themes. Having both structure and style in the same file introduced content duplication when producing art works. Because of this reason, they were divided out to separate directory structures: the design models and artistic motifs directory structures. From this point on, the centos-art.sh is able to produce themes as result of arbitrary combinations between design models (structures) and artistic motifs (visual styles). In the documentation area, the documents in LaTeX format were migrated to Texinfo format. In this configuration, each directory structure in the repository has a documentation entry associated in a Texinfo structure which can be read, edited and administered (e.g., renamed, deleted and copied) interactively through centos-art.sh script. Additionally, the texi2html program was used to produced customized XHTML output in conjunction with CSS from The CentOS Webenv. 2011's Around 2011, the centos-art.sh script was redesigned to start translating XML-based files (e.g., SVG and Docbook files) through xml2po program and shell scripts (e.g., Bash scripts) through GNU gettext tools. This configuration provided a stronger localization interface for graphic designers, translators and programmers. The SED replacement files are no longer used to handle localization. The render, help and locale functionalities were consolidated as the most frequent tasks performed inside the repository. Additionally, the prepare and tuneup functionalities are also maintained as useful tasks. In the documentation area, support for producing localized transformations of DocBook XML DTD instances was added through the render and locale functionalities. The render functionality uses the xsltproc command-line XSLT parser in conjunction with the styles provided by the docbook-style-xsl package, both of them included inside The CentOS Distribution. The locale functionality creates the localized portable object (PO) the render functionality needs to produce localized transformations of DocBook XML DTD instances. To build DocBook documentation, it was considered the idea of using concepts behind repository directory structure as base, not the opposite (as I've been doing with Texinfo backend, so far). Producing documentation through DocBook XML as default documentation backend consolidates render and locale even more. In this configuration, once the DocBook files are written, you use locale functionality to localize the DocBook files in your prefered language and later, using render functionality, you produce the XTHML and PDF outputs as specified in a XSLT or DSL customization layer.