Skip to content

Latest commit

 

History

History
84 lines (64 loc) · 5.67 KB

CONTRIBUTING.md

File metadata and controls

84 lines (64 loc) · 5.67 KB

Contributing

Thank you for showing an interest in contributing to Eik 🧡

Eik is divided in a collection of modules, each in their separate repositories. The contribution process is the same for all of them.

Below is a map of the dependencies between Eik modules. Development dependencies are not shown.

flowchart TD
    COMMON[@eik/common]
    CLI[@eik/cli]
    NODECLIENT[@eik/node-client]
    SINK[@eik/sink]
    SINKFS[@eik/sink-file-system]
    SINKGCS[@eik/sink-gcs]
    SINKMEM[@eik/sink-memory]
    CORE[@eik/core]
    SVC[@eik/service]

    CLI --> COMMON
    NODECLIENT --> COMMON

    SINK --> COMMON
    SINKFS --> COMMON
    SINKFS --> SINK
    SINKGCS --> COMMON
    SINKGCS --> SINK
    SINKMEM --> COMMON
    SINKMEM --> SINK

    CORE --> COMMON
    CORE --> SINK
    CORE --> SINKFS
    CORE --> SINKMEM

    SVC --> CORE
    SVC --> SINK
    SVC --> SINKFS
    SVC --> SINKMEM
Loading

A short description of the different modules.

Name Description
@eik/service The HTTP server running the Eik service.
@eik/core The implementation of the different HTTP API endpoint handlers.
@eik/sink Interface implemented by the different storage sinks.
@eik/sink-file-system Storage sink using the local file system.
@eik/sink-gcs Storage sink for Google Cloud Storage.
@eik/sink-memory In memory storage sink, useful for automated tests.
@eik/node-client Utility for linking to files on Eik or localhost based on environment, and to do browser import mapping.
@eik/cli Command line interface to publish packages and import maps to Eik, and to manage aliases.
@eik/common The eik.json schema and a gathering of shared utilities.

Workflow

Fork the repo(s) you would like to contribute to and make a branch off of main.

Commits in your pull request should follow the conventional commits format.

This repo uses semantic release to release automatically whenever changes are merged to main.

Documentation

We use JSDoc to generate type definitions. If you're new to that workflow, the TypeScript docs and this blogpost by Alex Harri are good starting points.

Documentation for Eik as a whole is in eik-lib/eik-lib.github.io. If you make changes to an existing feature or add a new one, please also open a pull request with the relevant documentation to that repo.

For user-facing modules API reference documentation should be on the documentation website, for example:

  • @eik/cli
  • @eik/node-client
  • @eik/service
  • @eik/sink

For other modules README.md in the repo is enough.