Blame Manuals/en/Texinfo/Repository/trunk/Identity/Models/Tpl/Promo/Web.texi

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