
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2016-10-11
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Contributing to the Flex Website | Maven</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/spacelab/bootstrap.min.css" rel="stylesheet" />
		<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/bootswatch.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />


		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->



	</head>

	<body class="page-dev-webiste project-flex-site" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="index.html" title="Home">Home</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="about-whatis.html" title="What is Flex?">What is Flex?</a></li>
									<li ><a href="about-features.html" title="Features">Features</a></li>
									<li ><a href=".html" title="Tour de Flex">Tour de Flex</a></li>
									<li ><a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a></li>
									<li ><a href="about-people.html" title="The Team">The Team</a></li>
									<li ><a href="about-history.html" title="Project History">Project History</a></li>
									<li ><a href="about-assets.html" title="Logo and Assets">Logo and Assets</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="community-getinvolved.html" title="How to get involved">How to get involved</a></li>
									<li ><a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a></li>
									<li ><a href="community-3rdparty.html" title="Third-Party">Third-Party</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a></li>
									<li ><a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="dev-faq.html" title="Developer FAQ">Developer FAQ</a></li>
									<li ><a href="dev-sourcecode.html" title="Source Code">Source Code</a></li>
									<li ><a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="doc-getstarted.html" title="Getting Started">Getting Started</a></li>
									<li ><a href="doc-videos.html" title="Videos">Videos</a></li>
									<li ><a href=".html" title="Flex ASDocs">Flex ASDocs</a></li>
									<li ><a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a></li>
									<li ><a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a></li>
									<li ><a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a></li>
									<li ><a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a></li>
									<li class="active"><a href="" title="Contributing to the Flex Website">Contributing to the Flex Website</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Apache <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a></li>
									<li ><a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a></li>
									<li ><a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Download Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a></li>
									<li ><a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a></li>
									<li ><a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a></li>
									<li ><a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a></li>
									<li ><a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a></li>
									<li ><a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a></li>
									<li ><a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a></li>
									<li ><a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a></li>
									<li ><a href=".html" title="Flex Utilities">Flex Utilities</a></li>
									<li ><a href=".html" title="Previous Versions">Previous Versions</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="http://flex.apache.org/" id="bannerLeft"><img src="http://flex.apache.org/images/logo_01_fullcolor-sm.png" alt='"'Apache Flex'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://www.apache.org" id="bannerRight"><img src="http://www.apache.org/images/feather-small.gif" alt='"'An Apache Project'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="projectVersion version-date">Version: 0.8.0-SNAPSHOT</li>
				<li class="divider">|</li>
				<li class="publishDate version-date">Last Published: 2016-10-11</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<div class="page-header">
 <h1>Contributing to the Flex Website</h1>
</div> 
<p>This document describes how the Maven version of the Flex Website is created and why it is done that way.</p> 
<div class="section"> 
 <h2 id="The_Git_repo_and_its_structure">The Git repo and its structure</h2> 
 <p>Currently the flex-site repo, which is available at:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://git-wip-us.apache.org/repos/asf/flex-site.git
</pre> 
  </div> 
 </div> 
 <p>Because we haven’t quite decided which path to go in migrating away from the Apache CMS and SVN to a GIT-based version, we have decided to create branches for each approach and decide later on which of them we will be using. Currently the only approach being worked on is one based upon Apache Maven using the <tt>maven-site-plugin</tt></p> 
 <p>Contains several branches:</p> 
 <ul> 
  <li><tt>master</tt> (Is just there to prevent problems when checking out)</li> 
  <li><tt>maven-site</tt> (Contains this document and is a version of the Apache Flex website, which is built from markdown content using the maven-site-plugin in a Maven build)</li> 
  <li><tt>asf-site</tt> (Contains the HTML the maven-site project creates when running the site:deploy goal. This it the static code of the Apache Flex website which will be served by the Apache Webservers)</li> 
 </ul> 
</div> 
<div class="section"> 
 <h2 id="How_the_site_is_generated">How the site is generated</h2> 
 <p>Currently the projects are able to produce content in their own repositories. The main Apache Foundation webservers server their content from a SVN repository hosted at:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://svn.apache.org/repos/infra/websites/production/{project-name}
</pre> 
  </div> 
 </div> 
 <p>The projects however cannot publish direct into this repository. Therefore the Infra team have created tools to sync content from projects repositories with their sub-branch of that SVN repo:</p> 
 <ul> 
  <li>For SVN based sites this is svnpubsub</li> 
  <li>For GIT based sites this is gitpubsub</li> 
  <li>The Apache CMS which sort of generates content from a SVN repo and automatically publishes that so some sort of staging area from which you can review changes and release them to production using a web-ui (This is the way the Apache Flex website is currently created)</li> 
 </ul> 
 <p>As we are planning on using GIT and therefore we have to migrate away from the Apache CMS, which can only deal with SVN based repositories.</p> 
 <p>The <tt>maven-site</tt> branch contains a simple Maven project which utilizes the <tt>maven-site-plugin</tt> to generate the Website and render <tt>Markdown</tt> content as nice looking HTML Website. This static content is then checked in to the <tt>asf-site</tt> branch of the same GIT repository.</p> 
 <p>As this checking in requires commit permissions, we cannot run this job on the normal ASF Jenkins instances. The only build system that allows automatic commits to git is <tt>buildbot</tt>. Setting up a job here is a little more tricky than with jenkins as you have to provide the job definition by adding a config file to a SNV repo hosted at:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects
</pre> 
  </div> 
 </div> 
 <p>Currently this config file for building the <tt>maven-site</tt> version of the Flex website looks like this:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre># This is the config file for generating the website of the flex project.

#########################################################################################
# Add a new scheduler for the current job
#########################################################################################

# Check the &quot;maven-site&quot; branch in the &quot;flex-site&quot; git repo for changes and trigger
# the &quot;maven-flex-site&quot; job if there are changes
c['schedulers'].append(SingleBranchScheduler(name=&quot;on-maven-flex-site-commit&quot;,
                    change_filter=filter.ChangeFilter(branch='maven-site' , project='flex-site'),
                    treeStableTimer=2,
                    builderNames=[&quot;maven-flex-site&quot;]))



#########################################################################################
# Define the Job
#########################################################################################

# Build Factory (Define which steps have to be performed to execute the build)
flexSiteJobFactory = factory.BuildFactory()
# 1. Checkout the &quot;flex-site&quot; branch of the flex-site repo
flexSiteJobFactory.addStep(Git(
    repourl=&quot;https://git-wip-us.apache.org/repos/asf/flex-site.git&quot;,
    branch='maven-site',
    workdir=&quot;build&quot;,
    retry=(10, 5), # retry 5 times with a 10 second delay
    retryFetch=True,
    mode='full',
    method='fresh'
    ))
# 2. Run a Maven &quot;clean site-deploy&quot; build on the checked out repo.
flexSiteJobFactory.addStep(Compile(command=[&quot;mvn&quot; , &quot;clean&quot; , &quot;site-deploy&quot;]))



#########################################################################################
# Define the Builder
#########################################################################################

# Run the job with the name &quot;maven-flex-site&quot; on the agent with the name &quot;bb_slave1_ubuntu&quot;
# Use the working directory &quot;maven-flex-site-build-dir&quot; and report the outcome in the
# category &quot;maven-flex-site-category&quot;
flexSiteBuild = {'name': &quot;maven-flex-site&quot;,
      'slavename': &quot;bb_slave1_ubuntu&quot;,
      'builddir': &quot;maven-flex-site-build-dir&quot;,
      'factory': flexSiteJobFactory,
      'category': &quot;maven-flex-site-category&quot;,
     }



#########################################################################################
# Add the new flexSiteBuild to the other builders (
#########################################################################################

c['builders'].append(flexSiteBuild)



#########################################################################################
# Define how the status should be reported
#########################################################################################

c['status'].append(mail.MailNotifier(fromaddr=&quot;buildbot@apache.org&quot;,
                                      extraRecipients=[&quot;commits@flex.apache.org&quot;],
                                      sendToInterestedUsers=False,
                                      mode=&quot;change&quot;,
                                      categories=[&quot;maven-flex-site-category&quot;]))
</pre> 
  </div> 
 </div> 
 <p>In order to make <tt>buildbot</tt> find the new config, you need to add it to a file called <tt>projects.conf</tt> in the same directory as the config file. As soon as you commit, <tt>buildbot</tt> will automatically process the config file and report any problems via Email.</p> 
 <p>In above script I defined a build-job called <tt>maven-flex-site</tt> so the url to view it’s state is:</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>https://ci.apache.org/builders/maven-flex-site/
</pre> 
  </div> 
 </div> 
 <p>Unfortunately you can’t directly click on a button to run the build, but you can always trigger a build manually using IRC. In order to do this, you need to 1. connect to the channel <tt>#asftest</tt> on a <tt>freenode</tt> IRC server (I used <tt>chat.freenode.net</tt>). 2. send the following message: <tt>pony-bot: force build maven-flex-site because ponies</tt></p> 
 <p>(Don’t ask me about the ponys. I was told there are multiple bots listening and <tt>pony-bot</tt> is one that is able to trigger the build … and the <tt>because ponies</tt> makes Pono happy, because he seems to like ponies a lot ;-) )</p> 
 <p>At least after this you should see some results in the job overview page.</p> 
</div> 
<div class="section"> 
 <h2 id="Open_Issues">Open Issues</h2> 
 <ol style="list-style-type: decimal"> 
  <li>Currently the <tt>buildbot</tt> job doesn’t automatically start as soon as someone checks in something into the <tt>maven-site</tt> branch.</li> 
  <li>Currently the automatic commit used by the <tt>maven-site-plugin</tt> doesn’t seem to allow committing, so I’ll have to figure out that one.</li> 
  <li>As soon the build works and the content is migrated, we have to request Infa to setup <tt>gitpubsub</tt> to sync the content of the <tt>asf-site</tt> with the Flex projects content in the Infra webserver SVN repo.</li> 
 </ol> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span9 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">About Flex</li>
						<li >
							<a href="about-whatis.html" title="What is Flex?">What is Flex?</a>
						</li>
						<li >
							<a href="about-features.html" title="Features">Features</a>
						</li>
						<li >
							<a href=".html" title="Tour de Flex">Tour de Flex</a>
						</li>
						<li >
							<a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a>
						</li>
						<li >
							<a href="about-people.html" title="The Team">The Team</a>
						</li>
						<li >
							<a href="about-history.html" title="Project History">Project History</a>
						</li>
						<li >
							<a href="about-assets.html" title="Logo and Assets">Logo and Assets</a>
						</li>
						<li class="nav-header">Community</li>
						<li >
							<a href="community-getinvolved.html" title="How to get involved">How to get involved</a>
						</li>
						<li >
							<a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a>
						</li>
						<li >
							<a href="community-3rdparty.html" title="Third-Party">Third-Party</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a>
						</li>
						<li >
							<a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a>
						</li>
						<li class="nav-header">Development</li>
						<li >
							<a href="dev-faq.html" title="Developer FAQ">Developer FAQ</a>
						</li>
						<li >
							<a href="dev-sourcecode.html" title="Source Code">Source Code</a>
						</li>
						<li >
							<a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a>
						</li>
						<li class="nav-header">Documentation</li>
						<li >
							<a href="doc-getstarted.html" title="Getting Started">Getting Started</a>
						</li>
						<li >
							<a href="doc-videos.html" title="Videos">Videos</a>
						</li>
						<li >
							<a href=".html" title="Flex ASDocs">Flex ASDocs</a>
						</li>
						<li >
							<a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a>
						</li>
						<li >
							<a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a>
						</li>
						<li class="active">
							<a href="#" title="Contributing to the Flex Website">Contributing to the Flex Website</a>
						</li>
						<li class="nav-header">About Apache</li>
						<li >
							<a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a>
						</li>
						<li class="nav-header">Download Flex</li>
						<li >
							<a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a>
						</li>
						<li >
							<a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a>
						</li>
						<li >
							<a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a>
						</li>
						<li >
							<a href=".html" title="Flex Utilities">Flex Utilities</a>
						</li>
						<li >
							<a href=".html" title="Previous Versions">Previous Versions</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-description">
					<blockquote>This is a very good project doing interesting
                and valuable things.</blockquote>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2016 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
				<p><a href="http://github.com/andriusvelykis/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
