{ "info": { "author": "OpenStack", "author_email": "openstack-dev@lists.openstack.org", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5" ], "description": "Stackalytics\n============\n\nApplication Features\n--------------------\nStackalytics is a service that automatically analyzes OpenStack\ndevelopment activities and displays statistics on contribution. The features are:\n * Extraction of author information from git log, store it in the database;\n * Calculate metrics on number of lines changed (LOC) and commits;\n * Mapping authors to companies and launchpad ids;\n * Filter statistics by time, modules, companies, authors;\n * Extract blueprint and bug ids from commit messages;\n * Auto-update of database.\n\nQuickstart\n----------\n\nTo run Stackalytics, you first need to create two kind of configuration files.\nThe one is default_data.json which shows which sources(git repo, ml, etc.) need\nto be analyzed. Another is stackalytics.conf which shows basic configuration like\nHTTP listening host and port, etc. Stackalytics repository contains the default\nfiles of these configuration under etc/ directory. It would be useful to copy and\nchange them as you like.\n\n#. You need to install Stackalytics. This is done with pip after you check out\n Stackalytics repository::\n\n $ git clone https://git.openstack.org/openstack/stackalytics\n $ cd stackalytics\n $ sudo pip install -r requirements.txt\n $ sudo python setup.py install\n\n#. Install and run memcached DB::\n\n $ sudo apt-get install memcached\n $ memcached -u memcache -d\n\n#. Analyze data which are specifed on default_data.json and store the data into memcached DB::\n\n $ stackalytics-processor\n\n#. Start HTTP server of Stackalytics::\n\n $ stackalytics-dashboard\n\n#. Users can access Stackalytics site on http://127.0.0.1:8080 as the default.\n\n\nProject Info\n------------\n\n * Web-site: http://stackalytics.com/\n * Source Code: https://git.openstack.org/cgit/openstack/stackalytics\n * Wiki: https://wiki.openstack.org/wiki/Stackalytics\n * Launchpad: https://launchpad.net/stackalytics\n * Blueprints: https://blueprints.launchpad.net/stackalytics\n * Bugs: https://bugs.launchpad.net/stackalytics\n * Code Reviews: https://review.openstack.org/#/q/status:open+project:openstack/stackalytics,n,z\n * IRC: #openstack-stackalytics at freenode\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.openstack.org/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "stackalytics", "package_url": "https://pypi.org/project/stackalytics/", "platform": "", "project_url": "https://pypi.org/project/stackalytics/", "project_urls": { "Homepage": "https://www.openstack.org/" }, "release_url": "https://pypi.org/project/stackalytics/1.0.0/", "requires_dist": [ "pbr (>=2.0.0)", "Babel (>=2.3.4)", "Flask (!=0.11,<1.0,>=0.10)", "iso8601 (>=0.1.11)", "jsonschema (!=2.5.0,<3.0.0,>=2.0.0)", "oslo.config (>=3.22.0)", "oslo.i18n (>=2.1.0)", "oslo.log (>=3.22.0)", "oslo.serialization (>=1.10.0)", "oslo.utils (>=3.20.0)", "paramiko (>=2.0)", "psutil (>=3.2.2)", "PyGithub", "python-memcached (>=1.56)", "PyYAML (>=3.10.0)", "requests (!=2.12.2,!=2.13.0,>=2.10.0)", "requests-file", "sh", "six (>=1.9.0)" ], "requires_python": "", "summary": "OpenStack Contribution Dashboard", "version": "1.0.0" }, "last_serial": 4416572, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "3d4ab9ecbde64e3278d82920f6ac1833", "sha256": "b6cfd9c23bf8b2406a09fe62e6efd71bc2c9511da7506acd3755b5ca5a5899e8" }, "downloads": -1, "filename": "stackalytics-0.5.tar.gz", "has_sig": false, "md5_digest": "3d4ab9ecbde64e3278d82920f6ac1833", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 379286, "upload_time": "2014-05-15T09:36:56", "url": "https://files.pythonhosted.org/packages/95/63/8b532c1293a12790fe7c08d78fb6288d3806bfd91d31a8e021a050192f0b/stackalytics-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "7b80ca8f685a3f23ed02c24786f8f9aa", "sha256": "26dfd33e5d1c29c2a28e307402ca2de7127c7d5188b7b33d94b56867b07f1d75" }, "downloads": -1, "filename": "stackalytics-0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "7b80ca8f685a3f23ed02c24786f8f9aa", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 822744, "upload_time": "2014-06-25T06:49:49", "url": "https://files.pythonhosted.org/packages/f2/44/e899fc08c4cebe33c30e51a4fe1c5804ee26368203df790b3577fdf1400a/stackalytics-0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4afaaed6d358b76578c37d280d2b7494", "sha256": "4f406650eaaa99537fce5707acbd00f87967bb4dcd58dea43238c8516f634e45" }, "downloads": -1, "filename": "stackalytics-0.6.tar.gz", "has_sig": false, "md5_digest": "4afaaed6d358b76578c37d280d2b7494", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 481871, "upload_time": "2014-06-25T06:49:46", "url": "https://files.pythonhosted.org/packages/9e/22/dfe58b1f607575e2cc10b4fe77140a3dfc21efa931e432bcc248883bb5aa/stackalytics-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "6b0a1611dc6fcfeefe07b55a951c6815", "sha256": "46e6a19140bc148a6d1cd6ace06a474f6e02ffbdd01ef00f61c0c69c9e9260cd" }, "downloads": -1, "filename": "stackalytics-0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "6b0a1611dc6fcfeefe07b55a951c6815", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 884772, "upload_time": "2014-12-29T12:19:41", "url": "https://files.pythonhosted.org/packages/6c/fa/497c9047ecab21f0d7eded1339cca16994fd60f3656cfa8752fd9122339d/stackalytics-0.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fde500aa7de6e9609cf48c909bcf3cd", "sha256": "a24adeb409ec79bd40863222c8d5bebb4f8be4328c47eb3c99ac3fe4b0ffabd9" }, "downloads": -1, "filename": "stackalytics-0.7.tar.gz", "has_sig": false, "md5_digest": "7fde500aa7de6e9609cf48c909bcf3cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 545446, "upload_time": "2014-12-29T12:19:44", "url": "https://files.pythonhosted.org/packages/28/76/10580e1120ca1a084c84be9499382d2610403be1a377894abdeda77a21d6/stackalytics-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "f64c9c3889aa56ef2421679fbe093df7", "sha256": "8f77effa3ed3f73767408afd5f4f52c46fb4cd5b8bbb23f84ca576c6c740171e" }, "downloads": -1, "filename": "stackalytics-0.7.1-py2-none-any.whl", "has_sig": false, "md5_digest": "f64c9c3889aa56ef2421679fbe093df7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 885172, "upload_time": "2015-01-19T09:19:32", "url": "https://files.pythonhosted.org/packages/d0/57/585a5f1283dd1d633fddd65705c6302d20862577ce0f1b33ad4f088be29d/stackalytics-0.7.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54a6c5d98ae33b14f6298b77e59ec66c", "sha256": "92e87f0481d6b1aff7ef948a928c98f724bdc572f31b59ba93cbce1969ae3950" }, "downloads": -1, "filename": "stackalytics-0.7.1.tar.gz", "has_sig": false, "md5_digest": "54a6c5d98ae33b14f6298b77e59ec66c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 533877, "upload_time": "2015-01-19T09:19:35", "url": "https://files.pythonhosted.org/packages/30/70/3bbbe31eb0b19f697d2fc9f5e4136f3f24ab2d75618baf9c1b6762d0cb55/stackalytics-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "aba2ec9b1c053d4add2284e6e61b45bb", "sha256": "04abdaf8fe1f45bf903a2c40ac8d34f4e61bf3155bae992ae8e6e83368add67b" }, "downloads": -1, "filename": "stackalytics-0.7.2-py2-none-any.whl", "has_sig": false, "md5_digest": "aba2ec9b1c053d4add2284e6e61b45bb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 875871, "upload_time": "2015-04-03T08:26:08", "url": "https://files.pythonhosted.org/packages/b7/42/d7194ab5604e21ab8b3fe70451318c316956e8b0224cc6d71432b8f99ff4/stackalytics-0.7.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f957a6f1cf084dbfb6ba64bef2b2248f", "sha256": "fbcdd5715125fc2c62a674a9631a8153e679b0adbf43fb4f0a145c9f80bbd75b" }, "downloads": -1, "filename": "stackalytics-0.7.2.tar.gz", "has_sig": false, "md5_digest": "f957a6f1cf084dbfb6ba64bef2b2248f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 555789, "upload_time": "2015-04-03T08:26:11", "url": "https://files.pythonhosted.org/packages/1b/61/c4b0f051a8de50a98bf3a135d4646edc8a2c3fb1cd26ad7aa2043d1b9f6d/stackalytics-0.7.2.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "87e6a5aff2fb7bc9d9a1da45d806b542", "sha256": "3df6647f34887d9de1fe5dd865170cc9f1ace17cfeeb5546de259f87077a3a53" }, "downloads": -1, "filename": "stackalytics-0.8.1-py2-none-any.whl", "has_sig": false, "md5_digest": "87e6a5aff2fb7bc9d9a1da45d806b542", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 876325, "upload_time": "2015-05-07T15:05:40", "url": "https://files.pythonhosted.org/packages/aa/de/931bccc756d0b5918442611c6ab2bfdb1a5939d1bc85191b0ce77d283db4/stackalytics-0.8.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffc9e7e32d0a9d4dd04c00d515536cda", "sha256": "24aa75a78a5b102dfbbf5376542e1bf99c9af8758dea715f78ba5fa373210240" }, "downloads": -1, "filename": "stackalytics-0.8.1.tar.gz", "has_sig": false, "md5_digest": "ffc9e7e32d0a9d4dd04c00d515536cda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 547270, "upload_time": "2015-05-07T15:05:50", "url": "https://files.pythonhosted.org/packages/f6/b7/8b9155d36255620905b42d7e4247c3e3491c57ed242f562790423ba720e7/stackalytics-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "a26ae0ddebecf5d37b35699d633d0fdc", "sha256": "67abcaf181de617f9cd959ac0dc43f0df9979bc55f526487d245fde152e07818" }, "downloads": -1, "filename": "stackalytics-0.8.2-py2-none-any.whl", "has_sig": false, "md5_digest": "a26ae0ddebecf5d37b35699d633d0fdc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 876352, "upload_time": "2015-06-02T14:43:13", "url": "https://files.pythonhosted.org/packages/08/d7/161d455f8b7fb26cedefe12c7076e74338bb5e70ed563b0a4cc02cf147fe/stackalytics-0.8.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97a770fb4e87d0c4c9089bb766edaf83", "sha256": "da1879fedf68b67301cdd332c414120906bae8ef79a9b65a971abbbd26df781f" }, "downloads": -1, "filename": "stackalytics-0.8.2.tar.gz", "has_sig": false, "md5_digest": "97a770fb4e87d0c4c9089bb766edaf83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 561390, "upload_time": "2015-06-02T14:43:17", "url": "https://files.pythonhosted.org/packages/d8/de/7fe1fdea9d27029b496afee2b470cab4638d6182c89b780e8d934cf5c5ee/stackalytics-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "97eeaad82656cb0235e90252220db685", "sha256": "4158b0f698d7a4532e09d96937dd9bfe4c91d8e86f6fe2d3766c6acd59995512" }, "downloads": -1, "filename": "stackalytics-0.8.3-py2-none-any.whl", "has_sig": false, "md5_digest": "97eeaad82656cb0235e90252220db685", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 914008, "upload_time": "2015-08-19T16:17:13", "url": "https://files.pythonhosted.org/packages/65/05/6ef6e099108f0d722327d594664441e64ac03842d0f24145a1d7658f40fc/stackalytics-0.8.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d027a53aaf871f52a967632b21a96aa", "sha256": "18186cf63c333058cca84ee9c4da459058db4b3e96588cc768bad788f28e45d6" }, "downloads": -1, "filename": "stackalytics-0.8.3.tar.gz", "has_sig": false, "md5_digest": "4d027a53aaf871f52a967632b21a96aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 571451, "upload_time": "2015-08-19T16:17:19", "url": "https://files.pythonhosted.org/packages/fe/a2/88195fd7c200208a756393864c6109aae38cff81ee091b4642606bbaf3bb/stackalytics-0.8.3.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "88a79fc68d05e1e1c07f272f8c2ab844", "sha256": "8fefd07bfe47581c123b087e6df02e4dad55bcfaac26344b11d29f1fe773b50e" }, "downloads": -1, "filename": "stackalytics-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "88a79fc68d05e1e1c07f272f8c2ab844", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 961939, "upload_time": "2018-10-25T19:59:38", "url": "https://files.pythonhosted.org/packages/ce/36/d39af76b9ffca66287b77167144e26b86d2c70a0bbda357c46fae099e9c3/stackalytics-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17eee2d905cf38f55b42da43124cdb64", "sha256": "93d9638522af96d14a60ca7dcfb6a5de3c9e0c3c3860541e17c94805918bf62d" }, "downloads": -1, "filename": "stackalytics-1.0.0.tar.gz", "has_sig": false, "md5_digest": "17eee2d905cf38f55b42da43124cdb64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 690671, "upload_time": "2018-10-25T19:59:42", "url": "https://files.pythonhosted.org/packages/f1/73/95c25c93033a24c50edc45512132b6755a93eea837763ffc7bfa219e007f/stackalytics-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "88a79fc68d05e1e1c07f272f8c2ab844", "sha256": "8fefd07bfe47581c123b087e6df02e4dad55bcfaac26344b11d29f1fe773b50e" }, "downloads": -1, "filename": "stackalytics-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "88a79fc68d05e1e1c07f272f8c2ab844", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 961939, "upload_time": "2018-10-25T19:59:38", "url": "https://files.pythonhosted.org/packages/ce/36/d39af76b9ffca66287b77167144e26b86d2c70a0bbda357c46fae099e9c3/stackalytics-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17eee2d905cf38f55b42da43124cdb64", "sha256": "93d9638522af96d14a60ca7dcfb6a5de3c9e0c3c3860541e17c94805918bf62d" }, "downloads": -1, "filename": "stackalytics-1.0.0.tar.gz", "has_sig": false, "md5_digest": "17eee2d905cf38f55b42da43124cdb64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 690671, "upload_time": "2018-10-25T19:59:42", "url": "https://files.pythonhosted.org/packages/f1/73/95c25c93033a24c50edc45512132b6755a93eea837763ffc7bfa219e007f/stackalytics-1.0.0.tar.gz" } ] }