Developer Info: Difference between revisions

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
mNo edit summary
Line 1: Line 1:
* [http://test.opendap.org/cgi-bin/build_reader.pl?show=current&sort=yes 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.


* [https://github.com/OPENDAP OPeNDAP's GitHub repositories]: OPeNDAP's software is available using GitHub in addition to the doenloads from our website.
* [https://travis-ci.org/OPENDAP Continuous Integration builds]: Software that is built whenever new changes are pushed to the master branch. These builds are done on the Travis-CI system.
* []: We use the Coverity static system to look for common software defects
* [http://test.opendap.org/ test.opendap.org]: Test servers with data files.
* [http://test.opendap.org/ test.opendap.org]: Test servers with data files.


== Developer Guidelines and Information ==
== Developer Guidelines and Information ==
The [http://www.opendap.org/faq OPeNDAP FAQ] has a pretty good section on developer's questions, especially regarding SVN.
The [http://www.opendap.org/faq OPeNDAP FAQ] has a pretty good section on developer's questions.


== General development information ==
== General development information ==
Line 11: Line 13:
* [[Hyrax GitHub Source Build]] This explains how to clone our software from GitHub and build our code using a shell like bash. It also explains how to build the BES and all of the Hyrax 'standard' handlers in one operation, as well as how to build just the parts you need without cloning the whole set of repos. Some experience with 'git submodule' will make this easier, although the page explains everything.
* [[Hyrax GitHub Source Build]] This explains how to clone our software from GitHub and build our code using a shell like bash. It also explains how to build the BES and all of the Hyrax 'standard' handlers in one operation, as well as how to build just the parts you need without cloning the whole set of repos. Some experience with 'git submodule' will make this easier, although the page explains everything.
* [[ConfigureCentos| How to configure a CentOS machine for production of RPM binaries]] - Updated 12/2014 to include information regarding git.
* [[ConfigureCentos| How to configure a CentOS machine for production of RPM binaries]] - Updated 12/2014 to include information regarding git.
* [[How to use Eclipse with Hyrax Source Code]] Assuming you have cloned our Hyrax code from GitHub, this explains how to setup eclipse so you can work fairly easily and switch back and forth between the shell, emacs and eclipse.
* [https://developer.mozilla.org/en-US/docs/Eclipse_CDT Eclipse - Detailed information about running Eclipse on OSX from the Mozzilla project]. Maybe a bit out of date.
* [https://developer.mozilla.org/en-US/docs/Eclipse_CDT Eclipse - Detailed information about running Eclipse on OSX from the Mozzilla project]. Maybe a bit out of date.
* [[How to use Eclipse with Hyrax Source Code]] Assuming you have cloned our Hyrax code from GitHub, this explains how to setup eclipse so you can work fairly easily and switch back and forth between the shell, emacs and eclipse.
Older information - most of these pages describe building Hyrax using source code checked out from our SVN repository. The newer pages (above) that describe using source from GitHub are probably what you want. These pages, however, have some potentially useful information about the third-party code you need if building on an older version of Linux or OS/X.
* [[Eclipse - How to Setup Eclipse in a Shrew Checkout]] This includes some build instructions
* [[LinuxBuildHostConfig| How to configure a Linux machine to build Hyrax from SVN]]
* [[ConfigureSUSE| How to configure a SUSE machine for production of RPM binaries]]
* [[ConfigureAmazonLinuxAMI| How to configure an Amazon Linux AMI for EC2 Instance To Build Hyrax]]
* [[TestOpendapOrg | Notes from setting up Hyrax on our new web host]]


=== Workshops ===
=== Workshops ===
Line 44: Line 39:
* [[valgrind| How to use valgrind with unit tests]]
* [[valgrind| How to use valgrind with unit tests]]
* [[CopyRights| How to copyright software written for OPeNDAP]]
* [[CopyRights| How to copyright software written for OPeNDAP]]
* [[GuideLines| Development Guidelines]]
* [[Managing public and private keys using gpg]]
* [[Managing public and private keys using gpg]]
* [[SecureEmail |How to Setup Secure Email and Sign Software Distributions]]
* [[SecureEmail |How to Setup Secure Email and Sign Software Distributions]]
Line 50: Line 44:
* [[NetworkServerSecurity |Security Policy and Related Procedures]]
* [[NetworkServerSecurity |Security Policy and Related Procedures]]
* [http://semver.org/ Software version numbers]
* [http://semver.org/ Software version numbers]
* [[GuideLines| Development Guidelines]]


===== Old information =====
===== Old information =====
Line 59: Line 54:
* [[XP| Making Windows XP distributions]]. Follow these directions to make Windows XP binaries.
* [[XP| Making Windows XP distributions]]. Follow these directions to make Windows XP binaries.
* [[ReleaseToolbox |Making a Matlab Ocean Toolbox Release]].  Follow these steps when a new Matlab GUI version is ready to be released.
* [[ReleaseToolbox |Making a Matlab Ocean Toolbox Release]].  Follow these steps when a new Matlab GUI version is ready to be released.
 
Older information - most of these pages describe building Hyrax using source code checked out from our SVN repository. The newer pages (above) that describe using source from GitHub are probably what you want. These pages, however, have some potentially useful information about the third-party code you need if building on an older version of Linux or OS/X.
== About Subversion ==
* [[Eclipse - How to Setup Eclipse in a Shrew Checkout]] This includes some build instructions
* [[LinuxBuildHostConfig| How to configure a Linux machine to build Hyrax from SVN]]
* [[ConfigureSUSE| How to configure a SUSE machine for production of RPM binaries]]
* [[ConfigureAmazonLinuxAMI| How to configure an Amazon Linux AMI for EC2 Instance To Build Hyrax]]
* [[TestOpendapOrg | Notes from setting up Hyrax on our new web host]]
* [http://svnbook.red-bean.com/en/1.7/index.html Subversion 1.7 documentation] -- The official Subversion documentation; [http://svnbook.red-bean.com/en/1.1/svn-book.pdf PDF] and [http://svnbook.red-bean.com/en/1.1/index.html HTML].
* [http://svnbook.red-bean.com/en/1.7/index.html Subversion 1.7 documentation] -- The official Subversion documentation; [http://svnbook.red-bean.com/en/1.1/svn-book.pdf PDF] and [http://svnbook.red-bean.com/en/1.1/index.html HTML].
* [[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.

Revision as of 02:35, 21 September 2015

  • OPeNDAP's GitHub repositories: OPeNDAP's software is available using GitHub in addition to the doenloads from our website.
  • Continuous Integration builds: Software that is built whenever new changes are pushed to the master branch. These builds are done on the Travis-CI system.
  • []: We use the Coverity static system to look for common software defects
  • test.opendap.org: Test servers with data files.

Developer Guidelines and Information

The OPeNDAP FAQ has a pretty good section on developer's questions.

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. Updated Fall 2014 for presentation to Ocean Networks Canada.

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:
  • 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.
Making specific kinds of packages for release:
  • Making RPM Distributions. Follow these steps to create an RPM distribution of the software.
  • Making a Release of OLFS. Follow these steps to create the three .jar files needed for the OLFS release. Includes information on how to build the OLFS and how to run the tests.
Software process issues:
Old information

Note: The following is all about using Subversion and is out of date as of November 2014 when we switched to git. There are still good ideas here...

Older information - most of these pages describe building Hyrax using source code checked out from our SVN repository. The newer pages (above) that describe using source from GitHub are probably what you want. These pages, however, have some potentially useful information about the third-party code you need if building on an older version of Linux or OS/X.