DFO-CHS-Dynamic-Hydrographic-Products / IWLS_pygeoapi

pygeoapi plugins to access and process water level and surface currents from the IWLS public API
5 stars 0 forks source link
api e-navigation ogc-api pygeoapi

IWLS_pygeoapi

pygeoapi plugins to access and process water level and surface currents from the CHS Integrated Water Level System (IWLS) public API

Currently include a pygeoapi data provider plugin to interface with the IWLS database (https://api-iwls.dfo-mpo.gc.ca/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config) and a S-100 process plugin to convert observed, predicted and quality control forecasts water levels data to S-104 DCF8 format and HADCP surface currents to S-111 DCF8 format.

Coding Guidelines

General Guidelines

Additional resources on code smells:

Code Review Guidelines

Pull Request Lifecycle

  1. It is standard to create an associated issue and pull a branch from that issue. Checkout out a branch from updated main. Branch names should start with the issue number. For example issue 12 called 'bug_fixes' would be 12-bug-fixes.
  2. Implementent the issue using the above coding guidelines.
  3. Prior to submitting a PR, you are required to test your code:
    • Code should compile
    • Run the tests under the /tests directory for both S111 and S104 files using the example curl request listed below. All tests must pass.
  4. Merge your branch locally with Main to avoid Merge Conflicts
  5. Ensure your branch addresses all the features from the issue, follows style formatting guides (comments etc.) and is efficient.
  6. Submit your PR and list the changes in the comments area in addition to any other concerns/comments you have. Assign a reviewer.
  7. Complete changes suggested by reviewer
  8. Test code again (see point 3) and ensure that code compiles

Review Guidelines

  1. Test the code (see point 3 in the Pull Request Lifecycle above). Ensure that all tests pass prior to continuing with any of the below steps.
  2. Code should meet the following requirements:
    • Functionality: Does the proposed implementation fulfil the functionality from the issue?
    • Style: Is the implementation completed in a way that is efficient and well written?
    • Format: Does it follow the coding guidelines (i.e. comments/formatting for PEP8 guidelines etc.).
    • Error handling: Is there sufficient error handling to gracefully handle bugs or any other potential issues?
  3. Respond to comments and address issues in a meaningful way
  4. Once satisfied with the changes, merge the PR and ensure that the associated branch is deleted