How to contribute

We welcome contributions from the passive acoustic glider community! If you would like to contribute to this repository, you can do so in a few ways:

If you find a bug…

Please report an issue on GitHub. Please use the Bug report template.

If you’d like to request a feature or suggest an enhancement…

Please report an issue on GitHub. There is a Feature request template just for this purpose.

If you’d like to add a feature or fix a bug yourself…

Fork the agate repository. This will create a copy of the repository in your own GitHub account. You can clone this fork to your local machine to work with the toolbox and make changes directly to the code, but also continue to pull changes from the primary repository to stay up to date. Then, when you have a feature you’d like to contribute back to the main repository, you can use a pull request to incorporate those changes.

We are happy to help get folks set up with this process, so please reach out with any questions!

Coding conventions

Start reading the existing code to get a hang of our currenct conventions.

  • Use camelCase for naming functions
  • Use camelCase or underscores _ when naming variables
  • Always put spaces around = when defining variables, after list items and function parameters ([1, 2, 3], not [1,2,3]) and around operators (x + 1, not x+1)
  • Use ... to extend function calls onto a second line if it runs beyond 76 characters

For consistency in documentation, we ask that you use the following templates to create any new functions or scripts:

New function

Paste the below code into the top of the new function and updated as needed. Refer to existing functions in the utils folder for examples of what kind of detail to include. Include your name, contact info, and MATLAB version info which can be checked with version. Use spaces for all alignment (not tabs!) to ensure it renders properly with MATLAB documentation pop ups.

function output = newFunction(input)
% NEWFUNCTION   One-line description here, please
%
%   Syntax:
%       OUTPUT = NEWFUNCTION(INPUT)
%
%   Description:
%       Detailed description here, please
%   Inputs:
%       input   describe, please
%
%   Outputs:
%       output  describe, please
%
%   Examples:
%
%   See also
%
%   Authors:
%       F. Last <first.last@email.com> <https://github.com/username>
%
%   FirstVersion:   05 August 2024
%   Updated:
%
%   Created with MATLAB ver.: 9.13.0.2166757 (R2022b) Update 4
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

New script

Paste the below code into the top of the new script and fill in the detail as needed. Refer to existing scripts in the example_workflows folder. Please include your name, contact info, and MATLAB version info which can be checked with version.

% NEWSCRIPT
%   One-line description here, please
%
%   Description:
%       Detailed description here, please
%
%   Notes
%
%   See also
%
%
%   Authors:
%       F. Last <first.last@email.com> <https://github.com/username>
%
%   FirstVersion:   05 August 2024
%   Updated:
%
%   Created with MATLAB ver.: 9.13.0.2166757 (R2022b) Update 4
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%