Coder Social home page Coder Social logo

isabella232 / cumulus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from developmentseed/cumulus

0.0 0.0 0.0 94.87 MB

Cumulus Framework + Cumulus API

License: Other

JavaScript 81.32% Shell 1.03% HTML 0.04% nesC 0.01% Dockerfile 0.04% CSS 0.02% HCL 9.07% Python 0.20% TypeScript 8.27% Handlebars 0.01%

cumulus's Introduction

Cumulus Framework

npm version Coverage Status

๐Ÿ“– Documentation

More Information

For more information about this project of more about NASA's Earth Observing System Data and Information System (EOSDIS) and its cloud work, please contact Katie Baynes or visit us at https://earthdata.nasa.gov.

๐Ÿ”จ Development

The Cumulus core repo is a monorepo managed by Lerna. Lerna is responsible for installing the dependencies of the packages and tasks that belong in this repo. In general, Cumulus's npm packages can be found in the packages directory, and workflow tasks can be found in the tasks directory.

To help cut down on the time and disk space required to install the dependencies of the packages in this monorepo, all devDependencies are defined in the top-level package.json. The Node module resolution algorithm allows all of the packages and tasks to find their dev dependencies in that top-level node_modules directory.

TL;DR - If you need to add a devDependency to a package, add it to the top-level package.json file, not the package.json associated with an individual package.

Installation

This is for installation for Cumulus development. See the Cumulus deployment instructions for instructions on deploying the released Cumulus packages.

Prerequisites

  • NVM and node version 12.18
  • AWS CLI
  • BASH
  • Docker (only required for testing)
  • docker-compose (only required for testing pip install docker-compose)
  • Python 3.6+

Install the correct node version:

nvm install
nvm use

Install Lerna

We use Lerna to manage multiple Cumulus packages in the same repo. You need to install lerna as a global module first:

$ npm install -g lerna

Install Local Dependencies

We use npm for local package management

$ npm install
$ npm run bootstrap

Building All packages:

$ npm run build

Build and watch packages:

$ npm run watch

Running the Cumulus APIs locally

Start the API:

$ npm run serve

Or start the distribution API:

$ npm run serve-dist

See the API package documentation for more options.

๐Ÿ“ Tests

Unit Tests

LocalStack

LocalStack provides local versions of most AWS services for testing.

The LocalStack repository has installation instructions.

Localstack is included in the docker-compose file. You only need to run the docker-compose command in the next section in order to use it with your tests.

Docker containers

Turn on the docker containers first:

$ npm run start-unit-test-stack

Stop localstack/unit test services:

$ npm run stop-unit-test-stack

Run database migrations

$ npm run db:local:migrate

Run tests

Run the test commands next

    $ export LOCAL_ES_HOST=127.0.0.1
    $ export LOCALSTACK_HOST=127.0.0.1
    $ npm test

Integration Tests

For more information please read this.

Running tests via VS Code debugger

Copy the .vscode.example directory to .vscode to create your debugger launch configuration. Refer to the VS Code documentation on how to use the debugger.

๐Ÿ”ฆ Code Coverage and Quality

For more information please read this.

๐Ÿ“ฆ Adding New Packages

Create a new folder under packages if it is a common library or create folder under cumulus/tasks if it is a lambda task. cd to the folder and run npm init.

Make sure to name the package as @cumulus/package-name.

Running command in all package folders

$ lerna exec -- rm -rf ./package-lock.json

Cleaning Up all the repos

$ npm run clean

Contribution

Please refer to: https://github.com/nasa/cumulus/blob/master/CONTRIBUTING.md for more information.

๐Ÿ›’ Release

To release a new version of cumulus read this.

cumulus's People

Contributors

abarciauskas-bgse avatar alukach avatar alyssadelaine avatar amarouane-abdelhak avatar apawloski avatar avocadoslab avatar bilts avatar cappelaere avatar chuckwondo avatar dpilone avatar drewbo avatar flamingbear avatar gsieling-e84 avatar ifestus avatar indiejames avatar jasongilman avatar jennyhliu avatar jjmccoy avatar jkovarik avatar kkelly51 avatar lanesgood avatar laurenfrederick avatar markdboyd avatar nemreid avatar scisco avatar sethvincent avatar snyk-bot avatar steadyflux avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.