加入CODE CHINA

· 不限速    · 不限空间    · 不限人数    · 私仓免费

免费加入
    README.md

    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+
    • pipenv

    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.

    项目简介

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/nasa/cumulus

    发行版本 86

    v9.1.0

    全部发行版

    贡献者 31

    全部贡献者

    开发语言

    • JavaScript 78.8 %
    • TypeScript 11.2 %
    • HCL 8.3 %
    • Shell 0.9 %
    • HTML 0.7 %