ramp-packer


Nameramp-packer JSON
Version 2.5.8 PyPI version JSON
download
home_page
SummaryPacks for Redis modules into a distributable format
upload_time2023-10-31 11:00:21
maintainer
docs_urlNone
authorRedis OSS
requires_python>=3.7,<4
licenseBSD-2-Clause
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![license](https://img.shields.io/github/license/RedisLabsModules/RAMP.svg)](https://github.com/RedisLabsModules/RAMP)
[![CI](https://github.com/redislabsmodules/ramp/workflows/CI/badge.svg?branch=master)](https://github.com/redislabsmodules/ramp/actions?query=workflow%3ACI+branch%3Amaster)
[![GitHub issues](https://img.shields.io/github/release/RedisLabsModules/RAMP.svg)](https://github.com/RedisLabsModules/RAMP/releases/latest)
[![Codecov](https://codecov.io/gh/RedisLabsModules/RAMP/branch/master/graph/badge.svg)](https://codecov.io/gh/RedisLabsModules/RAMP)


# RAMP

Redis Automatic Module Packaging

Similar to `npm init`, this packer bundles Redis Modules for later distribution.

It gathers information from modules e.g.
module's name, command list, version and additional metadata.

## Prerequisites

Make sure redis-server is on your PATH. GitHub actions install this automatically.

```sh
export PATH=$PATH:<PATH_TO_REDIS>
```

## Install

You can either use pip install or the setup.py script

```sh
pip install ramp-packer
```

```sh
python setup.py install
```

## Usage

## Manifest mode

```sh
ramp pack <PATH_TO_RedisModule.so> -m <PATH_TO_Manifest.yml>
```

manifest.yml should specify your module's attributes, the ones you would specify manualy if you were to use
the Command line mode, see Full usage options and manifest.yml for a reference.

## Command line mode

```sh
ramp pack <PATH_TO_RedisModule.so> -a <author> -e <email> -A <architecture> -d <description> -h <homepage> -l <license> -c <cmdargs> -r <redis-min-version>
```

## Full usage options

```sh
Usage: ramp [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  pack
  unpack
  validate
  version
```

## Packing

```sh
Usage: ramp pack [OPTIONS] MODULE

Options:
  -o, --output TEXT               output file name
  -v, --verbose                   verbose mode: print the resulting metadata
  -m, --manifest FILENAME         generate package from manifest
  -d, --display-name TEXT         name for display purposes
  -a, --author TEXT               module author
  -e, --email TEXT                authors email
  -A, --architecture TEXT         module compiled on i386/x86_64 arch
  -D, --description TEXT          short description
  -h, --homepage TEXT             module homepage
  -l, --license TEXT              license
  -c, --cmdargs TEXT              module command line arguments
  -r, --redis-min-version TEXT    redis minimum version
  -R, --redis-pack-min-version TEXT
                                  redis pack minimum version
  -cc, --config-command TEXT      command to configure module at run time

  -O, --os TEXT                   build target OS (Darwin/Linux)
  -C, --capabilities TEXT         comma seperated list of module capabilities
  --help                          Show this message and exit.
```

## Module Capabilities

Following is a list of capabilities which can be specified for a module

capability | description |
---------- | ----------- |
types | module has its own types and not only operate on existing redis types|
no_multi_key | module has no methods that operate on multiple keys|
replica_of | module can work with replicaof capability when it is loaded into a source or a destination database|
backup_restore | module can work with import/export capability|
eviction_expiry | module is able to handle eviction and expiry without an issue|
reshard_rebalance | module is able to operate in a database that is resharded and rebalanced|
failover_migrate | module is able to operate in a database that is failing over and migrating|
persistence_aof | module is able to operate in a database when database chooses AOF persistence option|
persistence_rdb | module is able to operate in a database when database chooses SNAPSHOT persistence option|
hash_policy | module is able to operate in a database with a user defined HASH POLICY|
flash | module is able to operate in a database with Flash memory is enabled or changed over time|
crdb | module is able to operate in a database with crdt for the default redis data types|
clustering | module is able to operate in a database that is sharded and shards can be migrated|
intershard_tls | module supports two-way encrypted communication between shards|
intershard_tls_pass | module supports `intershard_tls` which requires password
ipv6 | module supports ipv6 communication between shards

## Output

ramp pack generates module.zip

Which contains:

    1. RedisModule.so - original module
    2. Module.json - module's metadata
    3. deps/ - a dir with bundle dependencies (optional) 

## Test
Make sure redis-server is on your PATH

```sh
export PATH=$PATH:<PATH_TO_REDIS>
```

Install RAMP
```sh
python setup.py install
```

Compile RedisGraph for your OS v1.0.12 (https://github.com/RedisLabsModules/RedisGraph/tree/v1.0.12)

Copy `redisgraph.so` in `test_module` directory in the root of this project.

Run tests
```sh
python test.py
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "ramp-packer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<4",
    "maintainer_email": "",
    "keywords": "",
    "author": "Redis OSS",
    "author_email": "oss@redis.com",
    "download_url": "https://files.pythonhosted.org/packages/64/96/dac6fe282a5932ed25eb47a2482a2f401ec8a0f3bef9054235c868cb983b/ramp_packer-2.5.8.tar.gz",
    "platform": null,
    "description": "[![license](https://img.shields.io/github/license/RedisLabsModules/RAMP.svg)](https://github.com/RedisLabsModules/RAMP)\n[![CI](https://github.com/redislabsmodules/ramp/workflows/CI/badge.svg?branch=master)](https://github.com/redislabsmodules/ramp/actions?query=workflow%3ACI+branch%3Amaster)\n[![GitHub issues](https://img.shields.io/github/release/RedisLabsModules/RAMP.svg)](https://github.com/RedisLabsModules/RAMP/releases/latest)\n[![Codecov](https://codecov.io/gh/RedisLabsModules/RAMP/branch/master/graph/badge.svg)](https://codecov.io/gh/RedisLabsModules/RAMP)\n\n\n# RAMP\n\nRedis Automatic Module Packaging\n\nSimilar to `npm init`, this packer bundles Redis Modules for later distribution.\n\nIt gathers information from modules e.g.\nmodule's name, command list, version and additional metadata.\n\n## Prerequisites\n\nMake sure redis-server is on your PATH. GitHub actions install this automatically.\n\n```sh\nexport PATH=$PATH:<PATH_TO_REDIS>\n```\n\n## Install\n\nYou can either use pip install or the setup.py script\n\n```sh\npip install ramp-packer\n```\n\n```sh\npython setup.py install\n```\n\n## Usage\n\n## Manifest mode\n\n```sh\nramp pack <PATH_TO_RedisModule.so> -m <PATH_TO_Manifest.yml>\n```\n\nmanifest.yml should specify your module's attributes, the ones you would specify manualy if you were to use\nthe Command line mode, see Full usage options and manifest.yml for a reference.\n\n## Command line mode\n\n```sh\nramp pack <PATH_TO_RedisModule.so> -a <author> -e <email> -A <architecture> -d <description> -h <homepage> -l <license> -c <cmdargs> -r <redis-min-version>\n```\n\n## Full usage options\n\n```sh\nUsage: ramp [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  pack\n  unpack\n  validate\n  version\n```\n\n## Packing\n\n```sh\nUsage: ramp pack [OPTIONS] MODULE\n\nOptions:\n  -o, --output TEXT               output file name\n  -v, --verbose                   verbose mode: print the resulting metadata\n  -m, --manifest FILENAME         generate package from manifest\n  -d, --display-name TEXT         name for display purposes\n  -a, --author TEXT               module author\n  -e, --email TEXT                authors email\n  -A, --architecture TEXT         module compiled on i386/x86_64 arch\n  -D, --description TEXT          short description\n  -h, --homepage TEXT             module homepage\n  -l, --license TEXT              license\n  -c, --cmdargs TEXT              module command line arguments\n  -r, --redis-min-version TEXT    redis minimum version\n  -R, --redis-pack-min-version TEXT\n                                  redis pack minimum version\n  -cc, --config-command TEXT      command to configure module at run time\n\n  -O, --os TEXT                   build target OS (Darwin/Linux)\n  -C, --capabilities TEXT         comma seperated list of module capabilities\n  --help                          Show this message and exit.\n```\n\n## Module Capabilities\n\nFollowing is a list of capabilities which can be specified for a module\n\ncapability | description |\n---------- | ----------- |\ntypes | module has its own types and not only operate on existing redis types|\nno_multi_key | module has no methods that operate on multiple keys|\nreplica_of | module can work with replicaof capability when it is loaded into a source or a destination database|\nbackup_restore | module can work with import/export capability|\neviction_expiry | module is able to handle eviction and expiry without an issue|\nreshard_rebalance | module is able to operate in a database that is resharded and rebalanced|\nfailover_migrate | module is able to operate in a database that is failing over and migrating|\npersistence_aof | module is able to operate in a database when database chooses AOF persistence option|\npersistence_rdb | module is able to operate in a database when database chooses SNAPSHOT persistence option|\nhash_policy | module is able to operate in a database with a user defined HASH POLICY|\nflash | module is able to operate in a database with Flash memory is enabled or changed over time|\ncrdb | module is able to operate in a database with crdt for the default redis data types|\nclustering | module is able to operate in a database that is sharded and shards can be migrated|\nintershard_tls | module supports two-way encrypted communication between shards|\nintershard_tls_pass | module supports `intershard_tls` which requires password\nipv6 | module supports ipv6 communication between shards\n\n## Output\n\nramp pack generates module.zip\n\nWhich contains:\n\n    1. RedisModule.so - original module\n    2. Module.json - module's metadata\n    3. deps/ - a dir with bundle dependencies (optional) \n\n## Test\nMake sure redis-server is on your PATH\n\n```sh\nexport PATH=$PATH:<PATH_TO_REDIS>\n```\n\nInstall RAMP\n```sh\npython setup.py install\n```\n\nCompile RedisGraph for your OS v1.0.12 (https://github.com/RedisLabsModules/RedisGraph/tree/v1.0.12)\n\nCopy `redisgraph.so` in `test_module` directory in the root of this project.\n\nRun tests\n```sh\npython test.py\n```\n",
    "bugtrack_url": null,
    "license": "BSD-2-Clause",
    "summary": "Packs for Redis modules into a distributable format",
    "version": "2.5.8",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fe8ed43cd7234176a253f4625fd138dfb968603121626cc9277aabe73836ff36",
                "md5": "a5bcba52b44d2c241a36f8513ed10aa7",
                "sha256": "de073b0ccebea1d7104daec26d3ec7408c801ad9170c766e3be62e914baac3bf"
            },
            "downloads": -1,
            "filename": "ramp_packer-2.5.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a5bcba52b44d2c241a36f8513ed10aa7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7,<4",
            "size": 15738,
            "upload_time": "2023-10-31T11:00:18",
            "upload_time_iso_8601": "2023-10-31T11:00:18.989019Z",
            "url": "https://files.pythonhosted.org/packages/fe/8e/d43cd7234176a253f4625fd138dfb968603121626cc9277aabe73836ff36/ramp_packer-2.5.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6496dac6fe282a5932ed25eb47a2482a2f401ec8a0f3bef9054235c868cb983b",
                "md5": "d874d3bb6d42736dfd0360505cf4cf92",
                "sha256": "4d70e5b1e4da94758fbb5c742b3215054c5f9a48b810b22df33e9592725960a2"
            },
            "downloads": -1,
            "filename": "ramp_packer-2.5.8.tar.gz",
            "has_sig": false,
            "md5_digest": "d874d3bb6d42736dfd0360505cf4cf92",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7,<4",
            "size": 12608,
            "upload_time": "2023-10-31T11:00:21",
            "upload_time_iso_8601": "2023-10-31T11:00:21.077055Z",
            "url": "https://files.pythonhosted.org/packages/64/96/dac6fe282a5932ed25eb47a2482a2f401ec8a0f3bef9054235c868cb983b/ramp_packer-2.5.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-31 11:00:21",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ramp-packer"
}
        
Elapsed time: 0.12940s