Blame Manuals/Filesystem/trunk/Identity/Models/Tpl/Promo/Web.texi

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