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

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