Developer Info: Difference between revisions

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
Line 151: Line 151:
then in trac.ini:
then in trac.ini:


<source lang="sh">
<source lang="bash">
[components]
[components]
tracrpc.* = enabled
tracrpc.* = enabled

Revision as of 21:39, 17 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

Todo:

  • turn on https
  • copy more set up info from the notebook
  • Install Agilo plugin
  • figure out what else to instal and do it (goto http://scm.opendap.org/trac/about to see what's installed)
  • 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:

<Location "/trac/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /usr/local/scm/svn-httpd-passwd
  Require valid-user
</Location>

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

# 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>

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:

[components]
tracrpc.* = enabled

Not sure why this doesn't show up in the admin's plugin panel.

Table of Contents Macro Plugin

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++