Developer Info: Difference between revisions

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
Line 52: Line 52:
* [[OPeNDAP's Use of Trac]] -- How to use Trac's various features in the software development process.
* [[OPeNDAP's Use of Trac]] -- How to use Trac's various features in the software development process.


== Trac install ==
== [[Trac install]] ==
Todo:
* Figure out if the account manager plugin will work with Agilo
* turn on ''https''
* copy more set up info from the notebook
* <del>Install Agilo plugin</del> DONE
* <del>figure out what else to instal and do it (goto http://scm.opendap.org/trac/about to see what's installed)</del> DONE but there are issues to be resolved
* copy over the old data base
* edit the value of base_url in [trac] section of trac.ini
 
Updated with information about the update to Trac 1.0.1 and the Agilo plugin.
 
=== Authentication ===
 
Added code to the trac.conf httpd conf file in /etc/httpd/conf.d/trac.conf:
 
<source lang="xml">
<Location "/trac/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /usr/local/scm/svn-httpd-passwd
  Require valid-user
</Location>
</source>
 
And the login button worked. Since the passwd file was copied over the old user names and passwords are all there.
 
=== Logging ===
 
In the [logging] section of the trac.ini file. Need to set the log type to ''file'' to get log info in a file. The default is ''none'' and that turns off logging.
 
=== Serving static pages ===
 
First, use trac-admin to deploy the htdocs. I copied the result to /var/www/trac. dropping the ''htdocs'' dir and just copying the ''common'' and ''site'' dirs into /var/www/trac. Then set up the two directories so that the aliases /chrome/{common,site} can be used to access the stuff they contain. Note that ''site'' is supposed to hold the site specific stuff like a logo.
 
I also copied the trac.wsgi file in deploy/cgi-bin to /var/www/cgi-bin.
 
In trac.ini, set the logo (in the section  [header_logo]0 using ''src = /chrome/site/opendap_scm_2.png'' and the htdocs location for the common pages (in the section [trac]) using ''htdocs_location = /chrome/common''
 
<source lang="xml">
# This configures the web server to serve Trac pages so the static             
# parts don't get processed by python. The paths /chrome/common and           
# /chrome/site are used in the trac.ini file.                                 
Alias /chrome/common /var/www/trac/common
 
<Directory /var/www/trac/common>
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>
 
<Location /chrome/common>
  SetHandler None
</Location>
 
Alias /chrome/site /var/www/trac/site
 
<Directory /var/www/trac/site>
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>
 
<Location /chrome/site>
  SetHandler None
</Location>
 
</source>
=== Agilo Plugin ===
 
Goto http://www.agilofortrac.com/, get an account and download the Agilo egg file, checking the hosts python version (2.6.6 right now) and making sure to get the egg file with the matching version (2.6)
 
The egg file was ziped, so I uncompressed it (unzip binary_agilo-PRO-py2.6.egg.zip) and restarted the web server.
 
I then ran ''trac-admin /usr/local/scm/trac/opendap upgrade'' and ''trac-admin /usr/local/scm/trac/opendap wiki upgrade'' as instructed.
 
borked
 
easy_install binary_agilo-1.3.12_PRO-py2.6.egg
 
trac-admin /usr/local/scm/trac/opendap permission add jimg TRAC_ADMIN
 
The easy_install step edited the trac.ini file, else add the following to [components] ''agilo.* = enabled''
 
Re-run the upgrade command for/with trac-admin
 
Works; should look at opitons and tweak the setup/config
 
=== XML/RPM Plugin ===
 
This is used by Eclipse and the MyLyn task manager
 
Source: http://trac-hacks.org/wiki/XmlRpcPlugin
 
''easy_install -Z -U http://trac-hacks.org/svn/xmlrpcplugin/trunk''
 
then in trac.ini:
 
<source lang="bash">
[components]
tracrpc.* = enabled
</source>
 
Not sure why this doesn't show up in the admin's plugin panel.
 
=== <del>Table of Contents Plugin</del> ===
 
This adds a TOC to the wiki pages. I'm adding it because we used it before and I want to smooth migration of old pages.
 
Source: http://trac-hacks.org/wiki/TocMacro
 
Looks like it does not support Trac 1.0++
 
=== <del>Master tickets Plugin</del> ===
 
Enables ticket dependency.
 
Source: http://trac-hacks.org/wiki/MasterTicketsPlugin
 
''easy_install http://trac-hacks.org/svn/masterticketsplugin/trunk/''
 
Then in trac.ini:
<source lang="bash">
[components]
mastertickets.* = enabled
 
[ticket-custom]
blocking = text
blocking.label = Blocking
blockedby = text
blockedby.label = Blocked By
</source>
 
Upgrade the Trac environment:
 
''trac-admin /usr/local/scm/trac/opendap/ upgrade''
 
And
 
''trac-admin /usr/local/scm/trac/opendap wiki upgrade''
 
Agilo seems to override this...
 
=== account manager plugin ===
 
Makes it easier for people to manage their accounts
 
Source: http://trac-hacks.org/wiki/AccountManagerPlugin
 
''easy_install https://trac-hacks.org/svn/accountmanagerplugin/tags/acct_mgr-0.4.3/''
 
No idea if this is working - Agilo seems to bork other plugins.
 
=== Configuration notes ===
 
In the trac.ini I can turn off or on the 'native' ticket system of Trac using these settings:
<source lang="bash">
trac.ticket.api.ticketsystem = enabled
trac.ticket.roadmap.roadmapmodule = enabled
trac.ticket.web_ui.ticketmodule = enabled
</source>
 
Agilo seems to want to have only four types of tickets; not sure if turning on the 'regular' ticket system will break it or what. Enabling these does add a 'New Ticket' menu item to the menu bar.
 
This seems to break things...

Revision as of 17:34, 20 January 2014

  • Nightly Builds: Software we build every night on several platforms. The link provides the most recent report for each build we do. Use show=current to get the most recent; show=<date> to get a particular date, show=<platform> to see a particular platform. The sort=yes option runs the results through Unix sort before building the table. The nightly build software is part of the nbuilds project and is available from our trac/svn repository.

Developer Guidelines and Information

The OPeNDAP FAQ has a pretty good section on developer's questions, especially regarding SVN.

General development information

These pages contain general information relevant to anyone working with our software:

Workshops:

  • The APAC/BOM Workshops: This workshop spanned several days and covered a number of topics, including information for SAs and Developers. Oct 2007.
  • ESIP Federation Server Workshop: This half-day workshop focused on server installation and configuration. Summer 2008
  • Server Functions: This one-day workshop is all about writing and debugging server-side functions. It also contains a wealth of information about Hyrax, the BES and debugging tricks for the server. Spring 2012.

Development process information (OPeNDAP Specific)

These pages contain information about how we'd like people working with us to use our various on-line tools.

Using revision control:
  • Using the SVN trunk, branches and tags to manage releases.
  • Making a Branch of Shrew for a Server Release. Releases should be made from the trunk and moved to a branch once they are 'ready' so that development can continue on the trunk and so that we can easily go back to the software that mad up a release, fix bugs, and (re)release those fixes. In general, it's better to fix things like build issues, etc., discovered in the released software on the trunk and merge those down to the release branch to maintain consistency, re-release, etc. This also means that virtually all new feature development should take place on special feature branches, not the trunk.
  • Making a Source Release. Once software is ready for distribution, use this checklist to make sure you do all of the steps needed to make a source release.
  • How to merge code
Making specific kinds of packages for release:
Software process issues:

About Subversion

Trac install