Blame Manuals/TCAR-UG/Texinfo/en_US/Directories/trunk/Identity/Webenv.texinfo

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