Difference between revisions of "Developer Info"

From OPeNDAP Documentation
m (Software process issues:)
m (C++ Coding Information)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  
* [https://github.com/OPENDAP OPeNDAP's GitHub repositories]: OPeNDAP's software is available using GitHub in addition to the doenloads from our website.
+
* [https://github.com/OPENDAP OPeNDAP's GitHub repositories]: OPeNDAP's software is available using GitHub in addition to the downloads from our website.
 
** Before 2015 we hosted our own SVN repository. It's still online and available, but for read-only access, at [https://scm.opendap.org/svn https://scm.opendap.org/svn].
 
** Before 2015 we hosted our own SVN repository. It's still online and available, but for read-only access, at [https://scm.opendap.org/svn https://scm.opendap.org/svn].
 
* [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.
 
* [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.
Line 11: Line 11:
 
== OPeNDAP's FAQ ==
 
== OPeNDAP's FAQ ==
 
The [http://www.opendap.org/faq-page OPeNDAP FAQ] has a pretty good section on developer's questions.
 
The [http://www.opendap.org/faq-page OPeNDAP FAQ] has a pretty good section on developer's questions.
 +
 +
== C++ Coding Information ==
 +
* [[Include files for libdap | Guidelines for including headers]]
 +
* [[Using lambdas with the STL]]
 +
* [[Better Unit tests for C++]]
  
 
== OPeNDAP Workshops ==
 
== OPeNDAP Workshops ==
Line 44: Line 49:
 
* [[Bug Prioritization]]. How we prioritize bugs in our software.
 
* [[Bug Prioritization]]. How we prioritize bugs in our software.
  
===Making a Release ===
+
===[[How to Make a Release|Making A Release]] ===
 
* [[How to Make a Release]] A general template for making a release. This references some of the pages below.
 
* [[How to Make a Release]] A general template for making a release. This references some of the pages below.
  
 
== Software process issues: ==
 
== Software process issues: ==
* [http://gcc.gnu.org/gcc-4.4/cxx0x_status.html gcc/++ C++-11 support] How much of C++-11 can I use and still have my code build on CentOS 6
+
* [http://gcc.gnu.org/gcc-4.4/cxx0x_status.html C++-11 gcc/++-4.4 support] How much of C++-11 can I use and still have my code build on CentOS 6 (which uses gcc/++ 4.4 by default)
 
* [[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 CLion with our software]]
 
* [[How to use CLion with our software]]
Line 63: Line 68:
 
* [http://semver.org/ Software version numbers]
 
* [http://semver.org/ Software version numbers]
 
* [[GuideLines| Development Guidelines]]
 
* [[GuideLines| Development Guidelines]]
 +
* [[Apple M1 Special Needs]]
 +
  
 
==== AWS Tips ====
 
==== AWS Tips ====
Line 71: Line 78:
 
These pages contain general information relevant to anyone working with our software:
 
These pages contain general information relevant to anyone working with our software:
  
* [[Git Hacks and Tricks]]: Information about using git and/or GitHub that seems useful and maybe not all that obvious.
+
* '''[[Git Hacks and Tricks]]''': Information about using git and/or GitHub that seems useful and maybe not all that obvious.
 
* [[Git Secrets]]: securing repositories from AWS secret key leaks.
 
* [[Git Secrets]]: securing repositories from AWS secret key leaks.
 
* [https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto Valgrind Suppression File Howto] How to build a suppressions file for valgrind.
 
* [https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto Valgrind Suppression File Howto] How to build a suppressions file for valgrind.

Latest revision as of 16:55, 3 January 2022

1 OPeNDAP's FAQ

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

2 C++ Coding Information

3 OPeNDAP 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.

4 libdap4 and BES Reference documentation

5 BES Development Information

6 OPeNDAP Development process information

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

  • 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.
  • Bug Prioritization. How we prioritize bugs in our software.

6.1 Making A Release

7 Software process issues:


7.1 AWS Tips

8 General development information

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

9 Old information

Note: Old build information

9.1 The Release Process

  1. Make sure the hyrax-dependencies project is up to date and tar balls on www.o.o. If there have been changes/updates:
    1. Update version number for the hyrax-dependencies in the Makefile
    2. Save, commit, (merge?), and push the changes to the master branch.
    3. Once the hyrax-dependencies CI build is finished, trigger CI builds for both libdap4 and bes by pushing change(s) to the master branch of each.
  2. Making a source release of libdap
  3. Making a source release of the BES.
  4. Make the OLFS release WAR file. 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.
  5. Make the official Hyrax Docker image for the release When the RPMs and the WAR file(s) are built and pushed to their respective download locations, make the Docker image of the release.

9.2 Supplemental release guides

Old - use the packages built using the Continuous Delivery process

  1. Make the RPM Distributions. Follow these steps to create an RPM distribution of the software. Note: Now we use packages built using CI/CD, so this checklist is no longer needed.

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