{ "id": "85516", "key": "TIMOB-7419", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" }, { "id": "13404", "description": "Sprint 2012-12 Core", "name": "Sprint 2012-12 Core", "archived": true, "released": true, "releaseDate": "2012-06-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-06-15T09:42:14.000+0000", "created": "2012-01-26T09:03:27.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "core" ], "versions": [ { "id": "13272", "description": "Release 2.0.1", "name": "Release 2.0.1", "archived": true, "released": true, "releaseDate": "2012-04-16" } ], "issuelinks": [ { "id": "17342", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "92097", "key": "TIDOC-639", "fields": { "summary": "APIDOC: UI - add all events to all views for Mobile Web", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2012-06-15T16:19:44.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10207", "name": "Tooling" } ], "description": "This is a feature request that came up during documentation work.\r\n\r\nWhen overriding a method in an inherited object, we currently need to recreate the entire method description in order to update a single field. It would be helpful to be able to inherit these descriptions. Something like:\r\n\r\n - name: someMethod\r\n summary: @inherit\r\n description: |\r\n Makes the view rotate 360 degrees then turn purple.\r\n parameters: @inherit\r\n returns: true\r\n \r\n\r\nOr alternately:\r\n\r\n - name: someMethod\r\n inherit-docs: true\r\n description: |\r\n Makes the view rotate 360 degrees then turn purple.\r\n\r\nThis would be a time-saver and prevent some copy & paste errors, but it doesn't give us anything we can't do today, so not a top priority. \r\n \r\n ", "attachment": [], "flagged": false, "summary": "Tooling: docgen.py Add support for inheriting individual fields from parent", "creator": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "195257", "author": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "body": "We need this for events and properties too.", "updateAuthor": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "created": "2012-05-18T05:21:09.000+0000", "updated": "2012-05-18T05:21:09.000+0000" }, { "id": "195565", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Do you guys think we even need special syntax? I was thinking maybe we can make it such that you only specify the fields you want to change, and no need to put any other type of special syntax indicating that you want inheritence. Validate would then need to be changed to not ding you if you don't put a required field, of course.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-05-22T01:21:49.000+0000", "updated": "2012-05-22T01:21:49.000+0000" }, { "id": "196019", "author": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "body": "So, I'm not sure we need a special syntax. Not having the special syntax would make a little more work up front, but less work later. Let me explain:\r\n\r\nWe currently have a bunch of places where we've repeated methods, properties, etc., that are actually inherited, in order to modify the platform tags, etc.\r\n\r\nWe can't know for sure whether adding the partial inheritance is going to modify the doc for any of these members. So ideally, we'd want a flag like --warn-inherited that prints a warning message when \"filling in\" an inherited field for an API member.\r\n\r\nSo if Hickey has method:\r\n\r\n{code}\r\nname: flense\r\nsummary: Flenses the hickey and returns a Blob of blubber.\r\nreturns: \r\n type: Titanium.Blob\r\n{code}\r\n\r\nAnd DooHickey redeclares it thus:\r\n\r\n{code}\r\nname: flense \r\nsummary: Flenses the doohickey and throws away the blubber.\r\n{code}\r\n\r\nWe'd get a message something like this:\r\n\r\n{code}\r\nDoHickey.flense -- inheriting return type from Hickey.flense\r\n{code}\r\n\r\nIs that practical?\r\n\r\nThanks,\r\n-Arthur\r\n", "updateAuthor": { "name": "aevans", "key": "aevans", "displayName": "Arthur Evans", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-05-24T16:15:56.000+0000", "updated": "2012-05-24T16:15:56.000+0000" }, { "id": "196280", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "Agreed, I like the flag idea.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-05-29T08:01:11.000+0000", "updated": "2012-05-29T08:01:11.000+0000" }, { "id": "198491", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "h3. Testing Notes\r\n\r\n* Open apidoc/Titanium/Media/VideoPlayer.yml\r\n\r\n* Find the \"click\" event documentation.\r\n\r\n* Delete everything from the click event documentation except \"description\", and make the description be \"Click event test for VideoPlayer.\" So the complete click event documentation will look like:\r\n\r\n{code}\r\n- name: click\r\n description: Click event test for VideoPlayer\r\n{code}\r\n\r\n* Run {{python apidoc/docgen.py --warn-inherited}}. As its generated, you should see warnings for documentation properties that are being inherited from the documentation of super types.\r\n\r\n* When docgen is finished, open dist/apidoc/index.html in the browser, and navigate to the titanium.Media.VideoPlayer documentation. Make sure the documentation for the click event looks right (has its summary, etc.) and shows a description as you entered it above.\r\n\r\n* Run {{python apidoc/validate.py}} -- you should get no errors related to the VideoPlayer.", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-14T09:41:36.000+0000", "updated": "2012-06-14T09:42:04.000+0000" }, { "id": "198495", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR ready:\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/pull/2393", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2012-06-14T09:43:28.000+0000", "updated": "2012-06-14T09:43:28.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }