Giter Site home page Giter Site logo

dem's Introduction

Containerized Development Environment Manager
for
Embedded Development

Manage your containerized Development Environments with ease


GitHub tag (with filter) GitHub issues Discord



๐ŸŒŸ Join our Community on Discord ๐ŸŒŸ

Get answers to your challenges, and learn more about DEM, embedded development tools, and development platforms.



Overview

Documentation โ€ข Tutorial โ€ข Contribution guide โ€ข Support

The DEM is a command line tool that provides an easy, reproducible, and scalable way to set up Development Environments for embedded software development.

The DEM can be used locally, but it is in alpha state, so expect major new features!

Contributors and early adopters are welcome!

Concept

A Development Environment is a set of tools used for a development project (e.g. build system, debugger, toolchain, etc.). The tools are separately packed into container images, which are stored in registries.

Each Development Environment has a descriptor. A descriptor indicates which tools are required in the project and the place their container images are stored. All descriptors are stored in the Development Environment Catalogs. The users can browse these catalogs, and list the available environments and their statuses.
A Development Environment can be installed from its catalog by a simple dem command, which means that the required tool images get downloaded from the registries.

The registries, the catalogs, and the development infrastructure form a Development Platform.

The purpose of DEM is the easy management of this platform. The users can install available Development Environments or freely create their own from the tool images available in the registries or locally.

platform

Key features

  • Create scalable, reliable, and reproducible containerized Development Environments
  • Manage your containerized tools
  • Install preconfigured Development Environments from catalogs
  • Ensure that everyone in the team works with the same toolset
  • Share Development Environments outside of your organization

Prerequisites

To be able to use the DEM on your PC, you need to have the following software installed:

  • Python 3.10+
  • Docker Engine 24.0+

โ„น๏ธ Currently only the Linux operating system and the Docker Engine are supported.

Installation

Use the following install script to get the latest version of DEM: curl -fsSL 'https://raw.githubusercontent.com/axem-solutions/dem/main/install-dem.sh' | bash

Alternative installation

If all the prerequisites are fulfilled, the DEM can be installed from the PyPI repository:

pip install axem-dem

โ„น๏ธ The package name is axem-dem, but the command is dem.

Enable autocompletion

After installation, you can enable the autocompletion for bash and zsh shells

dem --install-completion

If the command didn't work, supply your shell type as input parameter (bash or zsh) Note for zsh users: compinit must be called from your .zshrc.

Quick start

We got you covered in all scenarios:

I'd like to start with a template...

Here at axem we'd like to create a template for every target out there. List the currently available ones with:

dem list --all --env

You can clone the selected template with:

dem clone DEV_ENV_NAME

I'd like to work on a project already configured with DEM...

In this case you only need to initialize the Dev Env with:

dem init

I'd like to use a Dev Env someone shared with me...

You can import a Dev Env descriptor JSON with:

dem load DEV_ENV_NAME

I'd like to create my own Dev Env from scratch...

Create a brand new Dev Env with the following command:

dem create DEV_ENV_NAME

Now you have the Dev Env descriptor in your local catalog, but you might want to set a few things:

  • Add/remove tools.
  • Change the tool image for a given tool.
  • Set the host where the image should be placed.

You can edit it the Dev Env with:

dem modify DEV_ENV_NAME

Finally, if you are ready to use it, you can initialize it with:

dem install DEV_ENV_NAME

For more detailed instructions please refer to the Documentation

dem's People

Contributors

janosmurai avatar vezdeneszter avatar magyta93 avatar officialasishkumar avatar chriscarnold avatar rabroldan avatar kabiirk avatar zhreyu 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.