{ "info": { "author": "Noah Kantrowitz", "author_email": "noah@coderanger.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Trac", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "Notes\n=====\nAdds basic ticket dependencies for Trac.\n\nNote: MasterTickets 3.0 requires Trac 0.12 or higher.\n\nWhat is it?\n-----------\nThis plugin adds \"blocking\" and \"blockedby\" fields to each ticket, enabling you\nto express dependencies between tickets. It also provides a graphviz-based\ndependency-graph feature for those tickets having dependencies specified,\nallowing you to visually understand the dependency tree. The dependency graph\nis viewable by clicking 'depgraph' in the context (in the upper right corner)\nmenu when viewing a ticket that blocks or is blocked by another ticket.\n\nWhat is it not?\n---------------\n* It does not provide ticket-hiding for sub-tasks of a top-level ticket. \n\n * There is no orthogonal parent/child relationship possible\n\n * You cannot view the descriptions of tickets depending on the current\n ticket\n\n * In fact, there are no explicit features that can assist you with sub-task\n management\n\n * Although it would be cool.\n\n* It does not allow you to create a dependent ticket from the current ticket\n\n* It does not include reporting features to show how tasks are interrelated\n (other than the dependency graph already described above).\n\nConfiguration\n=============\nTo use this plugin you must configure two custom fields named ``blocking``\nand ``blockedby``.\n\nAll other configuration options go in the ``[mastertickets]`` section.\n\n``dot_path`` : *optional, default: dot*\n Path to the dot executable. This is only used for the dependency graph.\n\n``use_gs`` : *optional, default: False*\n If enabled, use ghostscript to produce a nicer dependency graph.\n\n``gs_path`` : *optional, default: gs*\n Path to the ghostscript executable.\n\n``closed_color`` : *optional, default: green*\n Color of closed tickets\n\n``opened_color`` : *optional, default: red*\n Color of opened tickets\n\n``graph_direction`` : *optional, default: TD*\n Direction of the dependency graph (TD = Top Down, DT = Down Top, LR = Left Right, RL = Right Left)\n\n\nTo enable the plugin::\n\n [components]\n mastertickets.* = enabled\n\n [ticket-custom]\n blocking = text\n blocking.label = Blocking\n blockedby = text\n blockedby.label = Blocked By\n\nCustom fields\n-------------\nWhile the two field names must be ``blocking`` and ``blocked_by``, you are\nfree to use any text for the field labels.\n\nExample\n=======\n\nTo use a locally-built graphviz::\n\n [mastertickets]\n dot_path = /usr/local/bin/dot\n\n [components]\n mastertickets.* = enabled\n\n [ticket-custom]\n blocking = text\n blocking.label = Blocking\n blockedby = text\n blockedby.label = Blocked By\n\n\nExample reports\n---------------\n\nTo only show the tickets that are currently not blocked by other non-closed\ntickets, use this SQL (eg in a new report)::\n\n SELECT p.value AS __color__,\n id AS ticket, summary, component, version, milestone, t.type AS type, \n owner, status,\n time AS created,\n changetime AS _changetime, description AS _description,\n reporter AS _reporter,\n (SELECT COUNT(*) FROM mastertickets m, ticket t2\n WHERE t.id=m.dest AND m.source=t2.id AND t2.status <> 'closed') AS _blocked\n FROM ticket t\n LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'\n WHERE status <> 'closed' AND _blocked = 0\n ORDER BY CAST(p.value AS integer), milestone, t.type, time\n\nBasically it is the default report, with an aditional, hidden field (the sub query),\nnamed _blocked. The value of this field is checked to be zero.\n\nUsing this method, other reports can be modified as well, eg to show the number of tickets\nblocking a ticket and/or the number of tickets that the ticked is blocking itself.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://trac-hacks.org/wiki/MasterTicketsPlugin", "keywords": "trac plugin ticket dependencies master", "license": "BSD 3-Clause", "maintainer": "Ryan J Ollos", "maintainer_email": "ryan.j.ollos@gmail.com", "name": "TracMasterTickets", "package_url": "https://pypi.org/project/TracMasterTickets/", "platform": "", "project_url": "https://pypi.org/project/TracMasterTickets/", "project_urls": { "Homepage": "https://trac-hacks.org/wiki/MasterTicketsPlugin" }, "release_url": "https://pypi.org/project/TracMasterTickets/4.0.3/", "requires_dist": [ "Trac" ], "requires_python": "", "summary": "Provides ticket dependencies and master tickets.", "version": "4.0.3" }, "last_serial": 5955788, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "aeaf615eb29477e0588110d7b7284e36", "sha256": "aefad23e67992444947d2898bdbd20f04d74bbb5312a5e8d0e5533a17500a47b" }, "downloads": -1, "filename": "TracMasterTickets-1.0-py2.3.egg", "has_sig": false, "md5_digest": "aeaf615eb29477e0588110d7b7284e36", "packagetype": "bdist_egg", "python_version": "2.3", "requires_python": null, "size": 72118, "upload_time": "2007-02-22T18:46:07", "url": "https://files.pythonhosted.org/packages/28/ed/3d05edc33c69e626923ad63a3e5aebdab9d168017af71bf2d57dfd436166/TracMasterTickets-1.0-py2.3.egg" }, { "comment_text": "", "digests": { "md5": "6d99a991139620a3560203826e987c3f", "sha256": "d1d38b7c9653ce70d8c41d2fb087a10d93703d383d0cd522dac38f533578d488" }, "downloads": -1, "filename": "TracMasterTickets-1.0-py2.4.egg", "has_sig": false, "md5_digest": "6d99a991139620a3560203826e987c3f", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 25594, "upload_time": "2007-02-22T18:45:58", "url": "https://files.pythonhosted.org/packages/5c/ea/9a8d7144edc2c31155f34f67eeaa7fb29fc038d4b45b5b72f2ba7983d434/TracMasterTickets-1.0-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "3074da3b638e6ec5974753f07a8d2d7e", "sha256": "80acdc6d58a66e4612946e90e55c1c79bcda6aad1d9b931650ee4d0ab639665e" }, "downloads": -1, "filename": "TracMasterTickets-1.0.tar.gz", "has_sig": false, "md5_digest": "3074da3b638e6ec5974753f07a8d2d7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2985, "upload_time": "2007-02-22T18:45:57", "url": "https://files.pythonhosted.org/packages/fa/1b/c623af4346a59afc5ea8bc131718b1a040e7ec30f44b94e5d39172fcf5c7/TracMasterTickets-1.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "9c17cb650b77ee459cc4362232d1cedd", "sha256": "6fb5c1c138bcba2028ae63421292f66bcfe630a8757435e8e110afd76ea9dd4f" }, "downloads": -1, "filename": "TracMasterTickets-2.1-py2.4.egg", "has_sig": false, "md5_digest": "9c17cb650b77ee459cc4362232d1cedd", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 37571, "upload_time": "2007-10-18T13:58:37", "url": "https://files.pythonhosted.org/packages/e3/98/d76b2eca2e556734698c96962be1dab6cbf7cd5f8cacd28d077f3c8846ac/TracMasterTickets-2.1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "18d29e3b0c5976c1a72005605521e9b0", "sha256": "b4839794e30be8a95d0f659c7c550ca534ca06592050dc9c2d0319e041fb658d" }, "downloads": -1, "filename": "TracMasterTickets-2.1-py2.5.egg", "has_sig": false, "md5_digest": "18d29e3b0c5976c1a72005605521e9b0", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 37332, "upload_time": "2007-10-18T13:58:38", "url": "https://files.pythonhosted.org/packages/2a/e0/856bc6fdf5f7402314bb2908755d0f7060d86ce35a094e0376738062edbc/TracMasterTickets-2.1-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "b83d92b8ae70f1fb20011880cf0b7a4a", "sha256": "8d456d8f63449b2f8ee7b0584d51776decd0abef1b631fc310eb44723628d2f0" }, "downloads": -1, "filename": "TracMasterTickets-2.1.tar.gz", "has_sig": false, "md5_digest": "b83d92b8ae70f1fb20011880cf0b7a4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26520, "upload_time": "2007-10-18T13:58:36", "url": "https://files.pythonhosted.org/packages/22/c2/91fef22abe30489b14dfb7bcbfd34292c914ddf3e9f0088ee2b44d69df2a/TracMasterTickets-2.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "b86399a8efeb9464c54c7903d72bd2bc", "sha256": "c75b8336f6a3f421600aee63fc9108a8927ee004d0a06b9442dcd87699c781e2" }, "downloads": -1, "filename": "TracMasterTickets-2.1.2-py2.5.egg", "has_sig": false, "md5_digest": "b86399a8efeb9464c54c7903d72bd2bc", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 41380, "upload_time": "2008-07-03T13:37:51", "url": "https://files.pythonhosted.org/packages/f7/d6/fe05e62b8f994d99ca98dd135f873b2b9afa65b129169fd0d79e6d08be08/TracMasterTickets-2.1.2-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "2cb17af7d464160e9b6b83f8d440fe8c", "sha256": "f7e750d6bbb6d043e3c0a781982e9279f075ae7c3d65365ece81268a6436e85a" }, "downloads": -1, "filename": "TracMasterTickets-2.1.2.tar.gz", "has_sig": false, "md5_digest": "2cb17af7d464160e9b6b83f8d440fe8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29286, "upload_time": "2008-07-03T13:37:51", "url": "https://files.pythonhosted.org/packages/81/49/b405f9256c3f5a1c968b6050c1437734f25286941370fbd17432b0ce04f1/TracMasterTickets-2.1.2.tar.gz" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "b0e9dc5a7044be286445b89eb723741b", "sha256": "8a688446508d0485883d15685c534be1628696227b969ad3a3c14d60be1e6841" }, "downloads": -1, "filename": "TracMasterTickets-2.1.3-py2.3.egg", "has_sig": false, "md5_digest": "b0e9dc5a7044be286445b89eb723741b", "packagetype": "bdist_egg", "python_version": "2.3", "requires_python": null, "size": 120101, "upload_time": "2008-08-25T02:02:43", "url": "https://files.pythonhosted.org/packages/ec/f4/e82332cae09a44518ce086ea6cb5f7cf7e9922553c1cea8b83ed71c98119/TracMasterTickets-2.1.3-py2.3.egg" }, { "comment_text": "", "digests": { "md5": "c58d3fcea26e32e4c38c422f036666b6", "sha256": "68b8321941337d29da06044e4c6ca0f41cc754c5515d945b33ba3fa2134217ff" }, "downloads": -1, "filename": "TracMasterTickets-2.1.3-py2.4.egg", "has_sig": false, "md5_digest": "c58d3fcea26e32e4c38c422f036666b6", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 42567, "upload_time": "2008-08-25T02:02:38", "url": "https://files.pythonhosted.org/packages/47/db/ed0f89676aadac9fb81ae7fad4db564f27bf75f76c0bfd04dd75b502e67c/TracMasterTickets-2.1.3-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "44c29c7ec794d6b56bd9d53dfe655468", "sha256": "4d1f67a6940b2b7d41b48925ba0bbb3363cd323386921102c98c15d43553eff4" }, "downloads": -1, "filename": "TracMasterTickets-2.1.3-py2.5.egg", "has_sig": false, "md5_digest": "44c29c7ec794d6b56bd9d53dfe655468", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 42205, "upload_time": "2008-08-25T02:02:45", "url": "https://files.pythonhosted.org/packages/33/b5/1f877c9f966e3560abd8f6aa29292fa488f56f43b80c86e90ac66848564c/TracMasterTickets-2.1.3-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "ce8d40b4a6b6dfbee863e8ab949c166f", "sha256": "1bbb50a8dc04f2ac6a49d778fa8783718cb2c35335f29c05bdc64c6368c2a7b4" }, "downloads": -1, "filename": "TracMasterTickets-2.1.3.tar.gz", "has_sig": false, "md5_digest": "ce8d40b4a6b6dfbee863e8ab949c166f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29526, "upload_time": "2008-08-25T02:02:36", "url": "https://files.pythonhosted.org/packages/77/24/b527e90b3e3f744f31f889bf348b0204e4efbd8e8f63fe8587e9932dea4b/TracMasterTickets-2.1.3.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "50c057e76b37d39a7ae0e0274e27dd66", "sha256": "f9d325025df7493137539cb44deed6bf14b161156b6df8fde9cebed214dfe404" }, "downloads": -1, "filename": "TracMasterTickets-3.0-py2.6.egg", "has_sig": false, "md5_digest": "50c057e76b37d39a7ae0e0274e27dd66", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 44432, "upload_time": "2010-07-05T01:18:04", "url": "https://files.pythonhosted.org/packages/f3/21/6f4463e8d3ae306fe1d56339aa50188262039b49090a46a95bda5b4ca735/TracMasterTickets-3.0-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "4ced460069b75b5f1b803573c28f0509", "sha256": "895e7e5534693d6f32f6e465971af8eac863019368282410a7f3993a36218d4c" }, "downloads": -1, "filename": "TracMasterTickets-3.0.tar.gz", "has_sig": false, "md5_digest": "4ced460069b75b5f1b803573c28f0509", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9417, "upload_time": "2010-07-05T01:18:02", "url": "https://files.pythonhosted.org/packages/1c/12/f733d2bd3ea46fc14f820bc82a319e040164e8a406e6e45154d383dc31f8/TracMasterTickets-3.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "cd8b194722ff0d0c5d28c54204a7c185", "sha256": "fc69cbaf48f76f3b56784d0f525a6856bcce7f1e7995a4f7ba85beea3aa62673" }, "downloads": -1, "filename": "TracMasterTickets-3.0.1-py2.6.egg", "has_sig": false, "md5_digest": "cd8b194722ff0d0c5d28c54204a7c185", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 44658, "upload_time": "2010-07-12T05:53:29", "url": "https://files.pythonhosted.org/packages/52/43/7fbd8ee87dcfc6bcb44c4698dfd7ebf6de2a4387c892c48ed27ea9d80f81/TracMasterTickets-3.0.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "d742a7355a815a64eedb4996d4c5cefe", "sha256": "9d0e737c2aeaffcf1bd9b4f028a60d8159bd0691e2d704de6e032b7eec53ca3e" }, "downloads": -1, "filename": "TracMasterTickets-3.0.1.tar.gz", "has_sig": false, "md5_digest": "d742a7355a815a64eedb4996d4c5cefe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30489, "upload_time": "2010-07-12T05:53:28", "url": "https://files.pythonhosted.org/packages/c7/f8/175f567f0d105327dc2e9742373e50e0519696308698bd610178b8ac72e0/TracMasterTickets-3.0.1.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "314cd508b1a114915d442f176ccd69ff", "sha256": "5098e070d0cc719fede0cbf3110b9ac862bc09ce268bfb8e6e6faee8e7dca5b1" }, "downloads": -1, "filename": "TracMasterTickets-4.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "314cd508b1a114915d442f176ccd69ff", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23602, "upload_time": "2017-03-18T17:28:05", "url": "https://files.pythonhosted.org/packages/ea/16/c83b895db50edfae7dbbaea41e960d5b4fadbcd55ed9d672d3fced0f5237/TracMasterTickets-4.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66461f93e965a88abcfa2befe76e8496", "sha256": "5855b7d17bfd6c2f5d073d28240dcf3b5bd7035abeda093f870e30f2d004a1cc" }, "downloads": -1, "filename": "TracMasterTickets-4.0.0.tar.gz", "has_sig": false, "md5_digest": "66461f93e965a88abcfa2befe76e8496", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17840, "upload_time": "2017-03-18T17:28:07", "url": "https://files.pythonhosted.org/packages/d4/04/ab50301f9f55b772f52a457fa0a0c6c6229cf5cf8a8eb6d2389442b4a63a/TracMasterTickets-4.0.0.tar.gz" } ], "4.0.1": [ { "comment_text": "", "digests": { "md5": "60d34888e68a666dcfbc0ec9b6aac1e1", "sha256": "067ba6113bcf51c2014b80df60374351b73f81e52aa99a89e3d1c004d210eaab" }, "downloads": -1, "filename": "TracMasterTickets-4.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "60d34888e68a666dcfbc0ec9b6aac1e1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 24565, "upload_time": "2017-08-20T21:01:42", "url": "https://files.pythonhosted.org/packages/e2/aa/4272ceeeacab5b5b0cf6a0ad9820e7d72da525c59538190e457cc2e42bdf/TracMasterTickets-4.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55d018f4ac6ed2464fc2fd005289ca1e", "sha256": "7decfa8faaec94fe3a9414a440de676313418d460ed826bb04f171a6f889d084" }, "downloads": -1, "filename": "TracMasterTickets-4.0.1.tar.gz", "has_sig": false, "md5_digest": "55d018f4ac6ed2464fc2fd005289ca1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17951, "upload_time": "2017-08-20T21:01:43", "url": "https://files.pythonhosted.org/packages/8d/02/431f4f9fc1433a5704ef70937a43f2967f8d54990e4751b7365226f7a09a/TracMasterTickets-4.0.1.tar.gz" } ], "4.0.2": [ { "comment_text": "", "digests": { "md5": "582408cce2252f7702254020d7f2fa0b", "sha256": "c9672a4f34d0f7549d068564b185c5a1fbd7e36c4b69dce1b38247c8895347cc" }, "downloads": -1, "filename": "TracMasterTickets-4.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "582408cce2252f7702254020d7f2fa0b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 22078, "upload_time": "2018-04-23T15:22:45", "url": "https://files.pythonhosted.org/packages/5f/34/67dbc71d8bc80b566c494d04dd0731ae2b83619cb552aeee388761118ea8/TracMasterTickets-4.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2046fd63b2a885a2819944ac1e755c22", "sha256": "25bf559a4e9a1310e59a75cac7192e7823cf627057c4a9eaeff7deb72473c194" }, "downloads": -1, "filename": "TracMasterTickets-4.0.2.tar.gz", "has_sig": false, "md5_digest": "2046fd63b2a885a2819944ac1e755c22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19647, "upload_time": "2018-04-23T15:22:46", "url": "https://files.pythonhosted.org/packages/f2/b0/bad085386bb408b2247ec9c3787b4ad40357eaa92ef18bca2e4659de11a3/TracMasterTickets-4.0.2.tar.gz" } ], "4.0.3": [ { "comment_text": "", "digests": { "md5": "9e615be2f3f351e754300fc6d48c6a5e", "sha256": "5409f3c03749815834c52e2c359afe38d24a3f8e88e7a11e1ef9dc37567b5e54" }, "downloads": -1, "filename": "TracMasterTickets-4.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "9e615be2f3f351e754300fc6d48c6a5e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23090, "upload_time": "2019-10-10T16:17:07", "url": "https://files.pythonhosted.org/packages/79/de/9d51a236ea9b3366c02893fdedea9b788d6dcabdc6024a7fed783ad8c963/TracMasterTickets-4.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d93b49d98344457bd769aa6baf2ef01a", "sha256": "b0c555c20b90bb69af30d8d953ec2cb9978d26798aabf7e28fc7ff69685593aa" }, "downloads": -1, "filename": "TracMasterTickets-4.0.3.tar.gz", "has_sig": false, "md5_digest": "d93b49d98344457bd769aa6baf2ef01a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19678, "upload_time": "2019-10-10T16:17:09", "url": "https://files.pythonhosted.org/packages/15/7f/afda80031cf2f8ca67dfa5122c9c30e4f9b502e812765494a0fdad5eb91e/TracMasterTickets-4.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e615be2f3f351e754300fc6d48c6a5e", "sha256": "5409f3c03749815834c52e2c359afe38d24a3f8e88e7a11e1ef9dc37567b5e54" }, "downloads": -1, "filename": "TracMasterTickets-4.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "9e615be2f3f351e754300fc6d48c6a5e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23090, "upload_time": "2019-10-10T16:17:07", "url": "https://files.pythonhosted.org/packages/79/de/9d51a236ea9b3366c02893fdedea9b788d6dcabdc6024a7fed783ad8c963/TracMasterTickets-4.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d93b49d98344457bd769aa6baf2ef01a", "sha256": "b0c555c20b90bb69af30d8d953ec2cb9978d26798aabf7e28fc7ff69685593aa" }, "downloads": -1, "filename": "TracMasterTickets-4.0.3.tar.gz", "has_sig": false, "md5_digest": "d93b49d98344457bd769aa6baf2ef01a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19678, "upload_time": "2019-10-10T16:17:09", "url": "https://files.pythonhosted.org/packages/15/7f/afda80031cf2f8ca67dfa5122c9c30e4f9b502e812765494a0fdad5eb91e/TracMasterTickets-4.0.3.tar.gz" } ] }