Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary
Last synced: 7 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: argovis
  • License: mit
  • Language: JavaScript
  • Default Branch: server
  • Size: 1.64 MB
Statistics
  • Stars: 4
  • Watchers: 2
  • Forks: 3
  • Open Issues: 1
  • Releases: 132
Created over 4 years ago · Last pushed 8 months ago
Metadata Files
Readme License Zenodo

README.md

Development Cycle

Argovis's API is automatically templated from the OpenAPI specification in several specification files:

  • core-spec.json: API spec for Argovis core at University of Colorado. Serves all data products except the ones enumerated below for our partner deployments.
  • miami-spec.json: spec for the Global Drifter Program deployment, hosted by University of Miami.

These specifications are the single source of truth for the definition of this API! By adhering to this specification, we are able to leverage the OpenAPI ecosystem of tools for automatically generating docs, server side stubs and client code. To support this, we use the following build workflow.

  1. After modifying the specification documents to describe how you want to update the API, build the server stubs with:

bash build.sh

  1. Commit these changes to the templates branch.

  2. Merge these changes into the server branch; that way, we can merge new routes from the templates into previously-written custom logic, and have merge conflicts identify any places where updates to old routes may need attention.

  3. Implement custom logic and commit to the server branch, which will be the build and release branch.

  4. Image can be built from the local Dockerfile

  5. API endpoint testing is handled by supertest, mocha and chai, and is performed from an external test container that issues requests to a build of the main api container. See .travis.yml for a detailed description of how to set these tests up and run them locally.

Build & Release Cycle

When all tests on the server branch are passing, releases may be made with the following procedures, assuming the base image hasn't changed (see below for when base images need an update, ie when node or package dep versions change)

  1. Choose a release tag; this should typically be a standard semver, possibly suffixed with -rc-x for release candidates if necessary.

  2. Stamp a release of the server branch on GitHub, using the release tag you chose.

  3. Build the API container: docker image build -t argovis/api:<release tag> .

  4. Push to Docker Hub: docker image push argovis/api:<release tag>

Base Image Builds

In general, the base image for the API shouldn't change often; it is meant to capture package dependencies, and should be as stable as possible. But, when dependencies need an update (most typically after package.json changes), follow this procedure.

  1. Build a new base image, tagged with the build date: docker image build -f Dockerfile-base -t argovis/api:base-yymmdd .

  2. Update Dockerfile to build from your new base image (very first FROM line).

  3. Build a new testing base image, tagged with the build date: docker image build -f Dockerfile-test-base -t argovis/api:test-base-yymmdd .

  4. Update Dockerfile-test to build from your new test base image.

  5. Build and test per the .travis.yml to make sure tests still pass with this new base.

  6. Push to Docker Hub: docker image push argovis/api:base-yymmdd and docker image push argovis/api:test-base-yymmdd, and push the updates to the server branch to GitHub.

Owner

  • Name: argovis
  • Login: argovis
  • Kind: organization

GitHub Events

Total
  • Release event: 12
  • Issue comment event: 2
  • Push event: 17
  • Pull request event: 32
  • Create event: 12
Last Year
  • Release event: 12
  • Issue comment event: 2
  • Push event: 17
  • Pull request event: 32
  • Create event: 12

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 months
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.25
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 7
  • Average time to close issues: N/A
  • Average time to close pull requests: about 1 month
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.14
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • gmaze (1)
Pull Request Authors
  • bkatiemills (52)
  • BillMills (10)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

nodejs-server/package.json npm
  • @mapbox/geojson-area ^0.2.2
  • @turf/boolean-point-in-polygon ^6.5.0
  • connect ^3.2.0
  • cors ^2.8.5
  • debug 3.1.0
  • geojson-validation ^0.1.6
  • js-yaml ^3.3.0
  • moment ^2.24.0
  • mongoose ^6.2.10
  • oas3-tools ^2.2.3
  • redis ^3.1.2
tests/package.json npm
  • @apidevtools/json-schema-ref-parser ^9.0.9
  • @mapbox/geojson-area ^0.2.2
  • chai ^4.3.4
  • chai-almost ^1.0.1
  • chai-json-schema ^1.5.1
  • mocha ^9.1.1
  • supertest ^6.1.6
Dockerfile docker
  • argovis/api base-220815 build
.github/workflows/test.yaml actions