Blame Manuals/Tcar-ug/Repository/History/2012.docbook

6acace
<sect1>
6acace
    <title>2012's</title>
6acace
6acace
    <para>
6acace
        &TCAR; development was eventually stopped at November 2011
cea04d
        until July 2012 when we needed to make the
6acace
        <command>centos-art.sh</command> script a bit more
6acace
        customizable than it presently was. For example, it was
1df8fc
        considered as a need that functionalities inside the
1df8fc
        <command>centos-art.sh</command> script must be not just
1df8fc
        conceived independent one another but reusable in different
cea04d
        contexts as well.
6acace
    </para>
6acace
    
6acace
    <para>
cea04d
        As consequence of this autonomy we wanted to have among
6acace
        functionalities, the procedure used to locale messages inside
cea04d
        the <command>centos-art.sh</command> script had to be modified
cea04d
        in order to accept such pluggable behavior into the script. We
cea04d
        cannot have a single <filename>centos-art.sh.po</filename>
cea04d
        file for all the functionalities because all functionalities
cea04d
        are not used in the same context. Instead, it is required that
cea04d
        each functionality has its own 
6acace
        class="extension">messages.po</filename> file in order to
6acace
        treat them individually. Otherwise, we would end up having
6acace
        translations for functionalities that we don't need or use in
6acace
        our current context.
6acace
    </para>
6acace
6acace
    <para>
6acace
        As an example, consider a situation where you are working on
6acace
        the corporate identity of &TC;; and you need to start a new
6acace
        corporate identity project for another organization. You want
6acace
        to keep the directory structure of &TCAR; and its automation
6acace
        tool, the <command>centos-art.sh</command> script. Your new
6acace
        project requires you to introduce new functionalities to
6acace
        <command>centos-art.sh</command> that don't fit the needs of
6acace
        &TC;; (e.g., you want to introduce a
6acace
        <function>report</function> functionality to mesure how much
6acace
        connect time do you consume through your PPP internface.).
6acace
    </para>
6acace
6acace
    <para>
6acace
        To solve this issue, you need to mix specific parts of
6acace
        different central repositories into one single working copy.
6acace
        This is the working copy you'll use to manage your new
768ba4
        project. In <xref linkend="repository-history-2012-1" />, we
768ba4
        see how the <function>render</function> functionality living
768ba4
        in &TCAR; has been integrated into the working copy of your
768ba4
        new project.
6acace
    </para>
6acace
        
6acace
    <example id="repository-history-2012-1">
6acace
    <title>Mixing automation functionalities.</title>
6acace
    <screenshot>
6acace
    <screeninfo>Mixing automation functionalities.</screeninfo>
6acace
    <mediaobject>
6acace
    <textobject>
6acace
<programlisting>
6acace
/home/al/Projects/Myapp/
6acace
`-- trunk/                  
6acace
    |-- Locales/           
6acace
    |   `-- Bash/         
6acace
    |       |-- Functions/
6acace
    |       |   |-- Render/  <--| from https://projects.centos.org/svn/artwork/
6acace
    |       |   |   `-- es_ES/
6acace
    |       |   |       |-- messages.po
6acace
    |       |   |       `-- messages.pot
6acace
    |       |   `-- Report/
6acace
    |       |       `-- es_ES/
6acace
    |       |           |-- messages.po
6acace
    |       |           `-- messages.pot
6acace
    |       `-- es_ES/
6acace
    |           |-- LC_MESSAGES/
768ba4
    |           |   `-- myapp.sh.mo
768ba4
    |           |-- myapp.sh.po
768ba4
    |           `-- myapp.sh.pot
6acace
    `-- Scripts/            
6acace
        `-- Bash/
6acace
            |-- Functions/
6acace
            |   |-- Render/  <--| from https://projects.centos.org/svn/artwork/
6acace
            |   `-- Report/
6acace
            `-- myapp.sh
6acace
</programlisting>
6acace
    </textobject>
6acace
    </mediaobject>
6acace
    </screenshot>
6acace
    </example>
6acace
6acace
    <para>
768ba4
        At this point your working copy contains files from two
768ba4
        different central repositories. One repository provides the
768ba4
        files of your new organization project and the other one
768ba4
        provides the files related to the <function>render</function>
768ba4
        functionality from &TCAR;.  In this environment, all updates
6acace
        commited to the <function>render</function> functionality at
6acace
        &TCAR; will be available to you too, the next time you update
768ba4
        your working copy. Likewise, if you change something in the
768ba4
        <function>render</function> functionality and commit your
768ba4
        changes, your changes will be available to poeple working in
768ba4
        &TCAR; the next time they update their working copies.
6acace
    </para>
6acace
6acace
    <para>
6acace
        Understanding the need of mixing different repositories into a
6acace
        single working copy is an important setp for reusing the
6acace
        functionalities that come with centos-art.sh script, but it is
6acace
        not enough if you want to customize the information produced
6acace
        by it.  By default, the centos-art.sh script uses information
6acace
        related to &TC;;. You probably need to change this if you are
6acace
        producing images to a different organization than &TC;;. For
6acace
        example, some of the information you might need to change
6acace
        would be the copyright holder, brands, domain names, mailing
6acace
        lists, and so forth.  To change this information you need to
6acace
        duplicate the file <filename>centos-art.sh</filename> and
6acace
        rename it to something else. Later, you need to edit the
6acace
        renamed version and change variables inside according your
6acace
        needs. In <xref linkend="repository-history-2012-1" />, we
319720
        used the name <filename>myapp.sh</filename> instead of
6acace
        <filename>centos-art.sh</filename> so the information we set
319720
        inside it could reflect the specific needs that motivated the
6acace
        creation of a new project without affecting those from &TC;;.
6acace
    </para>
6acace
6acace
    <para>
6acace
        Most of the information you need to change in your duplicated
6acace
        version of <filename>centos-art.sh</filename> file is
319720
        controlled by a set of read-only variables. You modify these
6acace
        variables here and they will be available all along the script
6acace
        execution time. For example, you can change the value of
6acace
        <varname>CLI_WRKCOPY</varname> variable inside your duplicated
6acace
        version of <filename>centos-art.sh</filename> to change the
319720
        absolute path you use to store your working copy.
6acace
    </para>
6acace
6acace
    <caution>
6acace
        <para>
6acace
            Setting the absolute path of your working copy to
6acace
            something different than
6acace
            <filename>/home/centos/Projects/artwork</filename> will
6acace
            provoke that some components inside &TCAR; be processed
6acace
            correctly while others don't.
6acace
        </para>
6acace
6acace
        <para>
6acace
            For example, SVG design models will be processed correctly
6acace
            but CSS files won't.  This is because before processing
6acace
            SVG files we expand translation markers inside them create
6acace
            a temporal file and then process the temporal file instead
6acace
            of the original SVG file. In the case of CSS files doing
6acace
            the same isn't appropriate.
6acace
        </para>
6acace
    </caution>
6acace
6acace
</sect1>