{ "info": { "author": "Jack Ye", "author_email": "kanadash.code@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# GitLake Manifest Specification\n\n[![CircleCI](https://circleci.com/gh/gitlake/gitlake.svg?style=shield)](https://circleci.com/gh/gitlake/gms)\n[![Requirements Status](https://requires.io/github/gitlake/gitlake/requirements.svg?branch=master)](https://requires.io/github/gitlake/gms/requirements/?branch=master)\n[![Maintainability](https://api.codeclimate.com/v1/badges/42a254b3ea5c7d47065e/maintainability)](https://codeclimate.com/github/gitlake/gms/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/42a254b3ea5c7d47065e/test_coverage)](https://codeclimate.com/github/gitlake/gms/test_coverage)\n[![Documentation Status](https://readthedocs.org/projects/gms/badge/?version=latest)](https://gms.readthedocs.io/en/latest/?badge=latest)\n\n`gms` stands for **G**itLake **M**anifest **S**pecification.\nIt is a CLI tool for [GitLake](https://github.com/gitlake/gitlake) users to create and manage personalized manifest specifications.\n\nIf you just started using GitLake, we highly recommend you to use [gitlake-basic-manifest-specification](https://github.com/gitlake/gitlake-basic-manifest-specification).\nWe recommend you to directly contribute to the basic specification if you see any missing feature.\nThis CLI tool is right for you only if you have special security requirement that cannot be satisfied by the basic specification, \nor you would like to build a vendor lock-in of your own manifest format.\n\n## Getting Started\n\n### Installation\n\nInstall `gms` from PyPi:\n\n```bash\npip install gms\n```\n\n### Basic Setup\n\n\nTo create a new manifest specification, first set up your git repository as usual:\n\n```bash\nmkdir my-manifest-specification\ncd my-manifest-specification\ngit init\ngit remote add origin https://github.com/myaccount/my-manifest-specification\n```\n\nThen use `gms` to create the skeleton of a specification:\n\n```bash\ngms init\n```\n\nA specification repository typically looks like:\n\n\n```\n\u251c\u2500\u2500 LICENSE\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 drafts\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 main.v7.json\n\u251c\u2500\u2500 sdks\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 python.json\n\u2514\u2500\u2500 spec.json\n```\n\n- `LICENSE`: the license of the manifest specification\n- `README.md`: a description of the maniest specification\n- `drafts`: a directory that stores different Json schema drafts of the specification\n- `sdks`: a directory that stores different SDKs which processes a manifest of the specification\n- `spec.json`: the metadata of the specification, including name, version, etc.\n\n\n### New Manifest Specification Draft\n\nA manifest specification is defined by a [Json Schema](https://json-schema.org/specification.html). \nA manifest specification draft must comply to a Json Schema draft version.\nBecause the Json schema draft version evolves constantly, this ensures that one specification can support multiple schema drafts.\nTo create a new draft skeleton, run:\n\n```bash\n# create a new manifest specification draft of version 7 (default)\n# read more: https://json-schema.org/draft-07/json-schema-release-notes.html\ngms new draft --version 7\n```\n\nThis will create a new file `main.v7.json` that user can then further define the actual schema.\n\n### New SDK Registration\n\nThe specification itself does not have any way to enforce user compliance.\nTherefore, each specification must come with its set of SDKs.\n\nTo register a new SDK, run:\n\n```bash\ngms new sdk --name python\n```\n\nThis creates a new SDK named `python.json` that user can then further fill in the details of the SDK.\nEach SDK must describe a set of basic operations, with the schema given [here](https://github.com/gitlake/gms/tree/master/src/gms).\n\n### Release Manifest Specification\n\nIn the end, the specification itself cannot be used without SDK support.\nReleasing a specification only means that other people can reference the specification in their own GitLakes.\nThe release process is not managed by `gms`. Instead, it only provides a verification functionality to make sure\nthat the specification repository has the expected structure.\n\nTo run verification, simply execute:\n\n\n```bash\ngms verify\n```\n\nTo actually release the specification, it is the same as pushing the code to a remote git repository:\n\n```bash\ngit add .\ngit commit -m \"created new GitLake manifest specification through gms\"\ngit push -u origin master\n```\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gitlake/gms", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "gms", "package_url": "https://pypi.org/project/gms/", "platform": "", "project_url": "https://pypi.org/project/gms/", "project_urls": { "Changelog": "https://gms.readthedocs.io/en/latest/changelog", "Documentation": "https://gms.readthedocs.io/", "Homepage": "https://github.com/gitlake/gms", "Issue Tracker": "https://github.com/gitlake/gms/issues", "Website": "https://www.gitlake.com" }, "release_url": "https://pypi.org/project/gms/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "GitLake Manifest Specification CLI", "version": "0.0.2" }, "last_serial": 5355858, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b877e2a271947dc45304f334bd9a6cc2", "sha256": "1b7d2e87738226bf0748c20857e8a5d9b90d539577426b45a14342ba69b98b51" }, "downloads": -1, "filename": "gms-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b877e2a271947dc45304f334bd9a6cc2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3901, "upload_time": "2019-06-04T05:12:03", "url": "https://files.pythonhosted.org/packages/7e/a8/b7b112b857d2aa4ba628f60a2bb1fa285e88f9483b6db287a203d2d65084/gms-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c8eecf4f87dd6e4d31e96e1a5d39e82", "sha256": "196a9b01f2902c139987b98824da8408f2908b0856458d3ab613fcf01d94ccee" }, "downloads": -1, "filename": "gms-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8c8eecf4f87dd6e4d31e96e1a5d39e82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2156, "upload_time": "2019-06-04T05:12:06", "url": "https://files.pythonhosted.org/packages/4b/a6/09d83a4e977a6cb41150efa9cb3097f8004d5728a6228d8e022abfa410ce/gms-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0bdf32c690e86c72bcc8d860640f83e6", "sha256": "00abab41164ded9fa5c3a01b073590947d4cbffe01d4b3958455c9798196e6ca" }, "downloads": -1, "filename": "gms-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0bdf32c690e86c72bcc8d860640f83e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5420, "upload_time": "2019-06-04T06:40:25", "url": "https://files.pythonhosted.org/packages/cc/f8/c7e84e796399e81ed9e39cb2bb6112bd09df7a4da492d07012836f3fce9f/gms-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "284ab3e812e40388bde5f995515c94d6", "sha256": "1c6d6db85971587a824fdd6acba6b4f994a0ad51c91188a9211b1ba4094470ea" }, "downloads": -1, "filename": "gms-0.0.2.tar.gz", "has_sig": false, "md5_digest": "284ab3e812e40388bde5f995515c94d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4008, "upload_time": "2019-06-04T06:40:26", "url": "https://files.pythonhosted.org/packages/a0/cf/05602d6921fa421f717fac7ea6e076d99a26a1c1157b3e027be543af1bfc/gms-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0bdf32c690e86c72bcc8d860640f83e6", "sha256": "00abab41164ded9fa5c3a01b073590947d4cbffe01d4b3958455c9798196e6ca" }, "downloads": -1, "filename": "gms-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0bdf32c690e86c72bcc8d860640f83e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5420, "upload_time": "2019-06-04T06:40:25", "url": "https://files.pythonhosted.org/packages/cc/f8/c7e84e796399e81ed9e39cb2bb6112bd09df7a4da492d07012836f3fce9f/gms-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "284ab3e812e40388bde5f995515c94d6", "sha256": "1c6d6db85971587a824fdd6acba6b4f994a0ad51c91188a9211b1ba4094470ea" }, "downloads": -1, "filename": "gms-0.0.2.tar.gz", "has_sig": false, "md5_digest": "284ab3e812e40388bde5f995515c94d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4008, "upload_time": "2019-06-04T06:40:26", "url": "https://files.pythonhosted.org/packages/a0/cf/05602d6921fa421f717fac7ea6e076d99a26a1c1157b3e027be543af1bfc/gms-0.0.2.tar.gz" } ] }