{ "info": { "author": "Igor Aleksanov", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Security :: Cryptography" ], "description": "# Exonum deployment precheck script\n\n`exonum_precheck` is a script which verifies that all the expected checks are OK for code you're about to push.\nIt is supposed that you'll run this script before every push at the [Exonum](https://github.com/exonum/exonum) repository.\n\nThis command loads `.travis.yml` and performs all the checks (tests and lints) exactly as they will be performed on the CI server.\nAlso if installed rustc version doesn't match the one in the travis config, a warning will be shown.\n\n## Prerequirements\n\nYou should have `clippy`, `rustfmt`, `deadlinks`, `cspell` and `md` installed:\n\n```sh\ncargo install cargo-deadlinks\nrustup component add rustfmt\nrustup component add clippy\nnpm install cspell\nnpm install md\n```\n\n## Example\n\n```sh\ncd exonum_folder\npython3 -m exonum_precheck\n```\n\nExample output (actually it's colored):\n```sh\n Tests results:\n Error: cargo test --all\n Success: cargo run -p exonum --example explorer\n Success: cargo run -p exonum-testkit --example timestamping\n Success: cargo run -p exonum-time --example simple_service\n Lints results:\n Success: npm run cspell\n Success: npm run md\n Success: cargo clippy --all --benches --features \"long_benchmarks\"\n Success: cargo fmt --all -- --check\n Success: cargo clean --doc\n Success: cargo doc --no-deps\n Success: mkdir -p target/doc/exonum_configuration\n Success: mkdir -p target/std/string\n Success: touch target/std/string/struct.String.html\n Success: touch target/std/primitive.usize.html\n Success: touch target/doc/enum.HashTag.html\n Success: cargo deadlinks --dir target/doc\n```\n\nYou can also specify jobs to run manually.\n\n```sh\npython3 -m exonum_precheck --jobs linux-tests sample-job lints tests\n```\n\nThose jobs will be executed instead of default ones (\"unit-test\", \"lints\") in the provided order.\n\nThis maybe helpful if you want to use this script on another repository.\n\n## Using as a git hook\n\nThis script can be also used as a prepush hook:\n```sh\necho '#!/bin/sh\\npython3 -m exonum_precheck || exit 1\\n' > ./exonum_folder/.git/hooks/pre-push\nchmod +x ./exonum_folder/.git/hooks/pre-push\n```\n\nWith that hook you won't be able to push unless all the expected CI checks are passed.\nHowever, be careful: if you're going to work on a work-in-progress branch which'll have broken tests, you'll have to temporary remove the hook.\n\nExample of more advanced hook:\n\n```sh\n#!/bin/sh\nnpm install && git checkout package-lock.json package.json\n\nexport RUST_BACKTRACE=0\nexport RUST_LOG=off\nexport RUST_TEST_THREADS=4\nexport CARGO_BUILD_JOBS=4\nulimit -n 2048\n\npython3 -m exonum_precheck || exit 1\n```\n\n## Installing\n\nInstall and update using [pip](https://pip.pypa.io/en/stable/quickstart/):\n\n```\npip install -U exonum_precheck\n```\n\n## LICENSE\n\n`exonum_precheck` is licensed under the MIT License.\nSee [LICENSE](LICENSE) for details.\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/popzxc/exonum_precheck", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "exonum-precheck", "package_url": "https://pypi.org/project/exonum-precheck/", "platform": "", "project_url": "https://pypi.org/project/exonum-precheck/", "project_urls": { "Homepage": "https://github.com/popzxc/exonum_precheck" }, "release_url": "https://pypi.org/project/exonum-precheck/0.1.5/", "requires_dist": [ "pyyaml" ], "requires_python": ">=3.4", "summary": "Exonum precheck deployment script", "version": "0.1.5" }, "last_serial": 5834353, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "77774b15ba8300b1e9407c0d73685779", "sha256": "6f87944fcfddbd1d6a5185ced5e2ff3cbf96a788988f1f1ede4059f9ca8dce41" }, "downloads": -1, "filename": "exonum_precheck-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "77774b15ba8300b1e9407c0d73685779", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 4512, "upload_time": "2019-09-10T13:09:07", "url": "https://files.pythonhosted.org/packages/f3/69/48f4c32d931c97e8539a663c7daa4462fb6f734996e65b31e3115eed01b4/exonum_precheck-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "358b7a8026a19e9e8db8a2e50030248a", "sha256": "67c9632076857cbe3e98875c5a497ccefc4e44db33066f150e9b5373af2ab8eb" }, "downloads": -1, "filename": "exonum_precheck-0.1.1.tar.gz", "has_sig": false, "md5_digest": "358b7a8026a19e9e8db8a2e50030248a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 3204, "upload_time": "2019-09-10T13:09:08", "url": "https://files.pythonhosted.org/packages/d7/20/a675fcc1c26b40c7629f1a0ae4f0111690abbde6d0239f6b39e4297a5364/exonum_precheck-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "cba75a60c95e3c78c995ea8f4b1ae798", "sha256": "d1fc858542401a370feec17bfc8f6595cdc4753ee5af169680f58735c2feb590" }, "downloads": -1, "filename": "exonum_precheck-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cba75a60c95e3c78c995ea8f4b1ae798", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 4537, "upload_time": "2019-09-10T13:49:15", "url": "https://files.pythonhosted.org/packages/d7/b6/f1afa22e461a5f3af4a80367203287223c612b31674784b6741e7a686cf3/exonum_precheck-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "437fecfbbabc19f2e7e4c172522e851c", "sha256": "cd9a4701a0e6c4aee672b23f1889bf04c878658cded9ce2866231dfc2f89f9a3" }, "downloads": -1, "filename": "exonum_precheck-0.1.2.tar.gz", "has_sig": false, "md5_digest": "437fecfbbabc19f2e7e4c172522e851c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 3218, "upload_time": "2019-09-10T13:49:17", "url": "https://files.pythonhosted.org/packages/ec/cd/3e7239bece524196d92d16cee306ab447f57cee966e40451e3be27040fe4/exonum_precheck-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "9ad988c30741b9faf2895a0fd6636bba", "sha256": "5062270e05ca16ab757fe9766e649da9e730a0792d359455e8f4c9dfae93ccb3" }, "downloads": -1, "filename": "exonum_precheck-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "9ad988c30741b9faf2895a0fd6636bba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 4547, "upload_time": "2019-09-11T11:30:05", "url": "https://files.pythonhosted.org/packages/3c/f9/6edd1a089f5dc90515ecdebc8d65c0c36813a856ad683d22d479512e96d9/exonum_precheck-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "591a9dc7103492353a4394d433cbf26e", "sha256": "789a9ec3bfcfc57e82382b713750bdb9cda26dee5b9e3e4a2a129f030d55625d" }, "downloads": -1, "filename": "exonum_precheck-0.1.3.tar.gz", "has_sig": false, "md5_digest": "591a9dc7103492353a4394d433cbf26e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 3241, "upload_time": "2019-09-11T11:30:07", "url": "https://files.pythonhosted.org/packages/0a/8f/2b159bfc8647734dd87d3e7ddd50ef032c6386103b7e16a0a1f306d305cf/exonum_precheck-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "4368a9c5c607e1bcf4105e62e8998a5c", "sha256": "b6f80c64c581e3df638fead5c321d77247d65bda093b71d0e72bd6e80d79b239" }, "downloads": -1, "filename": "exonum_precheck-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4368a9c5c607e1bcf4105e62e8998a5c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 4993, "upload_time": "2019-09-11T12:48:23", "url": "https://files.pythonhosted.org/packages/3b/c3/e7f1e350475d17c22d34d68c32e8d896e28c57986a8e7e1e7d9cb1917415/exonum_precheck-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75ef6da2acfbdd9f991fa0079c556652", "sha256": "b9261a9d2089bc3c221538afd466189315e0f3089d4b848d2c316458ecf12504" }, "downloads": -1, "filename": "exonum_precheck-0.1.4.tar.gz", "has_sig": false, "md5_digest": "75ef6da2acfbdd9f991fa0079c556652", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 3705, "upload_time": "2019-09-11T12:48:24", "url": "https://files.pythonhosted.org/packages/46/36/cdd6431a717dfe44b6b4f6e79de177224af740f766f428ac2786a6d97355/exonum_precheck-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "d2991de3183774ec9bfd3f2464a0fad9", "sha256": "1b99c2cc872c5fc334a5c5027c99bed43373edef8a82fee53142d81ed46dc19b" }, "downloads": -1, "filename": "exonum_precheck-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d2991de3183774ec9bfd3f2464a0fad9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 5027, "upload_time": "2019-09-16T06:52:41", "url": "https://files.pythonhosted.org/packages/19/d9/e7e6e04a00998611544bfb72fa54fafdb9114393538d627a585e2495e392/exonum_precheck-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "098bb1fbd0bd56dfeb03b3bc327d56a9", "sha256": "84835d678959bfd888f8bc8801af6d156e040e23685d3e4b5e4b8d7b43c7ad76" }, "downloads": -1, "filename": "exonum_precheck-0.1.5.tar.gz", "has_sig": false, "md5_digest": "098bb1fbd0bd56dfeb03b3bc327d56a9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 3741, "upload_time": "2019-09-16T06:52:43", "url": "https://files.pythonhosted.org/packages/d7/42/40bbd8e9b77631e8c4105af907709da8fa3dcf4ab7bd77370cf824317193/exonum_precheck-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d2991de3183774ec9bfd3f2464a0fad9", "sha256": "1b99c2cc872c5fc334a5c5027c99bed43373edef8a82fee53142d81ed46dc19b" }, "downloads": -1, "filename": "exonum_precheck-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d2991de3183774ec9bfd3f2464a0fad9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 5027, "upload_time": "2019-09-16T06:52:41", "url": "https://files.pythonhosted.org/packages/19/d9/e7e6e04a00998611544bfb72fa54fafdb9114393538d627a585e2495e392/exonum_precheck-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "098bb1fbd0bd56dfeb03b3bc327d56a9", "sha256": "84835d678959bfd888f8bc8801af6d156e040e23685d3e4b5e4b8d7b43c7ad76" }, "downloads": -1, "filename": "exonum_precheck-0.1.5.tar.gz", "has_sig": false, "md5_digest": "098bb1fbd0bd56dfeb03b3bc327d56a9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 3741, "upload_time": "2019-09-16T06:52:43", "url": "https://files.pythonhosted.org/packages/d7/42/40bbd8e9b77631e8c4105af907709da8fa3dcf4ab7bd77370cf824317193/exonum_precheck-0.1.5.tar.gz" } ] }