An open API service indexing awesome lists of open source software.

https://github.com/plurid/developer

Cloud Service for Centralized Source Processor
https://github.com/plurid/developer

cloud processing source

Last synced: about 2 months ago
JSON representation

Cloud Service for Centralized Source Processor

Awesome Lists containing this project

README

          










License: DEL


developer


Cloud Service for Centralized Source Processor

`developer` is a [service](https://developer.plurid.cloud) or self-hosted Centralized Source Processor.

### Contents

+ [About](#about)
+ [Client](#client)
+ [Server](#server)
+ [Packages](#packages)
+ [Codeophon](#codeophon)

## About

A `Source Processor` handles the totality of transformations that are required in order to have the source code runtime-ready.

Such transformations, in a `NodeJS` for web context, consist of linting, testing, transpilation, tree-shaking and other optimizations, bundling. In a `C++` for embedded use context, it may consist only in a targeted compilation.

The `developer-server` registers configurations which receive messages from the `developer-client`, the `CLI`.

The messages can be simple command calls defined in the configuration, such as `build`, or more complex ones, based on custom scripts.

Given a command processed by the `server`, if there is any output, such as built files, the `server` will speak with the `client` to receive the files on the local machine, and place them accordingly, based on the configuration.

## Client

`developer` can be used as a Command-Line Interface tool or programatically.

The client connects to a `developer` server to run the commands.

## Server

`developer` can be used as a [service](https://developer.plurid.cloud) or selfhosted.

In order to build a `developer` image run

```
docker build \
-t developer-server \
-f ./configurations/production.dockerfile \
--build-arg PORT=56065 \
--build-arg DEVELOPER_ENDPOINT_GRAPHQL=/ \
--build-arg DEVELOPER_DATABASE_TYPE=mongo \
--build-arg DEVELOPER_LOG_LEVEL=0 \
--build-arg DEVELOPER_QUIET=false \
--build-arg DEVELOPER_CUSTOM_LOGIC_USAGE=false \
--build-arg DEVELOPER_PRIVATE_USAGE=true \
--build-arg DEVELOPER_PRIVATE_OWNER_IDENTONYM=identonym \
--build-arg DEVELOPER_PRIVATE_OWNER_KEY=key \
--build-arg DEVELOPER_PRIVATE_TOKEN=secret-token \
--build-arg DEVELOPER_MONGO_USERNAME=admin \
--build-arg DEVELOPER_MONGO_PASSWORD=1234 \
--build-arg DEVELOPER_MONGO_ADDRESS=localhost:56966 \
--build-arg DEVELOPER_MONGO_CONNECTION_STRING= \
--build-arg DEVELOPER_TEST_MODE=true \
.
```

## Tour

```
OWNER
|
|-----------|
| |
CLIENT --- SERVER

the OWNER sets up on the developer SERVER a WORKER
the SERVER builds the WORKER imagene
the WORKER provides a certain execution context

the OWNER writes source code in a code SPACE running the developer CLIENT

the OWNER runs a command through the CLIENT, e.g. 'developer build'
the CLIENT requests from the SERVER a TOKEN based on the SPACE and WORKER id
the CLIENT uploads the source to the SERVER using the TOKEN
the SERVER launches a JOB using as base the WORKER imagene
the JOB installs the dependencies in the WORKER and creates an intermediary WORKLOAD imagene for cache
the JOB runs the COMMAND in the WORKLOAD imagene
the JOB extracts the output if any
the SERVER sends the JOB's output to the CLIENT
```

Benefits of using `developer`

+ a code SPACE has no more "devDependencies"
+ multiple code SPACEs can share the same WORKER imagene
+ faster commands execution by leveraging caching mechanisms

## Packages


Version

[@plurid/developer-cli][developer-cli] • the `Command-Line Interface` client

[developer-cli]: https://github.com/plurid/developer/tree/master/packages/developer-cli


Version

[@plurid/developer-server][developer-server] • the server application

[developer-server]: https://github.com/plurid/developer/tree/master/packages/developer-server

## [Codeophon](https://github.com/ly3xqhl8g9/codeophon)

+ licensing: [delicense](https://github.com/ly3xqhl8g9/delicense)
+ versioning: [αver](https://github.com/ly3xqhl8g9/alpha-versioning)