Blame Identity/TODO

4c79b5
------------------------------------------------------------
4c79b5
* Rename trunk/Identity/Models/ to trunk/Identity/Manuals/
4c79b5
4c79b5
* Reduce attention on the idea of creating a big book holding all
4c79b5
  about CentOS corporate visual identity. The trunk/Identity/Manuals/
4c79b5
  structure starts replacing the trunk/Manuals/ structure.  All ideas
4c79b5
  inside trunk/Manuals need to be moved to trunk/Identity/Manuals
4c79b5
  common visual style.
4c79b5
4c79b5
* As both manuals and design models get growing, I've found that
4c79b5
  using a set of scalable vector graphic as design templates/models
4c79b5
  --to define how illustrations look like--, and a set of translation
4c79b5
  files --to define the illustrations language-- to describe small
4c79b5
  ideas is more flexible (since an innovative graphic design point of
4c79b5
  view) than creating a big book describing all the same small ideas
4c79b5
  by means of texts and illustrations using LaTeX format.
4c79b5
4c79b5
  Using scalable vector graphics design templates/models and
4c79b5
  translation files to produce multi-language illustrations is
4c79b5
  straightforward.
4c79b5
4c79b5
    Note: translation files are applied to design templates using
4c79b5
    rendering scripts.
4c79b5
 
4c79b5
* Inside trunk/Identity/Manuals/, the format used to create each
4c79b5
  specific flayer is A4-Landscape (297x210mm).
4c79b5
4c79b5
------------------------------------------------------------
4c79b5
4c79b5
* Inside Themes structure similar design templates are repeated
4c79b5
  constantly.  In order to optimeze Themes' structure, split Themes'
4c79b5
  structure in the following two structures:
4c79b5
  
4c79b5
    1. trunk/Identity/Themes/Models: This structure contains design
4c79b5
       templates (SVG) only. 
4c79b5
       
4c79b5
       Models structure is organized by Names (e.g., Default,
4c79b5
       Alternative, etc.).  Convenctional models define art work
4c79b5
       sizes, formats and position of elements in the screen.
4c79b5
       
4c79b5
       For example, inside models structure is where you set that
4c79b5
       Anaconda Header art work is 800x88 pixels, the anaconda splash
4c79b5
       is about 510x300 pixels, the GDM non-graphical definitions
4c79b5
       (i.e., .xml, and .desktop files.), and so on.
4c79b5
4c79b5
    2. trunk/Identity/Themes/Motifs: This structure contains artistic
4c79b5
       motifs images (e.g.: .xcf, .png, .jpg, .xpm, .ppm, etc.) and
4c79b5
       rendering scripts only[1].
4c79b5
4c79b5
            [1]: Rendering script files are currently inside each
4c79b5
            renderable art work structure. In the near future,
4c79b5
            rendering script files will be replaced by a command line
4c79b5
            utility.
4c79b5
4c79b5
       As previously set, Motifs strcutre is organized by Names (e.g.,
4c79b5
       Modern, TreeFlower, etc.). Each name represents one artistic
4c79b5
       motif. Convenctional artistic motifs define visual style for
4c79b5
       CentOS distribution (Distro), promotion (Promo), and web sites
4c79b5
       (Web). Conventional artisitc motifs structure, also, covers
4c79b5
       specific artistic motif's design, copyright note, license
4c79b5
       (CC-SA), author(s), color, and palettes[2].
4c79b5
4c79b5
            [2]: Palette files are required to produce color-limited
4c79b5
            images, automatically. Two examples of color-limited
4c79b5
            images are anaconda prompt (indexed to 16 colors), and
4c79b5
            GRUB splash (indexed to 14 colors).
4c79b5
4c79b5
       A relevant directory inside each artistic motif structure is
4c79b5
       that used for Backgrounds (Distro/Backgrounds/). The background
4c79b5
       directory stores images for many different sizes and screen
4c79b5
       resolutions. Images inside background directory are passed
4c79b5
       through Models design templates to produce the theme's final
4c79b5
       images.
4c79b5
4c79b5
------------------------------------------------------------
4c79b5
* /branches/Identity/Themes/$THEME/$BRANCH_ID/ 
4c79b5
4c79b5
  This structure is used to store alternative theme designs that share
4c79b5
  one common design concept. The common design concept is defined at
4c79b5
  /trunk/Identity/Themes/$THEME/.
4c79b5
  
4c79b5
    - `$THEME': is a case-sensitive name that match one name under
4c79b5
      /trunk/Identity/Themes/ (e.g., Modern, TreeFlower, etc.).
4c79b5
  
4c79b5
    - `$BRANCH_ID': represents a unique serial number used to identify
4c79b5
      the branch (e.g., 1.0, 2.0, 3.0, etc.).
4c79b5
4c79b5
  For example, if you have a different design proposition (e.g., 1.0,
4c79b5
  2.0, and 3.0) based on TreeFlower's concept, then the directory
4c79b5
  structure will look similar to the following:
4c79b5
4c79b5
    /branches/Identity/Themes/TreeFlower/1.0/
4c79b5
    /branches/Identity/Themes/TreeFlower/2.0/
4c79b5
    /branches/Identity/Themes/TreeFlower/3.0/
4c79b5
4c79b5
  You can repeat the previous naming process in cascade as long as
4c79b5
  different graphic designs arise. For example, if you find that a
4c79b5
  completly different design can be derived from 1.0 then you can
4c79b5
  create one branch, named 1.1 to store the idea:
4c79b5
4c79b5
    /branches/Identity/Themes/TreeFlower/1.1/
4c79b5
4c79b5
  The /branches/Identity/Themes/$THEME/$BRANCH_ID/ directory structure
4c79b5
  is the same structure used under trunk. So, all rendering and
4c79b5
  automation scripts available inside trunk structure are available in
4c79b5
  here too.
4c79b5
4c79b5
  The directory structure described in this section is for completly
4c79b5
  different designs, compared with its trunk version. If you only want
4c79b5
  to experiment new ideas around the same turnk design then do not use
4c79b5
  this structure. Instead, go to the Motif's directory in the trunk's
4c79b5
  structure and create a new motif file to work your idea. For
4c79b5
  example:
4c79b5
4c79b5
    /trunk/Identity/Themes/TreeFlower/Motif/motif.svg
4c79b5
    /trunk/Identity/Themes/TreeFlower/Motif/motif-1.svg
4c79b5
    /trunk/Identity/Themes/TreeFlower/Motif/motif-2.svg
4c79b5
    /trunk/Identity/Themes/TreeFlower/Motif/motif-n.svg
4c79b5
4c79b5
  In the above path, the motif.svg file is the theme's default design
4c79b5
  used on distribution, websites, and promotion art works.  The other
4c79b5
  files (i.e., motif-1.svg, motif-2.svg, motif-n.svg) are alternative
4c79b5
  ideas of the same design.
4c79b5
4c79b5
------------------------------------------------------------
4c79b5
4c79b5
* Create/Design a command line utility to achive the same task of
4c79b5
  invocation rendering script (render.sh) files.
4c79b5
4c79b5
  - When invoking the command line utility, users can provide a path,
4c79b5
    absolute or relative, to an specific framework. After verifying
4c79b5
    the provided framework as valid path, image rendering starts for
4c79b5
    that specific framework.
4c79b5
4c79b5
    If no path is provided to the command line utility, print the
4c79b5
    usage message and quit.
4c79b5
4c79b5
    Brain Storm 1: 
4c79b5
    -------------
4c79b5
    
4c79b5
    If such a command line is created name flexibility inside the
4c79b5
    repository may be limited. 
4c79b5
    
4c79b5
    Presently, there is one render.sh script inside each renderable
4c79b5
    art work component which points to an entry in the scripts
4c79b5
    configuration structure. If renderable art work components change
4c79b5
    their path, the rendering action is not affected because both
4c79b5
    configuration scripts and translation structures remains immutable
4c79b5
    out of renderable strucutres.
4c79b5
4c79b5
    Thinking how to design an efficient command line interface that
4c79b5
    help us automate most tasks inside CentOS Artwork Repository, I
4c79b5
    propose to realy on a strong name convenction to bond renderable
4c79b5
    structures, scripts, and translations files altogether.
4c79b5
4c79b5
    Presently, invokation rendering scripts call one configuration
4c79b5
    file. The configuration file defines which task(s) to do and what
4c79b5
    function(s) to call for that art work, that one the rendering
4c79b5
    script was invoked from. For brevity, a function initialization
4c79b5
    script is called to make all functions available inside the
4c79b5
    configuration script and functions loaded inside it.
4c79b5
4c79b5
    If the invokation script is removed, we have to find some way to
4c79b5
    make that bond between renderable art work component and
4c79b5
    configuration script. The first idea coming to my mind is using
4c79b5
    some kind of name convenction on paths so we could relay on it.
4c79b5
    For exmample, if you are inside the following directory, or
4c79b5
    provide it to the command line utility:
4c79b5
4c79b5
        Themes/Motifs/Modern/Info
4c79b5
4c79b5
    The command line utility should verify if that directory exists
4c79b5
    firstly, and later if it has a configuration script associated. To
4c79b5
    determine which configuration script is associated with this path
4c79b5
    we need to build a common path that can be compared no matter
4c79b5
    where the command line utility was invoked from. For example,
4c79b5
    taken the above path as reference, we could build such a common
4c79b5
    path using its absolute path:
4c79b5
4c79b5
        /home/centos/artwork/trunk/Identity/Themes/Motifs/Modern/Info
4c79b5
4c79b5
    And later, manipulate the string to build its assiciated
4c79b5
    configuration script. The manipulation, relays on the following
4c79b5
    name convenction: 
4c79b5
4c79b5
        - Insert the Scripts/Bash/Config/ string before Identity/
4c79b5
4c79b5
        - Remove the theme' name (e.g., Modern/) from the string.
4c79b5
4c79b5
        Note: Pay attention to trailing slashes. They are part of
4c79b5
        string manipulation.
4c79b5
4c79b5
    This convenction produces the following path:
4c79b5
4c79b5
        /home/centos/artwork/trunk/Scripts/Bash/Config/Identity/Themes/Motifs/Info
4c79b5
    
4c79b5
    If the above configuration directory exists, and it has the
4c79b5
    render.conf.sh script inside, then it can be assumed as a valid
4c79b5
    configuration entry in the configuration structure. Otherwise
4c79b5
    there is no configuartion file for the specified framework, and by
4c79b5
    extension no actions related to it. 
4c79b5
4c79b5
        Note: Actions are based one functions loaded in the
4c79b5
        render.conf.sh script. If the script render.conf.sh is empty,
4c79b5
        or malformed you will have a result of the same nature.
4c79b5
4c79b5
    This schema relays completly on names convenctions. So in order to
4c79b5
    the command line utility to work, the repository should have a
4c79b5
    strong name convenction and changes to it need to be carefuly
4c79b5
    planned before commit them.
4c79b5
4c79b5
  - The command line utility should provide the following:
4c79b5
4c79b5
    - List of valid frameworks: This feature lets users to know
4c79b5
      available frameworks where the command line utility can be used
4c79b5
      for image rendering inside CentOS Artwork Repository.
4c79b5
4c79b5
    - Usage message: This functionality lets the user to know how to
4c79b5
      use the command line utility. It resumes available options and
4c79b5
      features.
4c79b5
4c79b5
    - Online framework documentation: This feature lets users request
4c79b5
      information about specific art works and available actions
4c79b5
      inside CentOS Artwork Repository, anywhere, anytime.
4c79b5
4c79b5
    - ...
4c79b5
4c79b5
* Remove invocation rendering script (render.sh) files.
4c79b5