Blame Manuals/centos-art.sh/trunk/Identity/Models/Tpl/Promo/Web.texi

dbaab5
@subsection Goals
dbaab5
dbaab5
Organize scalable vector graphics (svg) to help describe the CentOS
dbaab5
web environment.
dbaab5
dbaab5
@subsection The CentOS web environment
dbaab5
dbaab5
Inside CentOS corporate identity, the CentOS web environment is
dbaab5
considered a promotion component. The CentOS web environment is formed
dbaab5
by a central web application ---to cover base needs (e.g., per-major
dbaab5
release information like release notes, lifetime, downloads,
dbaab5
documentation, support, security advisories, bugs, etc.)--- and many
dbaab5
different free web applications ---to cover specific needs (e.g.,
dbaab5
wiki, mailing lists, etc.)---. 
dbaab5
dbaab5
The CentOS web environment is addressed to solve the following issues:
dbaab5
dbaab5
@itemize
dbaab5
@item One unique name and one unique visual style to all web
dbaab5
applications used inside the web environment.
dbaab5
dbaab5
@item One-step navigation to web applications inside the environment.
dbaab5
dbaab5
@item High degree of customization to change the visual style of all
dbaab5
web applications with few changes (e.g, updating just two or three
dbaab5
images plus common style sheet [CSS] definitions).
dbaab5
@end itemize
dbaab5
dbaab5
The CentOS project is attached to a monolithic corporate visual
dbaab5
identity (@pxref{trunk Identity}), where all visual manifestations
dbaab5
have one unique name and one unique visual style. This way, the CentOS
dbaab5
web environment has one unique name (the CentOS brand) and one unique
dbaab5
visual style (the CentOS default theme) for all its visual
dbaab5
manifestations, the web applications in this case.
dbaab5
dbaab5
Since a maintainance point of view, achiving the one unique visual
dbaab5
style inside CentOS web environment is not a simple task. The CentOS
dbaab5
web environment is built upon many different web applications which
dbaab5
have different visual styles and different internal ways to customize
dbaab5
their own visual styles. For example: MoinMoin, the web application
dbaab5
used to support the CentOS wiki (@url{http://wiki.centos.org/}) is
dbaab5
highly customizable but Mailman (in its 2.x.x serie), the web
dbaab5
application used to support the CentOS mailing list, doesn't
dbaab5
support@footnote{The theme support of Mailman may be introduced in
dbaab5
mailman-3.x.x release.} a customization system that separates
dbaab5
presentation from logic, similar to that used by MoinMoin.
dbaab5
dbaab5
This visual style diversity complicates our goal of one unique visual
dbaab5
style for all web applications. So, if we want one unique visual style
dbaab5
for all web applications used, it is innevitable to modify the web
dbaab5
applications in order to implement the CentOS one unique visual style
dbaab5
customization in them. Direct modification of upstream applications is
dbaab5
not convenient because upstream applications come with their one
dbaab5
visual style and administrators take the risk of loosing all
dbaab5
customization changes the next time the application be updated (since
dbaab5
not all upstream web applications, used in CentOS web environment,
dbaab5
separate presentation from logic).
dbaab5
dbaab5
To solve the ``one unique visual style'' issue, installation and
dbaab5
actualization of web applications ---used inside CentOS web
dbaab5
environment--- need to be independent from upstream web applications
dbaab5
development line; in a way that CentOS web environment administrators
dbaab5
can install and update web applications freely without risk of loosing
dbaab5
the one unique visual style customization changes. 
dbaab5
dbaab5
At the surface of this issue we can see the need of one specific yum
dbaab5
repository to store CentOS web environment customized web applications.
dbaab5
dbaab5
@subsubsection Design model (without ads)
dbaab5
dbaab5
@subsubsection Design model (with ads)
dbaab5
dbaab5
@subsubsection HTML definitions
dbaab5
dbaab5
@subsubsection Controlling visual style
dbaab5
dbaab5
Inside CentOS web environment, the visual style is controlled by the
dbaab5
following compenents:
dbaab5
dbaab5
@table @strong
dbaab5
@item Webenv header background
dbaab5
@verbatim
dbaab5
trunk/Identity/Themes/Motifs/$THEME/Backgrounds/Img/1024x250.png
dbaab5
@end verbatim
dbaab5
dbaab5
@item CSS definitions
dbaab5
@verbatim
dbaab5
trunk/Identity/Themes/Models/Default/Promo/Web/CSS/stylesheet.css
dbaab5
@end verbatim
dbaab5
@end table
dbaab5
dbaab5
@subsubsection Producing visual style
dbaab5
dbaab5
The visual style of CentOS web environment is defined in the following
dbaab5
files:
dbaab5
dbaab5
@verbatim
dbaab5
trunk/Identity/Themes/Motifs/$THEME/Backgrounds/Xcf/1024x250.xcf
dbaab5
trunk/Identity/Themes/Motifs/$THEME/Backgrounds/Img/1024x250.png
dbaab5
trunk/Identity/Themes/Motifs/$THEME/Backgrounds/Img/1024x250-bg.png
dbaab5
trunk/Identity/Themes/Motifs/$THEME/Backgrounds/Tpl/1024x250.svg
dbaab5
@end verbatim
dbaab5
dbaab5
As graphic designer you use @file{1024x250.xcf} file to produce
dbaab5
@file{1024x250-bg.png} file. Later, inside @file{1024x250.svg} file,
dbaab5
you use the @file{1024x250-bg.png} file as background layer to draw
dbaab5
your vectorial design. When you consider you artwork ready, use the
dbaab5
@command{centos-art.sh} script, as described below, to produce the
dbaab5
visual style controller images of CentOS web environment.
dbaab5
dbaab5
@verbatim
dbaab5
centos-art render --entry=trunk/Identity/Themes/Motifs/$THEME/Backgrounds --filter='1024x250'
dbaab5
@end verbatim
dbaab5
dbaab5
Once you have rendered required image files, changing the visual style
dbaab5
of CentOS web environment is a matter of replacing old image files
dbaab5
with new ones, inside webenv repository file system structure. The
dbaab5
visual style changes will take effect the next time customization line
dbaab5
of CentOS web applications be packaged, uploded, and installed from
dbaab5
[webenv] or [webenv-test] repositories.
dbaab5
dbaab5
@subsubsection Navigation
dbaab5
dbaab5
Inside CentOS web environment, the one-step navegation between web
dbaab5
applications is addressed using the web environment navigation bar.
dbaab5
The web environment navigation bar contains links to main applications
dbaab5
and is always visible no matter where you are inside the web
dbaab5
environment.
dbaab5
dbaab5
@subsubsection Development and release cycle
dbaab5
dbaab5
The CentOS web environment development and relase cycle is described
dbaab5
below: 
dbaab5
dbaab5
@table @strong
dbaab5
dbaab5
@item Download
dbaab5
dbaab5
The first action is download the source code of web applications we
dbaab5
want to use inside CentOS web environment.
dbaab5
dbaab5
@quotation
dbaab5
@strong{Important} The source location from which web application are
dbaab5
downloaded is very important. Use SRPMs from CentOS @strong{[base]}
dbaab5
and @strong{[updates]} repositories as first choise, and third party
dbaab5
repositories (e.g. RPMForge, EPEL, etc.) as last resource.
dbaab5
@end quotation
dbaab5
dbaab5
@item Prepare 
dbaab5
dbaab5
Once web application source code has been downloaded, our duty is
dbaab5
organize its files inside @samp{webenv} version controlled repository.
dbaab5
dbaab5
When preparing the structure keep in mind that different web
dbaab5
applications have different visual styles, and also different ways to
dbaab5
implement it. A convenient way to organize the file system structure
dbaab5
would be create one development line for each web application we use
dbaab5
inside CentOS web environment. For example, consider the following
dbaab5
file system structure:
dbaab5
dbaab5
@verbatim
dbaab5
https://projects.centos.org/svn/webenv/trunk/
dbaab5
|-- WebApp1/
dbaab5
|   |-- Sources/
dbaab5
|   |   `-- webapp1-0.0.1/
dbaab5
|   |-- Rpms/
dbaab5
|   |   `-- webapp1-0.0.1.rpm
dbaab5
|   |-- Srpms/
dbaab5
|   |   `-- webapp1-0.0.1.srpm
dbaab5
|   `-- Specs/
dbaab5
|       `-- webapp1-0.0.1.spec
dbaab5
|-- WebApp2/
dbaab5
`-- WebAppN/
dbaab5
@end verbatim
dbaab5
dbaab5
@item Customize
dbaab5
dbaab5
Once web applications have been organized inside the version
dbaab5
controlled repository file system, use subversion to create the CentOS
dbaab5
customization development line of web applications source code.  For
dbaab5
example, using the above file system structure, you can create the
dbaab5
customization development line of @file{webapp1-0.0.1/} with the
dbaab5
following command:
dbaab5
dbaab5
@verbatim
dbaab5
svn cp trunk/WebApp1/Sources/webapp1-0.0.1 trunk/WebApp1/Sources/webapp1-0.0.1-webenv
dbaab5
@end verbatim
dbaab5
dbaab5
The command above creates the following structure:
dbaab5
dbaab5
@verbatim
dbaab5
https://projects.centos.org/svn/webenv/trunk/
dbaab5
|-- WebApp1/
dbaab5
|   |-- Sources/
dbaab5
|   |   |-- webapp1-0.0.1/
dbaab5
|   |   `-- webapp1-0.0.1-webenv/
dbaab5
|   |-- Rpms/
dbaab5
|   |   `-- webapp1-0.0.1.rpm
dbaab5
|   |-- Srpms/
dbaab5
|   |   `-- webapp1-0.0.1.srpm
dbaab5
|   `-- Specs/
dbaab5
|       `-- webapp1-0.0.1.spec
dbaab5
|-- WebApp2/
dbaab5
`-- WebAppN/
dbaab5
@end verbatim
dbaab5
dbaab5
In the above structure, the @file{webapp1-0.0.1-webenv/} directory is
dbaab5
the place where you customize the visual style of
dbaab5
@file{webapp1-0.0.1/} web application. 
dbaab5
dbaab5
@quotation
dbaab5
@strong{Tip} Use the @command{diff} command of Subversion between
dbaab5
CentOS customization and upstream development lines to know what you
dbaab5
are changing exactly.
dbaab5
@end quotation
dbaab5
dbaab5
@item Build packages
dbaab5
dbaab5
When web application has been customized, build the web application
dbaab5
RPM and SRPM using the source location with @samp{-webenv} prefix. 
dbaab5
dbaab5
@verbatim
dbaab5
https://projects.centos.org/svn/webenv/trunk/
dbaab5
|-- WebApp1/
dbaab5
|   |-- Sources/
dbaab5
|   |   |-- webapp1-0.0.1/
dbaab5
|   |   `-- webapp1-0.0.1-webenv/
dbaab5
|   |-- Rpms/
dbaab5
|   |   |-- webapp1-0.0.1.rpm
dbaab5
|   |   `-- webapp1-0.0.1-webenv.rpm
dbaab5
|   |-- Srpms/
dbaab5
|   |   |-- webapp1-0.0.1.srpm
dbaab5
|   |   `-- webapp1-0.0.1-webenv.srpm
dbaab5
|   `-- Specs/
dbaab5
|       |-- webapp1-0.0.1.spec
dbaab5
|       `-- webapp1-0.0.1-webenv.spec
dbaab5
|-- WebApp2/
dbaab5
`-- WebAppN/
dbaab5
@end verbatim
dbaab5
dbaab5
@item Release for testing
dbaab5
dbaab5
When the customized web application has been packaged, make packages
dbaab5
available for testing and quality assurance. This can be achives using
dbaab5
a [webenv-test] yum repository. 
dbaab5
dbaab5
@quotation
dbaab5
@strong{Note} The [webenv-test] repository is not shipped inside
dbaab5
CentOS distribution default yum configuraiton. In order to use
dbaab5
[webenv-test] repository you need to configure it first.
dbaab5
@end quotation
dbaab5
dbaab5
If some problem is found to install/update/use the customized version
dbaab5
of web application, the problem is notified somewhere (a bugtracker
dbaab5
maybe) and the customization face is repated in order to fix the
dbaab5
problem. To release the new package add a number after @samp{-webenv}
dbaab5
prefix. For example, if some problem is found in
dbaab5
@file{webapp1-0.0.1-webenv.rpm}, when it be fixed the new package will
dbaab5
be named @file{webapp1-0.0.1-webenv-1.rpm}. If a problem is found in
dbaab5
@file{webapp1-0.0.1-webenv-1.rpm}, when it be fixed the new package
dbaab5
will be named @file{webapp1-0.0.1-webenv-2.rpm}, and so on.
dbaab5
dbaab5
The ``customization --- release for testing'' process is repeated
dbaab5
until CentOS quality assurance team considers the package is ready for
dbaab5
production.
dbaab5
dbaab5
@item Release for production
dbaab5
dbaab5
When customized web application packages are considered ready for
dbaab5
production they are moved from [webenv-test] to [webenv] repository.
dbaab5
This action is commited by CentOS quality assurance team.
dbaab5
dbaab5
@quotation
dbaab5
@strong{Note} The [webenv] repository is not shipped inside CentOS
dbaab5
distribution default yum configuraiton. In order to use [webenv]
dbaab5
repository you need to configure it first.
dbaab5
@end quotation
dbaab5
@end table
dbaab5
dbaab5
@subsubsection The [webenv-test] repository
dbaab5
dbaab5
@verbatim
dbaab5
/etc/yum.repos.d/CentOS-Webenv-test.repo
dbaab5
@end verbatim
dbaab5
dbaab5
@verbatim
dbaab5
[webenv-test]
dbaab5
name=CentOS-$releasever - Webenv-test
dbaab5
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=webenv-test
dbaab5
#baseurl=http://mirror.centos.org/centos/$releasever/webenv-test/$basearch/
dbaab5
gpgcheck=1
dbaab5
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
dbaab5
enabled=1
dbaab5
priority=10
dbaab5
@end verbatim
dbaab5
dbaab5
@subsubsection The [webenv] repository
dbaab5
dbaab5
@verbatim
dbaab5
/etc/yum.repos.d/CentOS-Webenv.repo
dbaab5
@end verbatim
dbaab5
dbaab5
@verbatim
dbaab5
[webenv]
dbaab5
name=CentOS-$releasever - Webenv
dbaab5
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=webenv
dbaab5
#baseurl=http://mirror.centos.org/centos/$releasever/webenv/$basearch/
dbaab5
gpgcheck=1
dbaab5
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
dbaab5
enabled=1
dbaab5
priority=10
dbaab5
@end verbatim
dbaab5
dbaab5
@subsubsection Priority configuration
dbaab5
dbaab5
Both [webenv] and [webenv-test] repositories update packages inside
dbaab5
CentOS [base] and CentOS [updates] repositories.
dbaab5
dbaab5
@subsection Usage
dbaab5
dbaab5
@itemize
dbaab5
@item ...
dbaab5
@end itemize
dbaab5
dbaab5
@subsection See also
dbaab5
dbaab5
@menu
dbaab5
* trunk Identity Models Img Promo Web::
dbaab5
@end menu