axem-dem


Nameaxem-dem JSON
Version 0.8.0 PyPI version JSON
download
home_pagehttps://axemsolutions.io/
SummaryManager for Containerized Development Environments
upload_time2024-11-13 17:54:23
maintainerNone
docs_urlNone
authorJanos Murai
requires_python<4.0,>=3.10
licenseEclipse Public License - v2.0
keywords iot embedded edge development environment tools containers
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
    <picture>
        <source media="(prefers-color-scheme: dark)" srcset="docs/wp-content/dem_logo_dark.png">
        <img alt="DEM logo" src="docs/wp-content/dem_logo_light.png" width="150">
    </picture>
</div>

<br>

<h1 align="center">
    Development Environment Manager <br /> for <br /> Embedded Development
</h1>

<h3 align="center">
Manage your isolated Development Environments with ease
</h3>
<br />

<p align="center">
    <a href="https://github.com/axem-solutions/dem/tags" target="_blank"><img src="https://img.shields.io/github/v/tag/axem-solutions/dem?logo=github&color=79A7B5&link=https%3A%2F%2Fgithub.com%2Faxem-solutions%2Fdem%2Freleases" alt="GitHub tag (with filter)"/></a>
    <a href="https://github.com/axem-solutions/dem/issues" target="_blank"><img src="https://img.shields.io/github/issues/axem-solutions/dem?logo=github&color=2ea087&link=https%3A%2F%2Fgithub.com%2Faxem-solutions%2Fdem%2Fissues" alt="GitHub issues"/></a>
    <a href="https://discord.com/invite/Nv6hSzXruK" target="_blank"><img src="https://img.shields.io/discord/1156270239860920431?logo=discord&color=2C2F33&link=https%3A%2F%2Fdiscord.com%2Finvite%Nv6hSzXruK" alt="Discord"/></a>
</p>

<br />

<h3 align="center">
:star2: Join our Community on  <a href="https://discord.com/invite/Nv6hSzXruK">Discord</a> :star2:
</h3>

<br />

## Overview

<p align="center">
<strong>
<a href="https://www.axemsolutions.io/dem_doc/index.html">Documentation</a> • <a href="https://www.axemsolutions.io/tutorial/index.html">Tutorial</a> • 
<a href="https://github.com/axem-solutions/.github/blob/4bdc1be72b0a2c97da19408c59d6dd5d1845a469/CONTRIBUTING.md">Contribution Guide</a> • 
<a href="https://github.com/axem-solutions/.github/blob/4bdc1be72b0a2c97da19408c59d6dd5d1845a469/SUPPORT.md">Support</a>
</strong>
</p>

**DEM** is a command-line tool that provides an easy, reproducible, and scalable way to set up 
multi-container-based Development Environments (DevEnvs for short) for software development.

> DEM is currently in alpha state, so expect major changes in the future!

<p align="center">
Contributors and early adopters are welcome!
</p>

## Key features

- Create scalable, reliable, and reproducible containerized Development Environments where each tool 
is isolated in its own container.
- Install preconfigured Development Environments from catalogs.
- Ensure that everyone on your team works with the same toolset.

## How is DEM Different?
Unlike other container-based development environments that pack all tools into a single image 
requiring users to enter the container via an interactive shell, DEM creates a separate container 
for each tool. This allows you to work on your host system with your usual setup while the 
development-specific tools are isolated in containers.

## Prerequisites

Linux and Windows are supported.

:information_source: macOS is not yet officially supported. However, if all prerequisites are met, 
DEM should work on macOS as well.

DEM depends on Python and Docker. Ensure you have the following versions:

- Python 3.10+
- Docker Engine 24.0+

## Installation

First, install Python and Docker if you haven't already:

- [Python](https://www.python.org/downloads/)
- [Docker](https://docs.docker.com/get-docker/)

Make sure to include **pip** during Python installation.

Install DEM from the PyPI repository using:

    pip install axem-dem

- The package name is 'axem-dem', but the command is `dem`.
- Ensure the Docker daemon is running before using DEM.

### Enable Autocompletion

Enable autocompletion for PowerShell, Bash, and Zsh shells:

    dem --install-completion

If the command doesn't work, specify your shell type as an input parameter (powershell, 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...

DEM comes with a few templates available from the `axem` catalog. List them with:

    dem list --cat axem

Clone the selected template:

    dem clone DEV_ENV_NAME

Replace DEV_ENV_NAME with the name of the Development Environment you want to clone.

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

Enter the project's root directory and initialize the DevEnv:

    dem init

### I'd like to use a DevEnv someone shared with me...

Import a DevEnv descriptor JSON:

    dem import PATH_TO_DEV_ENV

where PATH_TO_DEV_ENV is the path to the JSON file.

### I'd like to create my own DevEnv from scratch...

Create a new DevEnv:

    dem create DEV_ENV_NAME

Customize your DevEnv:
- Add or remove tools.
- Change the tool image for a given tool.

You can edit the DevEnv with:

    dem modify DEV_ENV_NAME

Finally, if you are ready to use the Development Environment, install it with:

    dem install DEV_ENV_NAME

>For more detailed instructions please refer to the
[Documentation](https://www.axemsolutions.io/dem_doc/index.html)

## The Concept in a Nutshell
A Development Environment (DevEnv) is a set of software tools used for a specific development 
project (e.g., build system, debugger, test framework).

The idea is to pack the tools separately into container images, which are then can be stored in 
registries.

Each DevEnv has a descriptor, like a blueprint, indicating which tools are required.

![DevEnv descriptor](/docs/wp-content/dev_env_descriptor.png)

Sample descriptors can be stored in the Development Environment **Catalogs**. You can browse these 
catalogs and download a copy of the Development Environment descriptor to your local catalog.

![Catalogs](/docs/wp-content/dem_catalogs.png)

A DevEnv can be installed from your local catalog.

![DevEnv installation](/docs/wp-content/dev_env_installation.png)

            

Raw data

            {
    "_id": null,
    "home_page": "https://axemsolutions.io/",
    "name": "axem-dem",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "iot, embedded, edge, development environment, tools, containers",
    "author": "Janos Murai",
    "author_email": "janos.murai@axemsolutions.io",
    "download_url": "https://files.pythonhosted.org/packages/e6/07/a221cb7c5921fd22c32163f36b29ff548e63e6d37e5f2f16dd4312f373a2/axem_dem-0.8.0.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n    <picture>\n        <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/wp-content/dem_logo_dark.png\">\n        <img alt=\"DEM logo\" src=\"docs/wp-content/dem_logo_light.png\" width=\"150\">\n    </picture>\n</div>\n\n<br>\n\n<h1 align=\"center\">\n    Development Environment Manager <br /> for <br /> Embedded Development\n</h1>\n\n<h3 align=\"center\">\nManage your isolated Development Environments with ease\n</h3>\n<br />\n\n<p align=\"center\">\n    <a href=\"https://github.com/axem-solutions/dem/tags\" target=\"_blank\"><img src=\"https://img.shields.io/github/v/tag/axem-solutions/dem?logo=github&color=79A7B5&link=https%3A%2F%2Fgithub.com%2Faxem-solutions%2Fdem%2Freleases\" alt=\"GitHub tag (with filter)\"/></a>\n    <a href=\"https://github.com/axem-solutions/dem/issues\" target=\"_blank\"><img src=\"https://img.shields.io/github/issues/axem-solutions/dem?logo=github&color=2ea087&link=https%3A%2F%2Fgithub.com%2Faxem-solutions%2Fdem%2Fissues\" alt=\"GitHub issues\"/></a>\n    <a href=\"https://discord.com/invite/Nv6hSzXruK\" target=\"_blank\"><img src=\"https://img.shields.io/discord/1156270239860920431?logo=discord&color=2C2F33&link=https%3A%2F%2Fdiscord.com%2Finvite%Nv6hSzXruK\" alt=\"Discord\"/></a>\n</p>\n\n<br />\n\n<h3 align=\"center\">\n:star2: Join our Community on  <a href=\"https://discord.com/invite/Nv6hSzXruK\">Discord</a> :star2:\n</h3>\n\n<br />\n\n## Overview\n\n<p align=\"center\">\n<strong>\n<a href=\"https://www.axemsolutions.io/dem_doc/index.html\">Documentation</a> \u2022 <a href=\"https://www.axemsolutions.io/tutorial/index.html\">Tutorial</a> \u2022 \n<a href=\"https://github.com/axem-solutions/.github/blob/4bdc1be72b0a2c97da19408c59d6dd5d1845a469/CONTRIBUTING.md\">Contribution Guide</a> \u2022 \n<a href=\"https://github.com/axem-solutions/.github/blob/4bdc1be72b0a2c97da19408c59d6dd5d1845a469/SUPPORT.md\">Support</a>\n</strong>\n</p>\n\n**DEM** is a command-line tool that provides an easy, reproducible, and scalable way to set up \nmulti-container-based Development Environments (DevEnvs for short) for software development.\n\n> DEM is currently in alpha state, so expect major changes in the future!\n\n<p align=\"center\">\nContributors and early adopters are welcome!\n</p>\n\n## Key features\n\n- Create scalable, reliable, and reproducible containerized Development Environments where each tool \nis isolated in its own container.\n- Install preconfigured Development Environments from catalogs.\n- Ensure that everyone on your team works with the same toolset.\n\n## How is DEM Different?\nUnlike other container-based development environments that pack all tools into a single image \nrequiring users to enter the container via an interactive shell, DEM creates a separate container \nfor each tool. This allows you to work on your host system with your usual setup while the \ndevelopment-specific tools are isolated in containers.\n\n## Prerequisites\n\nLinux and Windows are supported.\n\n:information_source: macOS is not yet officially supported. However, if all prerequisites are met, \nDEM should work on macOS as well.\n\nDEM depends on Python and Docker. Ensure you have the following versions:\n\n- Python 3.10+\n- Docker Engine 24.0+\n\n## Installation\n\nFirst, install Python and Docker if you haven't already:\n\n- [Python](https://www.python.org/downloads/)\n- [Docker](https://docs.docker.com/get-docker/)\n\nMake sure to include **pip** during Python installation.\n\nInstall DEM from the PyPI repository using:\n\n    pip install axem-dem\n\n- The package name is 'axem-dem', but the command is `dem`.\n- Ensure the Docker daemon is running before using DEM.\n\n### Enable Autocompletion\n\nEnable autocompletion for PowerShell, Bash, and Zsh shells:\n\n    dem --install-completion\n\nIf the command doesn't work, specify your shell type as an input parameter (powershell, bash, or zsh).\n\n> **Note for Zsh users:** `compinit` must be called from your .zshrc.\n\n## Quick start\n\nWe got you covered in all scenarios!\n\n### I'd like to start with a template...\n\nDEM comes with a few templates available from the `axem` catalog. List them with:\n\n    dem list --cat axem\n\nClone the selected template:\n\n    dem clone DEV_ENV_NAME\n\nReplace DEV_ENV_NAME with the name of the Development Environment you want to clone.\n\n### I'd like to work on a project already configured with DEM...\n\nEnter the project's root directory and initialize the DevEnv:\n\n    dem init\n\n### I'd like to use a DevEnv someone shared with me...\n\nImport a DevEnv descriptor JSON:\n\n    dem import PATH_TO_DEV_ENV\n\nwhere PATH_TO_DEV_ENV is the path to the JSON file.\n\n### I'd like to create my own DevEnv from scratch...\n\nCreate a new DevEnv:\n\n    dem create DEV_ENV_NAME\n\nCustomize your DevEnv:\n- Add or remove tools.\n- Change the tool image for a given tool.\n\nYou can edit the DevEnv with:\n\n    dem modify DEV_ENV_NAME\n\nFinally, if you are ready to use the Development Environment, install it with:\n\n    dem install DEV_ENV_NAME\n\n>For more detailed instructions please refer to the\n[Documentation](https://www.axemsolutions.io/dem_doc/index.html)\n\n## The Concept in a Nutshell\nA Development Environment (DevEnv) is a set of software tools used for a specific development \nproject (e.g., build system, debugger, test framework).\n\nThe idea is to pack the tools separately into container images, which are then can be stored in \nregistries.\n\nEach DevEnv has a descriptor, like a blueprint, indicating which tools are required.\n\n![DevEnv descriptor](/docs/wp-content/dev_env_descriptor.png)\n\nSample descriptors can be stored in the Development Environment **Catalogs**. You can browse these \ncatalogs and download a copy of the Development Environment descriptor to your local catalog.\n\n![Catalogs](/docs/wp-content/dem_catalogs.png)\n\nA DevEnv can be installed from your local catalog.\n\n![DevEnv installation](/docs/wp-content/dev_env_installation.png)\n",
    "bugtrack_url": null,
    "license": "Eclipse Public License - v2.0",
    "summary": "Manager for Containerized Development Environments",
    "version": "0.8.0",
    "project_urls": {
        "Documentation": "https://axemsolutions.io/dem_doc/",
        "Homepage": "https://axemsolutions.io/",
        "Repository": "https://github.com/axem-solutions/dem"
    },
    "split_keywords": [
        "iot",
        " embedded",
        " edge",
        " development environment",
        " tools",
        " containers"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c43ca143b06f3c60f1a51e8aa7f00f7d32d889cccf6cc710eae2853c4ebe801",
                "md5": "66001c6e513092724ee86f1cedb6a17e",
                "sha256": "6d2abc5042f48b859511538a795a693bb44e04add808bb1e5dbaebf8ea8abc37"
            },
            "downloads": -1,
            "filename": "axem_dem-0.8.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "66001c6e513092724ee86f1cedb6a17e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 57106,
            "upload_time": "2024-11-13T17:54:22",
            "upload_time_iso_8601": "2024-11-13T17:54:22.284833Z",
            "url": "https://files.pythonhosted.org/packages/9c/43/ca143b06f3c60f1a51e8aa7f00f7d32d889cccf6cc710eae2853c4ebe801/axem_dem-0.8.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e607a221cb7c5921fd22c32163f36b29ff548e63e6d37e5f2f16dd4312f373a2",
                "md5": "7f695e2e6bd9f72e8640ebca83ef4d3c",
                "sha256": "367d82c4dbe8ccace4e9fb45191f48da49ff95b3026f53f5293b53fa07dad0fd"
            },
            "downloads": -1,
            "filename": "axem_dem-0.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7f695e2e6bd9f72e8640ebca83ef4d3c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 39631,
            "upload_time": "2024-11-13T17:54:23",
            "upload_time_iso_8601": "2024-11-13T17:54:23.271854Z",
            "url": "https://files.pythonhosted.org/packages/e6/07/a221cb7c5921fd22c32163f36b29ff548e63e6d37e5f2f16dd4312f373a2/axem_dem-0.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-13 17:54:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "axem-solutions",
    "github_project": "dem",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "axem-dem"
}
        
Elapsed time: 1.20866s