{"projects": [{"components": [], "description": "", "externalName": "Native Puppet", "issues": [{"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-06-28T16:21:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@592dc00"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hzbcdz:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "2.0"}], "description": "Implement the `file` and `epp` functions in the runtime.\n\nImplement resolving of file paths based on '<namespace>/<subpath>' for files and templates.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48054", "fixedVersions": ["NPUP 0.1.0"], "id": "48054", "issueType": "New Feature", "key": "NPUP-48", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "status": "Open", "statusCategory": "To Do", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement the `file` and `epp` functions.", "timeSpent": "PT0S", "updated": "2017-02-24T06:51:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: d2201b4", "created": "2016-06-22T05:14:00.000000"}], "components": [], "created": "2016-06-01T13:54:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@76e4fa48"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hyn6af:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "22/Jun/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_7664_*|*_10007_*:*_2_*:*_791243168_*|*_3_*:*_1_*:*_991976555_*|*_10009_*:*_1_*:*_592730031_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_27376049"}], "description": "Currently Unicode is, at best, somewhat supported in the Puppet language for strings.\n\n[See here for a write-up about the issue|https://docs.google.com/document/u/1/d/1371-N7eLMO0IeVzGcj6ot61f3NkzYboBdmqE2R6UBlU].\n\nThe fix is to implement a UTF-8 string type that internally uses ICU to handle Unicode graphemes.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48016", "fixedVersions": ["NPUP 0.1.0"], "id": "48016", "issueType": "Bug", "key": "NPUP-47", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-06-29T09:29:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement proper support for Unicode strings", "timeSpent": "PT0S", "updated": "2016-06-29T09:29:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master: 4a029fa", "created": "2016-06-24T09:18:00.000000"}], "components": [], "created": "2016-05-31T11:41:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@65055834"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz6obj:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Had spare bandwidth for a very simple fix."}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "24/Jun/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_5460_*|*_10007_*:*_1_*:*_33055676_*|*_3_*:*_1_*:*_2094_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_262643074_*|*_10006_*:*_1_*:*_2031949949"}], "description": "The following code:\n\n{code}\nnotice(1.type())\n{code}\n\nresults in:\n\n{code}\nnode 'peterhu-osx': expected name but found type keyword.\n  notice(1.type())\n           ^~~~\n{code}\n\nThis is expected to instead output:\n\n{code}\nNotice: Scope(Class[main]): Integer[1, 1]\n{code}", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48030", "fixedVersions": ["NPUP 0.1.0"], "id": "48030", "issueType": "Bug", "key": "NPUP-46", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-06-27T10:15:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Postfix call for the \"type\" function results in a parse error.", "timeSpent": "PT0S", "updated": "2016-06-27T10:15:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "attachments": [], "comments": [], "components": [], "created": "2016-05-25T18:49:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@6269d715"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hzc6lz:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}], "description": "Implement the {{new}} function for the {{String}} type according to the specification.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48049", "fixedVersions": ["NPUP 0.1.0"], "id": "48049", "issueType": "New Feature", "key": "NPUP-45", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "status": "Ready for Engineering", "statusCategory": "To Do", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement new function for String type", "timeSpent": "PT0S", "updated": "2017-03-09T03:40:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-05-23T16:14:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@3097756c"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-20"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz60wf:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "2.0"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_34276304_*|*_10007_*:*_1_*:*_75225251_*|*_3_*:*_1_*:*_22538669_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_10931645_*|*_10006_*:*_1_*:*_2542721125"}], "description": "Review the functionality of the 4.0 AST checker (puppet/pops/validation/checker4_0.rb) and port the requisite validations to the native parser such that the ASTs produces pass the same checks.\n\nThis will enable the native parser to produce an AST that the Ruby implementation doesn't need to validate for correctness.", "epicLinkSummary": "Theme: Validation", "estimate": "PT0S", "externalId": "48039", "fixedVersions": ["NPUP 0.1.0"], "id": "48039", "issueType": "New Feature", "key": "NPUP-44", "labels": [], "originalEstimate": "PT0S", "parent": "48045", "parentSummary": "Theme: Validation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-06-23T18:16:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Review the Puppet 4.0 checker and port requisite logic to validate native ASTs", "timeSpent": "PT0S", "updated": "2016-06-23T18:16:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: 2cfc1a0", "created": "2016-05-10T18:58:00.000000"}], "components": [], "created": "2016-05-10T15:04:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@49c880c2"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz68fj:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Found"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Found via a customer ticket in the Ruby implementation"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "11/May/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_9786_*|*_10007_*:*_1_*:*_10474670_*|*_3_*:*_1_*:*_3567389_*|*_10009_*:*_1_*:*_5415_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_74265706"}], "description": "The following:\n\n{code}\nfile {\n    foo\n}\n{code}\n\nResults in this error message:\n\n{code}\nError: test.pp:3:1: expected '=>' but found '}'.\n  }\n  ^\n{code}\n\nWhich is confusing.  This is due to the fact that the resource expression rule fails to match, and the parser instead matches the string rule and then attempts to match the hash rule, which has an expectation point following the key expression (hence {{=>}} is expected).\n\nThe expected error should be:\n\n{code}\nError: test.pp:3:1: expected ':' but found '}'.\n  }\n  ^\n{code}\n\nThis should be possible as the compiler can tell that the resource body rule should be able to expect a colon (provided the token is not {{=>}} due to other rules having the same syntax).", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48015", "fixedVersions": [], "id": "48015", "issueType": "Bug", "key": "NPUP-43", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-05-11T15:36:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Missing a colon after a resource title causes confusing error message", "timeSpent": "PT0S", "updated": "2016-05-11T15:36:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: 057697e\n(Pulled to Testing for QA visibility)", "created": "2016-05-25T17:42:00.000000"}], "components": [], "created": "2016-05-09T14:06:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@622e0d3e"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hyn9p3:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted into sprint because of available bandwidth."}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "25/May/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_8823_*|*_10007_*:*_1_*:*_59858260_*|*_3_*:*_1_*:*_1335480582_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_518934066_*|*_10006_*:*_1_*:*_2466"}], "description": "Implement the \"new expression\" (function call syntax on a Type expression).  This expression should translate to calling the {{new}} function with the type as the first argument, e.g. {{Integer(...) => new(Integer, ...)}}.\n\nImplement the new function according to Puppet specifications.\n\nNote: this excludes the overload of the new function for {{String}}.  That will be implemented later once unicode strings are properly implemented.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48028", "fixedVersions": ["NPUP 0.1.0"], "id": "48028", "issueType": "Bug", "key": "NPUP-42", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-05-31T17:51:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement new expression and function.", "timeSpent": "PT0S", "updated": "2016-05-31T17:51:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": "623cfdfb8d8b9c0068b93e3c", "attachments": [], "comments": [{"author": "557058:c7e2df03-377d-4bf0-9407-106b8483430d", "body": "Merged to master at [4708fd8|https://github.com/puppetlabs/puppetcpp/commit/4708fd880cf69530f5fe7c31f45a8fbff120d4eb].", "created": "2016-04-24T23:47:00.000000"}], "components": [], "created": "2016-04-18T18:47:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@2938628e"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz5r6v:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "25/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_310051856_*|*_1_*:*_1_*:*_5206_*|*_10007_*:*_2_*:*_346167273_*|*_3_*:*_2_*:*_125087912_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_24049_*|*_10006_*:*_1_*:*_65124455"}], "description": "Implement the {{type}} function according to how it functions in the Ruby implementation.\n\nAdditionally, this should implement the corresponding type inference logic.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48014", "fixedVersions": ["NPUP 0.1.0"], "id": "48014", "issueType": "New Feature", "key": "NPUP-41", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-28T13:55:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement the `type` function.", "timeSpent": "PT0S", "updated": "2016-04-28T13:55:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master: b0e5f43\n\nPulling this straight through to resolved.", "created": "2016-04-19T16:31:00.000000"}], "components": [], "created": "2016-04-13T12:13:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@1f346b57"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz5o5z:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Found"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Discovered during a meeting with RE and pulled into Sprint to fix"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "19/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_8013_*|*_10007_*:*_1_*:*_81826669_*|*_3_*:*_1_*:*_4788125_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_447264378"}], "description": "For licensing reasons, the currently optional GNU readline dependency should be replaced with the BSD-licensed editline library.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48059", "fixedVersions": ["NPUP 0.1.0"], "id": "48059", "issueType": "Bug", "key": "NPUP-40", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Major", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-19T16:31:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "REPL: replace readline dependency with editline (libedit)", "timeSpent": "PT0S", "updated": "2016-04-19T16:31:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:c7e2df03-377d-4bf0-9407-106b8483430d", "body": "Merged to master at [9013300|https://github.com/puppetlabs/puppetcpp/commit/901330056ae06217efdfc9079b821d8c3d4342ee].", "created": "2016-04-13T15:19:00.000000"}], "components": [], "created": "2016-04-04T12:12:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@ff6f619"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz5g9r:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "5.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "13/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_64808797_*|*_1_*:*_1_*:*_1060829_*|*_10007_*:*_1_*:*_85936547_*|*_3_*:*_1_*:*_699772224_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_23611183_*|*_10006_*:*_1_*:*_2036385"}], "description": "Currently the implementation of the comparison operators (when used with {{Type}} operands) and {{puppet::runtime::values::type::is_instance}} is incorrect because it is based off of what was being called \"specialization\", which only considered the type hierarchy as outlined in the specification.\n\nInstead these operations rely on \"assignability\", which checks to see if a type could be assigned to another using more involved logic.\n\nFor example, the native evaluator doesn't consider {{Array[String]}} to be an instance of {{Type[Tuple]}} because Array is not a \"specialization\" of Tuple (it was the other way around, {{Tuple}} is a more specialized type).\n\nTo address this, {{is_specialization}} should be replaced with {{is_assignable}} and the same logic used to determine if a type is assignable to another.\n", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48027", "fixedVersions": ["NPUP 0.1.0"], "id": "48027", "issueType": "Bug", "key": "NPUP-39", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-14T15:53:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Conform to Puppet's `assignable?` logic.", "timeSpent": "PT0S", "updated": "2016-04-14T15:53:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master: 16457b8", "created": "2016-04-14T15:13:00.000000"}], "components": [], "created": "2016-03-24T00:28:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@74034b8e"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz5akf:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "14/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_9583_*|*_10007_*:*_1_*:*_87583855_*|*_3_*:*_2_*:*_1246041322_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_3758481_*|*_10006_*:*_1_*:*_533877433"}], "description": "The native compiler should respect the {{environment}} namespace for loading types, functions, files, etc. from the environment, the same way it does for things from modules.\n\nAdditionally, the name {{environment}} is reserved and a request to use an environment of that name should be an error.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48044", "fixedVersions": ["NPUP 0.1.0"], "id": "48044", "issueType": "Bug", "key": "NPUP-38", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-14T16:15:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Respect `environment` scope.", "timeSpent": "PT0S", "updated": "2016-04-14T16:15:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": "623cfdfb8d8b9c0068b93e3c", "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: 49d724c", "created": "2016-05-18T17:59:00.000000"}], "components": [], "created": "2016-03-24T00:20:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@6c28866a"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz60wn:"}, {"fieldName": "Release Notes Summary", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textarea", "value": "No release note required\n"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "18/May/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_74484_*|*_1_*:*_1_*:*_476237_*|*_10007_*:*_1_*:*_1390901253_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_3_*:*_296025_*|*_10006_*:*_1_*:*_3424113157"}], "description": "Currently the native compiler prevents functions defined in the environment to be declared private; it requires the the private keyword only appear on module functions.\n\nInstead, the native compiler should allow private functions in an environment and only permit the caller to an environment private function provided the caller comes from the environment itself.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48038", "fixedVersions": ["NPUP 0.1.0"], "id": "48038", "issueType": "Bug", "key": "NPUP-37", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-05-18T18:05:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Allow functions declared in an environment to be made private", "timeSpent": "PT0S", "updated": "2016-05-18T18:05:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master: 0d566cd", "created": "2016-04-14T17:00:00.000000"}, {"author": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "body": "I see this is in Ready for Test. I thought for NPUP tickets we were skipping manual validation since we don't have builds (following the pattern from back in the days when facter tickets were being worked for AIX/Solaris before we had builds). Or did we decide that the docker image makes it easy enough?\n\nI'm fine either way", "created": "2016-04-15T14:50:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "[~accountid:557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920] We are placing all NPUP tickets in 'Test' on request from QA as this adds visibility to what is happening with NPUP. So far it has been more for review of the ticket and book-keeping than performing any manual testing.\n\nSo, after \"Ready for Merge\", we move the NPUP tickets to \"Test\".", "created": "2016-04-16T05:36:00.000000"}], "components": [], "created": "2016-03-23T13:31:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@3076e64c"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz5a73:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted because of bandwidth and it was up for merge since the previous sprint."}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "14/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_7404_*|*_10007_*:*_1_*:*_4573779_*|*_3_*:*_1_*:*_244079_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_315326959_*|*_10006_*:*_1_*:*_1908463552"}], "description": "Implement the `step` function in accordance with the existing Ruby implementation.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48058", "fixedVersions": [], "id": "48058", "issueType": "New Feature", "key": "NPUP-36", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-18T08:35:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement the `step` function.", "timeSpent": "PT0S", "updated": "2016-04-20T14:09:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: 11f2663", "created": "2016-04-14T05:13:00.000000"}], "components": [], "created": "2016-03-23T13:30:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@5ec79921"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz5a6v:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Had some bandwidth to knock out this ticket"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "14/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_70902_*|*_10007_*:*_1_*:*_42925682_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_38319835_*|*_10006_*:*_1_*:*_1827915158"}], "description": "Implement the `reverse_each` function to match the existing Ruby implementation.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48053", "fixedVersions": [], "id": "48053", "issueType": "New Feature", "key": "NPUP-35", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-14T15:51:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement the `reverse_each` function.", "timeSpent": "PT0S", "updated": "2016-04-14T15:51:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:c7e2df03-377d-4bf0-9407-106b8483430d", "body": "Merged to master at [e2a6753|https://github.com/puppetlabs/puppetcpp/commit/e2a67530f7f10f60658eaa309ea999fa106b1fa7].", "created": "2016-04-05T16:08:00.000000"}], "components": [], "created": "2016-03-21T17:01:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@76f44a43"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz58en:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted due to extra bandwidth"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "05/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_7701531_*|*_1_*:*_1_*:*_3097350_*|*_10007_*:*_1_*:*_427460762_*|*_3_*:*_1_*:*_693906081_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_503431_*|*_10006_*:*_1_*:*_168411090"}], "description": "Implement type aliases in accordance with the Puppet Language Specifications.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48048", "fixedVersions": ["NPUP 0.1.0"], "id": "48048", "issueType": "New Feature", "key": "NPUP-34", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-05T18:25:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement type aliases.", "timeSpent": "PT0S", "updated": "2016-04-05T18:25:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master: b7d1689", "created": "2016-03-24T11:13:00.000000"}], "components": [], "created": "2016-03-21T16:54:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@54c4513b"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz58ef:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted due to extra bandwidth (merge only)"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "24/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_23452_*|*_10007_*:*_1_*:*_76750828_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_427953129_*|*_10006_*:*_1_*:*_161930384"}], "description": "Implement support for the Iterator type according to Puppet Specifications.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48013", "fixedVersions": ["NPUP 0.1.0"], "id": "48013", "issueType": "New Feature", "key": "NPUP-33", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-29T10:05:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement support for the Iterator type", "timeSpent": "PT0S", "updated": "2016-04-04T14:02:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-03-21T16:53:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@70d345cf"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz58e7:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted due to extra bandwidth (merge only)"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_28862_*|*_1_*:*_1_*:*_26154_*|*_10007_*:*_1_*:*_80326409_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_428246422_*|*_10006_*:*_1_*:*_157853523"}], "description": "Implement support for the Iterable type according to Puppet Specifications.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48025", "fixedVersions": ["NPUP 0.1.0"], "id": "48025", "issueType": "New Feature", "key": "NPUP-32", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-29T10:01:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement support for the Iterable type", "timeSpent": "PT0S", "updated": "2016-04-04T14:01:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "It may be better to get the tokens from the lexer and then interpreting them after having received all of the tokens for the interpolation expression.", "created": "2016-03-17T05:04:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "ah, ready for merge already", "created": "2016-03-17T05:05:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master: 0be8011", "created": "2016-03-17T05:08:00.000000"}], "components": [], "created": "2016-03-17T00:29:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@123fc838"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz540n:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Found"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "found in npup"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "17/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_9777_*|*_10007_*:*_1_*:*_14428780_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_131700237_*|*_10006_*:*_1_*:*_2273419"}], "description": "Lexing of the following is incorrect:\n\n{code}\n\"${ foo }\"\n{code}\n\nThis should be interpolated as a variable but instead it is interpolated as a name.\n\nThe problem is that the variable check in the lexer doesn't account for whitespace surrounding the potential variable.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48036", "fixedVersions": ["NPUP 0.1.0"], "id": "48036", "issueType": "Bug", "key": "NPUP-31", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-18T17:43:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Variable interpolation doesn't work properly with whitespace.", "timeSpent": "PT0S", "updated": "2016-03-18T17:43:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "When we did try dynamic scope rule for those defaults, a lot of things started to fall over in users code. We did make that change but had to revert it as the usefulness of the expression was reduced to almost nothing. The real solution I think is to replace it with something that is completely different and that solves a bunch of other things. That unfortunately has a longer fuse.\n\nIf implemented as \"same as variable resolution\", it will work for those that make light use of this feature, but it will break for those that use it as an important mechanism in their overall design. With the other changes in Puppet 4.x and general sanitation that brings to peoples code there is hopefully fewer that rely on the dynamic scoped resource defaults to work. With modern use of data bindings, and new features (local defaults for resource + much more), we may even be at a point where the Resource Defaults could be retired completely. (Study needed).\n\nSo - what is best here? A somewhat working implementation (follow variable scope) that isn't compatible with the runtime in ruby, a full (but horrible) implementation. Or just a flat out \"don't use that\" we will deprecate it in the Ruby impl. I think the answer depends very much on the timeline.\n\nPing [~accountid:70121:199f31c7-67c7-42b0-b148-18ad3a391ab0]", "created": "2016-03-15T14:21:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: 13605b5", "created": "2016-03-16T16:57:00.000000"}], "components": [], "created": "2016-03-14T20:48:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@46cd24f0"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz52xj:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "low prio work completed outside of sprint"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "2.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "15/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_59563475_*|*_10007_*:*_1_*:*_99429546_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_173816629"}], "description": "Implement resource defaults expression evaluation, such as:\n\n{code}\nType {\n  foo => bar,\n  bar => baz\n}\n{code}\n\nWith respect to scoping, I think that the native compiler should use the \"static scoping rule\" like variable lookup and not the \"dynamic scoping rule\" that resource defaults currently employ.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48034", "fixedVersions": ["NPUP 0.1.0"], "id": "48034", "issueType": "New Feature", "key": "NPUP-30", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-18T17:14:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement resource defaults expression evaluation.", "timeSpent": "PT0S", "updated": "2016-03-18T17:14:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: f44be30\n(as per agreements, jumping to test after merge for visibility).", "created": "2016-03-10T13:19:00.000000"}], "components": [], "created": "2016-03-07T17:12:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@5e5062e9"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynkin:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "10/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_202457_*|*_10007_*:*_1_*:*_244352138_*|*_10009_*:*_1_*:*_55223952_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_16413432_*|*_10006_*:*_1_*:*_594082"}], "description": "The following code parses as a collector expression followed by a hash:\n\n{code}\nFile <| tag == foo |> {\n  attr => baz\n}\n{code}\n\nThat parse is incorrect; the above is a resource override expression.\n\nApparently I implemented support for collectors in resource override expressions in the expression evaluator, but didn't fix the parser rule for resource override expressions.\n\nThe rule needs to be updated to allow the above to parse correctly and add the above as a test.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48021", "fixedVersions": ["NPUP 0.1.0"], "id": "48021", "issueType": "Bug", "key": "NPUP-29", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-11T09:12:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Parser does not parse resource override expressions for collectors correctly", "timeSpent": "PT0S", "updated": "2016-03-11T09:12:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "This is for evaluation of regular expressions, thus low priority at the moment.", "created": "2016-03-07T16:30:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "I think this is more important and needed sooner, Regexp is part of the type system. The type system is part of Pcore, and Pcore is used to define the serialization.", "created": "2016-03-08T07:04:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "Could you explain why the native compiler would use the type system to perform serialization?  I'm not looking to actually use Puppet for the serialization", "created": "2016-03-08T11:13:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "[~accountid:557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c] It does not have to, but eventually it will need to support full Pcore. A first implementation could have a hardcoded serialization output, but I think it is best to do it via Pcore. Now, wrt. to regular expressions, we may not have any in Pcore that requires Onigmo.\n\nPcore is a subset of Puppet, so \"running\" is not exactly what it has to do. But if there are regular expressions they are expressed with the expectation of being compatible with Onigmo.\n\nAlso, it is fine to have a hard coded mapping to the model for the purpose of producing XPP, but we will use Pcore extensively for a variety of data exchange things. I am aware that for the AST it may just be the \"well know URI\" that triggers the serialization in the expected format.", "created": "2016-03-08T18:10:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: 5d44497", "created": "2016-04-26T07:59:00.000000"}], "components": [], "created": "2016-03-07T16:26:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@3447a493"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Highest Test Level", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Acceptance"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4xmn:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted into the sprint as deemed an important feature to implement"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "08/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_5804_*|*_10007_*:*_1_*:*_25586847_*|*_3_*:*_1_*:*_389942334_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_35027237_*|*_10006_*:*_1_*:*_3870415527"}], "description": "The current C++ standard doesn't allow for the perl-like syntax that Ruby is based off of for regular expressions; instead it comes with support for ECMAScript syntax, which is what the native compiler is currently defaulting to. While this is fine for the majority of simple regular expressions in the wild, we can run into problems with things like specifying group options (which we've explicitly documented as supporting), which ECMAScript does not inherently support.\n\nTo maximize compatibility with existing regular expressions, I propose we use and link against Onigmo, which is what Ruby uses for its regular expression library in 2.0+.  This will ensure that current regular expressions in the Puppet language are compatible with the native evaluator.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48037", "fixedVersions": ["NPUP 0.1.0"], "id": "48037", "issueType": "Improvement", "key": "NPUP-28", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Major", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-26T17:42:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Integrate Onigmo for maximum regex compatibility with existing Puppet regular expressions", "timeSpent": "PT0S", "updated": "2016-04-26T17:43:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master: 277beb3", "created": "2016-03-05T06:50:00.000000"}], "components": [], "created": "2016-03-05T00:27:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@5855d9a9"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4wqv:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "05/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_373744598_*|*_1_*:*_1_*:*_19244_*|*_10007_*:*_1_*:*_21317416_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_1625574"}], "description": "The following manifest:\n\n{code}\nclass foo inherits bar\n{\n}\nclass bar inherits foo\n{\n}\ninclude foo\n{code}\n\ncauses a confusing \"expected a parent scope\" unhandled exception.  This message should be improved and the exception handled.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48043", "fixedVersions": ["NPUP 0.1.0"], "id": "48043", "issueType": "Bug", "key": "NPUP-27", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-09T14:39:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Poor error message when class inheritance is circular", "timeSpent": "PT0S", "updated": "2016-03-09T14:39:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-03-05T00:25:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@7710891f"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4wqn:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_372096516_*|*_1_*:*_1_*:*_167150_*|*_10007_*:*_1_*:*_22973311_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_1610926"}], "description": "The following manifest:\n\n{code}\nclass foo\n{\n}\nclass bar inherits ::foo\n{\n}\ninclude bar\n{code}\n\ncauses an unhandled exception of {{expected a parent scope.}}.  Remove the leading {{::}} and the evaluation succeeds. ", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48031", "fixedVersions": ["NPUP 0.1.0"], "id": "48031", "issueType": "Bug", "key": "NPUP-26", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-09T14:39:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Unhandled exception when inherited class name starts with ::", "timeSpent": "PT0S", "updated": "2016-03-09T14:39:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "A complete repl that is useful for testing and finding bugs in your manifests is indeed very useful but it is a fairly large undertaking. \nWe have lots of other things to fix before that.", "created": "2016-03-04T16:10:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "For funsies, I actually implemented a fairly functional REPL in my spare time over the weekend.\n\n{code}\n$ puppetcpp repl\npeterhu-osx.hsd1.or.comcast.net:001:1> $numbers = [1, 2, 3]\n => [1, 2, 3]\npeterhu-osx.hsd1.or.comcast.net:002:1> $numbers.each |Integer $x| {\npeterhu-osx.hsd1.or.comcast.net:002:2> notice $x\npeterhu-osx.hsd1.or.comcast.net:002:3> }\nNotice: Scope(Class[main]): 1\nNotice: Scope(Class[main]): 2\nNotice: Scope(Class[main]): 3\n => [1, 2, 3]\npeterhu-osx.hsd1.or.comcast.net:003:1> $numbers.each |String $x| {\npeterhu-osx.hsd1.or.comcast.net:003:2> notice $x\npeterhu-osx.hsd1.or.comcast.net:003:3> }\nError: <repl>:1:16: parameter $x has expected type String but was given Integer.\n    $numbers.each |String $x| {\n                   ^~~~~~~~~\npeterhu-osx.hsd1.or.comcast.net:004:1>\n{code}\n\nIt was fairly easy to do and makes use of GNU readline for command history and line editing.\n\nIt can (optionally, not by default) output a final catalog as if the session's input was typed into a manifest (current known issue: class evaluation is not transactional, so if evaluation fails, the class' resource is still added to the catalog", "created": "2016-03-07T15:52:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Cool. I think we should add it even if evaluation is not the primary focus atm. ", "created": "2016-03-07T16:22:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "I threw a PR up, but reviewing and merging it is lowest priority.", "created": "2016-03-07T16:29:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: f4339ad", "created": "2016-03-30T08:29:00.000000"}, {"author": "557058:e346dd15-0cb4-4ff2-a5d8-46553d04e715", "body": "we might actually want to FR this one.  \nwhat is the user interaction, here?\nany opinions on acceptance criteria would help.\n\ne.g. will this have a puppet subcommand, or similar (puppet parser repl, puppet repl?)?", "created": "2016-03-30T11:59:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "The docker image I put together ([peterhuene/puppetcpp|https://hub.docker.com/r/peterhuene/puppetcpp/]) contains this commit and is up-to-date with master if you want to do some functional review.\n\nGeneral acceptance, in my opinion, should be that it functions like {{irb}} but for Puppet code evaluation.  Obviously do to the nature of Puppet's delayed evaluation, things like the evaluation of defined types occur only when you're exiting the shell to \"produce\" a final catalog, so that is definitely a difference between the two environments.\n\nI could see this eventually being a {{puppet repl}} command, but that's a packaging issue really to lay down a small shim script that calls the native compiler accordingly.\n\nWe'll need a more formal definition of what the {{repl}}'s command line format should be and behavior, but this is a start to get us thinking about that.", "created": "2016-03-30T12:56:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "[~accountid:557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c] I added some very basic acceptance criteria - add more if you want to...", "created": "2016-04-05T10:40:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "That criteria sounds reasonable to me.  Thanks!", "created": "2016-04-05T10:49:00.000000"}, {"author": "557058:e346dd15-0cb4-4ff2-a5d8-46553d04e715", "body": "SO cool!\n\n{code}\n\u2713 erict@erict-mbp ~$ docker run -it peterhuene/puppetcpp repl -n test\ntest:001:1> $a = 1 + 2", "created": "2016-04-05T22:48:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "Currently the REPL is expecting to parse a \"statement\" and not \"statements\" (which is a semicolon-delimited list of statement).  I can easy change it so that:\n\n{code}\n$a = 1 + 2", "created": "2016-04-05T22:52:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Suggest logging a ticket for the \"statement\" => \"statements\" change... (and that we update the acceptance criteria :-) )", "created": "2016-04-06T10:01:00.000000"}], "components": [], "created": "2016-03-04T15:12:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@f657f9b"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4wkn:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted due to bandwidth (merge and review only)"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "04/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_8542_*|*_10007_*:*_1_*:*_1954837306_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_570218657_*|*_10006_*:*_1_*:*_263778195"}], "description": "Implement a {{repl}} (read-evel-print-loop) command that functions like Ruby's {{irb}}, but for the Puppet language.\n\nThe options should be similar to the {{compile}} command, but instead of compiling manifests, it should prompt the user for input, evaluating each line (or multiple lines) as individual statements.\n\nUsers should be able to finish the REPL session and optionally write out any catalog that would normally have been produced as if the user had typed the REPL session into a manifest file and compiled that.\n\nThis command could be used to quickly test out the Puppet language and the native parser / evaluator.\n\nACCEPTANCE CRITERIA\n----\nIn this initial version, the acceptance criteria are very modest.\n* It is possible to start the repl\n* an expression like {{$a = 1 + 2; notice $a}} can be entered with the result of displaying the result {{3}}.\n* a syntax error in input is pointed out\n* up/down arrows browses history and a selected line from history can be edited and evaluated\n* it is possible to exit", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48057", "fixedVersions": [], "id": "48057", "issueType": "New Feature", "key": "NPUP-25", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-05T22:53:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement a 'repl' command.", "timeSpent": "PT0S", "updated": "2016-04-06T10:01:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: ccce3a8", "created": "2016-03-03T15:21:00.000000"}, {"author": "557058:e346dd15-0cb4-4ff2-a5d8-46553d04e715", "body": "no packages, no good way to test, yet.", "created": "2016-03-08T14:35:00.000000"}], "components": [], "created": "2016-03-02T13:23:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@527f1817"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Highest Test Level", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Acceptance"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4usv:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Found"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Found after the parse command work on the native compiler was merged"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "03/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_346909078_*|*_1_*:*_1_*:*_7705_*|*_10007_*:*_1_*:*_79907972_*|*_3_*:*_1_*:*_370304_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_82326830_*|*_10006_*:*_1_*:*_13234763"}], "description": "If an environment's {{manifest}} setting points at a directory (which is the default), the native compiler is not recursing to find main manifests.\n\nThe recursion needs to be done in the currently performed sort-order to make the traversal order predictable.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48023", "fixedVersions": [], "id": "48023", "issueType": "Bug", "key": "NPUP-24", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-08T14:35:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Environment manifest setting, when a directory, is not recursing on subdirectories", "timeSpent": "PT0S", "updated": "2016-03-08T14:35:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "Closing for now as we don't currently recurse on directory symlinks in Puppet when globbing for manifests.  We can revisit this for parity in the future if Puppet changes.", "created": "2016-03-02T17:10:00.000000"}], "components": [], "created": "2016-03-02T13:19:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@5b154cda"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4usn:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_6528_*|*_6_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_13854659"}], "description": "For the parse command and when searching for manifests when an environment's {{manifest}} setting is a directory, we need to recurse on symlinks to directories.\n\nBoost defaults to not recursing on directory symlinks, so currently they are being ignored by the native compiler.\n\nHowever, when we do add support for this, we need to detect directory symlinks and ensure the link doesn't cause a loop.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48020", "fixedVersions": [], "id": "48020", "issueType": "Bug", "key": "NPUP-23", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Won't Fix", "resolutionDate": "2016-03-02T17:10:00.000000", "status": "Closed", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Recurse on symbolic directory links when searching for files", "timeSpent": "PT0S", "updated": "2017-03-01T17:33:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "There are three settings that I know of that relates to parsing:\n\n* The {{\\--strict}} option (off, warning, error) added in 4.5.0 may be one to add to control how to handle \"deprecations\"\n* There is also the \"disabled deprecation warnings\" (have to search its actual name) which lets individual deprecations be turned off.\n* Puppet has {{\\--strict_variables}} that has behavior that is in combination with the {{\\--strict}} flag.\n", "created": "2016-03-02T15:32:00.000000"}], "components": [], "created": "2016-03-02T12:49:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@2d7b504d"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hzc6m7:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "2.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "02/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_36141_*|*_6_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_44849162349"}], "description": "!http://i.imgur.com/WY031rI.jpg!\n\nThe native compiler needs to surface a logical subset of settings in the {{settings}} class and those expected to be set as top-level variables (such as {{environment}}).\n\nRight now we have:\n\n{code}\nsettings::basemodulepath\nsettings::codedir\nsettings::environment\nsettings::environmentpath\nsettings::manifest\nsettings::modulepath\n{code}\n\nThese are settings the native compiler currently respects from the command line and environment.conf where relevant.  More may be needed to minimize breaking code depending on these variables.\n\nThe native compiler should also use defaults from puppet.conf.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48060", "fixedVersions": [], "id": "48060", "issueType": "Bug", "key": "NPUP-22", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Won't Do", "resolutionDate": "2017-08-03T15:56:00.000000", "status": "Closed", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Ensure settings and top-level variables match (to a logical extent) those set by the Ruby implementation", "timeSpent": "PT0S", "updated": "2017-08-03T15:56:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-02-17T09:22:00.000000", "creator": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "customFieldValues": [{"fieldName": "Scrum Team/s", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiselect", "value": "Language"}, {"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Team/s", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiselect", "value": "Agent"}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@9695f59"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Color", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-color", "value": "ghx-label-6"}, {"fieldName": "Epic Name", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-label", "value": "Theme: Parsing"}, {"fieldName": "Epic Status", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-status", "value": "Done"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Issue color", "fieldType": "com.pyxis.greenhopper.jira:jsw-issue-color", "value": "green"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4krj:"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_127892_*|*_6_*:*_1_*:*_0_*|*_10013_*:*_1_*:*_39709494051"}], "description": "This groups all NPUP tickets related to parsing.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48019", "fixedVersions": [], "id": "48019", "issueType": "Epic", "key": "NPUP-21", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "resolution": "Won't Do", "resolutionDate": "2017-05-22T00:49:00.000000", "status": "Closed", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Theme: Parsing", "timeSpent": "PT0S", "updated": "2017-07-24T15:40:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-02-17T09:20:00.000000", "creator": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "customFieldValues": [{"fieldName": "Scrum Team/s", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiselect", "value": "Language"}, {"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@78ebbf02"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Color", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-color", "value": "ghx-label-4"}, {"fieldName": "Epic Name", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-label", "value": "Theme: Validation"}, {"fieldName": "Epic Status", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-status", "value": "To Do"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Issue color", "fieldType": "com.pyxis.greenhopper.jira:jsw-issue-color", "value": "dark_blue"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4krb:"}], "description": "This groups all the tickets related to (static) validation of puppet logic for the native parser/validator.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48045", "fixedVersions": [], "id": "48045", "issueType": "Epic", "key": "NPUP-20", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "status": "Developing", "statusCategory": "In Progress", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Theme: Validation", "timeSpent": "PT0S", "updated": "2017-07-24T16:01:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-02-17T09:17:00.000000", "creator": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "customFieldValues": [{"fieldName": "Scrum Team/s", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiselect", "value": "Language"}, {"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@7c16b90"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Color", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-color", "value": "ghx-label-2"}, {"fieldName": "Epic Name", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-label", "value": "Theme: Evaluation"}, {"fieldName": "Epic Status", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-status", "value": "To Do"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Issue color", "fieldType": "com.pyxis.greenhopper.jira:jsw-issue-color", "value": "dark_yellow"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4kr3:"}], "description": "This epic groups all NPUP evaluation related tickets while the evaluation support is being brought up to par with the Ruby evaluator.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48042", "fixedVersions": [], "id": "48042", "issueType": "Epic", "key": "NPUP-19", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "status": "Designing", "statusCategory": "In Progress", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Theme: Evaluation", "timeSpent": "PT0S", "updated": "2017-07-24T16:01:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "String interpolation can nest to any level. e.g.\n{code}\n\"string1 ${ \"string2 ${ \"string3...\" } end of string2\"} end of string 1\"\n{code}\n\n\nYeah, so the puppet syntax highlighter did not like that :-)", "created": "2016-02-10T20:24:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: 594e5ea", "created": "2016-02-24T21:01:00.000000"}], "components": [], "created": "2016-02-10T14:28:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@15167f8"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-21"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynnaf:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "11/Feb/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_10512_*|*_10007_*:*_1_*:*_191775018_*|*_3_*:*_1_*:*_882428671_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_158994123"}], "description": "The lexer currently assumes that double quoted strings are anything between two double quoted characters, where the ending quote is not escaped.\n\nThis is incorrect as Puppet supports not having to escape double quoted strings in an interpolation expression within the string.\n\nFor example:\n\n{code}\nnotice \"${\"foo\"}\"\n{code}\n\nThis should output 'foo'.  Instead, it is a syntax error as the lexer interprets the double quoted string as two strings ({{\"${\"}} and {{\"}\"}}) separated by a name {{foo}}.", "epicLinkSummary": "Theme: Parsing", "estimate": "PT0S", "externalId": "48052", "fixedVersions": [], "id": "48052", "issueType": "Bug", "key": "NPUP-18", "labels": [], "originalEstimate": "PT0S", "parent": "48019", "parentSummary": "Theme: Parsing", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-02-24T21:01:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Lexer does not properly handle double quoted strings with embedded double quotes in an interpolation", "timeSpent": "PT0S", "updated": "2016-02-24T21:01:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "[~accountid:557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c] Is the ticket description up to date in terms of what the command should do? After having done a review, I think the description needs an update.", "created": "2016-03-02T06:49:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: c8ed7cc", "created": "2016-03-02T07:27:00.000000"}, {"author": "557058:e346dd15-0cb4-4ff2-a5d8-46553d04e715", "body": "no packages, no good way to test, yet.", "created": "2016-03-08T14:35:00.000000"}], "components": [], "created": "2016-02-04T16:44:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@59828c1b"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "PUP-5906"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynna7:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "5.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "02/Mar/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_461571505_*|*_1_*:*_1_*:*_5097_*|*_10007_*:*_1_*:*_50837429_*|*_3_*:*_1_*:*_2248585688_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_82442569"}], "description": "Implement a parse command that will be responsible for parsing and validated Puppet source files, producing serialized ASTs that can be used to integrate the native compiler (initially just the parsing) into the catalog compilation process.\n\nProposed parse command syntax:\n{code}\n$ puppetcpp help parse\n\nUsage: puppetcpp parse [options] [[manifest|directory] ...]\n\nParse Puppet manifests into Abstract Syntax Tree representations.\n\nOptions:\n\n  --code-dir arg                        The Puppet code directory to use.\n                                        Defaults to the current platform's code\n                                        directory.\n  --color                               Forces color output on platforms that\n                                        support colorized output.\n  -d [ --debug ]                        Enable debug output.\n  -e [ --environment ] arg (=production)\n                                        The environment to parse for.\n  --environment-dir arg                 Specifies a directory to search for\n                                        environments.\n  -f [ --format ] arg (=yaml)           Abstract Syntax Tree format. Supported\n                                        formats: yaml, msgpack.\n  --help                                Display command help.\n  -l [ --log-level ] arg (=notice)      Set logging level. Supported levels:\n                                        debug, info, notice, warning, error,\n                                        alert, emergency, critical.\n  --module-dir arg                      Specifies a directory to search for\n                                        global modules.\n  --no-color                            Disables color output.\n  --verbose                             Enable verbose (info) output.\n\nIf no manifests or directories are specified, this command parses all manifests\nin an environment and writes Abstract Syntax Tree (AST) representations of the\nPuppet manifests to the environment's parse directory.\n\nIf manifests or directories are specified, only the specified manifests will be\nparsed. The output will be written a parse directory under the current\ndirectory.\n{code}", "epicLinkSummary": "Native Puppet Parser - make puppet use native parse and validate", "estimate": "PT0S", "externalId": "48041", "fixedVersions": [], "id": "48041", "issueType": "New Feature", "key": "NPUP-17", "labels": [], "originalEstimate": "PT0S", "parent": "23700", "parentSummary": "Native Puppet Parser - make puppet use native parse and validate", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-08T14:35:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement a parse command", "timeSpent": "PT0S", "updated": "2016-03-08T14:35:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master: fdfaa45", "created": "2016-02-01T18:46:00.000000"}], "components": [], "created": "2016-01-25T12:19:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@3734050"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz43hj:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "02/Feb/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_9798_*|*_10007_*:*_1_*:*_347775764_*|*_3_*:*_1_*:*_280235127_*|*_5_*:*_1_*:*_0"}], "description": "The native compiler needs to support more commands than simply \"compiling\" a catalog for an environment.\n\nWhen run without commands, the native compiler should output the help showing the available commands.\n\nInitially there should be three commands: compile (current behavior), help (display command help), and version (shows the compiler's version information).\n\nWhen run without a command, the native compiler should display a useful help summary with the list of supported commands:\n{code}\n$ bin/puppetcpp\n\nUsage: puppetcpp <command> [options]\n\nCompiles Puppet manifests into Puppet catalogs.\n\nCommands:\n\n  compile  Compile Puppet manifests into a Puppet catalog\n  help     Display help information\n  version  Show the version information\n\nRun 'puppetcpp help <command>' for more information on a command.\n{code}\n\nThe compile command should support the same options as before, except for the {{--version}} option which is now handled as a separate command:\n{code}\n$ bin/puppetcpp help compile\n\nUsage: puppetcpp compile [options] [[manifest] [manifest] ...]\n\nCompile Puppet manifests into a Puppet catalog.\n\nOptions:\n\n  --code-dir arg                        The Puppet code directory to use.\n                                        Defaults to the current platform's code\n                                        directory.\n  --color                               Forces color output on platforms that\n                                        support colorized output.\n  -d [ --debug ]                        Enable debug output.\n  -e [ --environment ] arg (=production)\n                                        The environment to compile for.\n  --environment-dir arg                 Specifies a directory to search for\n                                        environments.\n  -f [ --facts ] arg                    The path to the YAML facts file to use.\n                                        Defaults to the current system's facts.\n  -g [ --graph ] arg                    The path to write a DOT language file\n                                        for viewing the catalog dependency\n                                        graph.\n  --help                                Display command help.\n  -l [ --log-level ] arg (=notice)      Set logging level.\n                                        Supported levels: debug, info, notice,\n                                        warning, error, alert, emergency,\n                                        critical.\n  --module-dir arg                      Specifies a directory to search for\n                                        global modules.\n  -n [ --node ] arg                     The node name to use. Defaults to the\n                                        'fqdn' fact.\n  --no-color                            Disables color output.\n  -o [ --output ] arg (=catalog.json)   The output path for the compiled\n                                        catalog.\n  --verbose                             Enable verbose (info) output.\n\nCompiles a Puppet manifest into a Puppet catalog. When invoked with no options,\nthe compiler will compile the manifest for the 'production' environment.\n\nManifests will be evaluated in the order they are presented on the command line.\n{code}\n\nThe help command displays either the default help message when no command is supplied (as seen above when running without arguments) or a particular command's help message in the following format:\n\n* Usage\n* Short description\n* Options (if supported)\n* Summary\n\nEach command provides enough information for the help command to render the help message so that the individual commands do not concern themselves with the formatting of the message.\n\nLastly, the version command simply prints out the compiler's version (this is currently a dummy value):\n{code}\n$ bin/puppetcpp version\n0.1.0\n{code}\n\nIf the first argument is an option that matches a command name, it is treated as the command.\n\nFor example:\n{code}\n$ bin/puppetcpp --version\n0.1.0\n\n$bin/puppetcpp --help\n...\n{code}\n", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48035", "fixedVersions": [], "id": "48035", "issueType": "Improvement", "key": "NPUP-16", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-02-01T18:46:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Refactor command line options to support commands", "timeSpent": "PT0S", "updated": "2016-02-03T09:19:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2016-01-20T13:58:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@294c417a"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz40mn:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Bandwidth and much needed refactoring of native compiler internals"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_155188753_*|*_1_*:*_1_*:*_92803871_*|*_10007_*:*_1_*:*_67559771_*|*_3_*:*_1_*:*_289327279_*|*_5_*:*_1_*:*_0"}], "description": "Now that NPUP-5 is merged, we should refactor operator dispatch to make use of the same functionality.  This would unify operator \"calls\" with function dispatching, preventing the repetitive type checking that the operators currently use.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48018", "fixedVersions": [], "id": "48018", "issueType": "Improvement", "key": "NPUP-15", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-01-27T13:59:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Refactor operator dispatch to use Puppet type signatures", "timeSpent": "PT0S", "updated": "2016-01-27T13:59:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "This issue was found during the review of Thomas' fix for guaranteed ordering when evaluating argument default values.  Pulled into this sprint as I have the bandwidth and it is a very easy fix.", "created": "2016-01-15T16:05:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: b1c62ff", "created": "2016-01-21T07:03:00.000000"}, {"author": "557058:f1e252bd-73da-4e0e-90f7-f0aefb98d28c", "body": "This ticket was dropped into the integration sprint by mistake. Moving it back to Language where it belongs.", "created": "2016-01-21T09:02:00.000000"}], "components": [], "created": "2016-01-14T21:22:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@147e7f47"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz3ycf:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Found"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Found as a result of a review on a PUP ticket"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "21/Jan/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_9545_*|*_10007_*:*_1_*:*_62039332_*|*_3_*:*_1_*:*_423917403_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_67318471"}], "description": "The following code:\n\n{code}\nclass foo($a = foo =~ /foo/, $b = $0) {\n    notice $a, $b\n}\n\ninclude foo\n{code}\n\noutputs:\n{code}\nNotice: Scope(Class[foo]): true foo\n{code}\n\nThis is incorrect because each parameter's default value evaluation should have its own match scope.  The expected output is {{Notice: Scope(Class[foo]): true}} as {{$0}} should be undef.\n\nThis will prevent the match variables (e.g. {{$0}}) from being available between parameters or inside the body.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48029", "fixedVersions": [], "id": "48029", "issueType": "Bug", "key": "NPUP-14", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-01-21T07:03:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Parameter default value evaluation should have its own match scope", "timeSpent": "PT0S", "updated": "2016-01-21T09:02:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: 8de31a5", "created": "2016-01-20T14:53:00.000000"}], "components": [], "created": "2016-01-11T12:27:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@1e9ab5cb"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynr4n:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Found"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Found from related PUP ticket; brought into sprint as low-risk fix."}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "20/Jan/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_50518_*|*_1_*:*_1_*:*_62901_*|*_10007_*:*_1_*:*_782444030_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_3881320"}], "description": "See [PUP-1985] for related Puppet ticket.\n\nThe call evaluator already sets variables into the new scope in declaration-order when a call is evaluated with pass-by-array or a pass-by-hash (used in parameterized EPP).\n\nHowever, for pass-by-resource (class and defined type evaluation), the default parameters are set into the resource before set into scope, preventing later parameters from having their default values reference earlier parameters.  This needs to be addressed with this ticket.\n\nAdditionally, because of the way pass-by-resource works, parameters in classes and defined types are not being checked for duplicated variable names.  While this should be handled by any future AST validator, the call evaluator should also fail if it cannot set a variable in the new scope because it already exists.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48051", "fixedVersions": [], "id": "48051", "issueType": "Bug", "key": "NPUP-13", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-01-20T14:54:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Allow class & define parameters to reference earlier parameters", "timeSpent": "PT0S", "updated": "2016-01-20T14:54:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "The Ruby implementation has a function that determines if an expression modifies \"state\". The 'idem' function in the checker return true if the expression leaves state unchanged ('idem' is latin and means 'same'", "created": "2015-12-20T10:33:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "I think the confusion here is that I attempted to be stricter than the Ruby implementation in terms of detecting \"expressions without effect\".\n\nFor example, the native compiler will error (with the outstanding PR that fixes a bug) if you attempt to compile {{($foo = 1) + 1}} because, while the nested expression does have an effect, the subsequent addition operation produces a value (i.e. {{2}}) that is not used and thus makes the overall expression superfluous.  Contrast this with just {{$foo = 1}}, which has an effect and produces a value that was \"used\".\n\nThe question of \"is the entire expression 'productive' (in the sense that it accomplished something)?\" was related to checking \"statement-level\" expressions.  The question of \"does this expression have a side-effect?\" would be a different question to ask default parameter values because it is always assumed those expressions to be \"productive\" as they are implicitly being assigned to a variable.  This is why I was discussing the need for two different functions earlier.\n\nI can certainly limit the \"has effect\" checking to any part of the expression rather than the whole expression, which in this case we would only need one function instead of the two I proposed above: {{expression::has_side_effect}}.  I have no qualms about matching the Ruby implementation's behavior or making the requirement that statement-level expressions have a side-effect (rather than checking for \"unused\" value) and do an additional warning-level diagnostic for expressions that produce \"unused\" values like the one above.\n\nPersonally I think detecting statement-level expressions without effect, such as {{1 + 1}}, to be the realm of a linter and not a compiler, but I understand the reasons why we do this in the compiler.\n\n", "created": "2015-12-21T17:37:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "afaik, the Ruby impl does flag {{($foo=1) + 1}} since the + expression is idem.\n\nI think it helps if the two implementations behave the same way. Not sure if you are saying that there is something missing/wrong with the Ruby impl, if so I can imagine changing it.", "created": "2015-12-22T05:16:00.000000"}], "components": [], "created": "2015-12-18T15:31:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@533509e2"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-20"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz3mvr:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Related to other validation work in the native parser"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "20/Dec/15"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_17947_*|*_10007_*:*_1_*:*_75267006_*|*_3_*:*_1_*:*_22484085_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_11234846_*|*_10006_*:*_1_*:*_16140801661"}], "description": "When the native evaluator was originally written, it attempted to copy the Ruby implementation's \"unproductive expressions may only appear last in a block\" error message.  At the time, I assumed the word \"unproductive\" meant \"accomplishes nothing\", i.e. an expression that is effectively useless (e.g. {{1 + 1}} by itself).  It seems this meaning is also used in the context of whether or not an expression produces a value that is ignored, which is confusing nomenclature.\n\nBecause the original intent of {{expression::is_productive}} was to mean \"accomplishes something\" and not \"does this produce a value that is ignored?\", I propose renaming {{expression::is_productive}} to {{expression::has_ignored_result}}.\n\nThe logic for detecting whether or not something produces a result that is ignored is currently incorrect:\n\n* Conditional expressions are incorrectly assumed to never produce an ignored result; however, they should be considered ignored if containing no expressions in the block(s) or if the last expression in the block is itself ignored.\n* Unary expressions are incorrectly assumed to produce an ignored result only if the operand does; however, they should always produce an ignored result.\n\nThe following expressions should still be considered as producing a result that is *not* ignored:\n\n* Assignment expressions\n* Relationship expressions\n* Function/method call expressions\n* All catalog expressions\n* All EPP expressions\n\nAdditionally, class, defined type, and node expressions should not allow any ignored results in their blocks, including the last expression.  Currently they allow the last expression to have an ignored result as if they return the value, which is incorrect.\n\nNote, we probably want a different function, such as {{expression::has_side_effect}} which behaves like the current implementation of the soon-to-be-renamed \"is_productive\": does this expression cause any side effect to the evaluation state when evaluated?  This can be used for places where expressions with side effects are disallowed (such as parameter default value expressions).\n", "epicLinkSummary": "Theme: Validation", "estimate": "PT0S", "externalId": "48056", "fixedVersions": [], "id": "48056", "issueType": "Bug", "key": "NPUP-12", "labels": [], "originalEstimate": "PT0S", "parent": "48045", "parentSummary": "Theme: Validation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-06-23T18:21:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Incorrect logic for detecting \"value produced but forgotten\" errors.", "timeSpent": "PT0S", "updated": "2016-06-23T18:21:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2015-12-16T13:02:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@4a5db139"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-20"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hzc6lr:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "2.0"}], "description": "For the following Puppet code:\n\n{code}\nfile {\n  owner => root\n}\n{code}\n\nThe error message points at \"file\" and notifies the user that an unproductive expressions may only appear last in the block. This is confusing (see PUP-5090).\n\nSuggestion: include the expression's \"type\" in the error message:\n\n{code}\nthe result of a 'string literal' expression was ignored; unproductive expressions may only appear last in a block.\n{code}\n\nThis at least lets the user know that this was interpreted as a string literal and instead of a Type, which was the intension (as part of a resource defaults expression).\n\nAdditional improvement: it would be nice if after detecting an unproductive string literal expression that we look ahead to the next expression and, if it is a hash literal, add a helpful suggestion of {{did you mean File?}}.  This is obviously heuristic-based and would only be for common mistakes such as this.", "epicLinkSummary": "Theme: Validation", "estimate": "PT0S", "externalId": "48040", "fixedVersions": [], "id": "48040", "issueType": "Improvement", "key": "NPUP-11", "labels": [], "originalEstimate": "PT0S", "parent": "48045", "parentSummary": "Theme: Validation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "status": "Ready for Engineering", "statusCategory": "To Do", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Improve error message for unproductive expressions", "timeSpent": "PT0S", "updated": "2017-03-09T03:40:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master: 2ae956e", "created": "2016-05-31T11:47:00.000000"}], "components": [], "created": "2015-12-16T13:00:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@6490a64b"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz66br:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "31/May/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_93803216_*|*_1_*:*_1_*:*_272666_*|*_10007_*:*_1_*:*_2492726376_*|*_3_*:*_1_*:*_3843534_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_912794_*|*_10006_*:*_1_*:*_11923853287"}], "description": "The arithmetic operators should support automatically converting a numeric String to a Numeric to perform the requested operation.  It should error if the String is not numeric.\n\nThis should output 2:\n{code}\nnotice 1 + '1'\n{code}\n\nBut this should not compile:\n{code}\nnotice 1 + foo\n{code}\n", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48026", "fixedVersions": [], "id": "48026", "issueType": "New Feature", "key": "NPUP-10", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-06-01T14:03:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement automatic String to Numeric conversion for arithmetic operators.", "timeSpent": "PT0S", "updated": "2016-06-01T14:03:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: e82b362", "created": "2016-06-24T09:16:00.000000"}], "components": [], "created": "2015-12-16T12:56:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@20019c95"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz60w7:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "24/Jun/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_39292_*|*_10007_*:*_1_*:*_60941660_*|*_3_*:*_1_*:*_61801560_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_262921589_*|*_10006_*:*_2_*:*_16362808532"}], "description": "See https://puppet.atlassian.net/browse/PUP-4277.\n\nCase and selector expressions should recursively match.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48055", "fixedVersions": [], "id": "48055", "issueType": "New Feature", "key": "NPUP-9", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-06-27T10:18:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement deep matches in case/selector expressions", "timeSpent": "PT0S", "updated": "2016-06-27T10:18:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: e52e5f6", "created": "2016-04-27T16:24:00.000000"}], "components": [], "created": "2015-12-16T12:53:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@2eb010cb"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz4km7:"}, {"fieldName": "Release Notes", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Not Needed"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Adopted due to extra bandwidth"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "27/Apr/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_670312_*|*_10007_*:*_1_*:*_84940096_*|*_3_*:*_1_*:*_397289_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_68937914_*|*_10006_*:*_1_*:*_11414246461"}], "description": "See these commits:\n\nhttps://github.com/puppetlabs/puppet/pull/3829 (Array)\nhttps://github.com/puppetlabs/puppet/pull/3853 (Hash)\n\nThe native compiler needs to implement the same mass-assignment behavior in the evaluator.\n", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48050", "fixedVersions": ["NPUP 0.1.0"], "id": "48050", "issueType": "New Feature", "key": "NPUP-8", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-04-28T11:33:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement mass assignment from Array and Hash", "timeSpent": "PT0S", "updated": "2016-04-28T11:33:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Actually, they should be side effect free - being productive means \"non void result\".", "created": "2015-12-17T08:45:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Hm, it is kind of tricky, for functions, we do not know if they are side effect free or not. They are at least not harmful in the sense that they introduce variables in a scope while that scope is being created / before it is created. (And we must allow function calls to take place).", "created": "2015-12-20T10:36:00.000000"}], "components": [], "created": "2015-12-16T12:51:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@2322b7ab"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-20"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hyn6an:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "1.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "17/Dec/15"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_808041_*|*_10007_*:*_1_*:*_75204439_*|*_3_*:*_1_*:*_795422235_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_10873937_*|*_10006_*:*_1_*:*_15549543787"}], "description": "Parameter default values should not have side effects, such as having an assignment expression at any point in the expression:\n\n{code}\nclass foo($bar = ($baz = wrong)) {}\n{code}", "epicLinkSummary": "Theme: Validation", "estimate": "PT0S", "externalId": "48047", "fixedVersions": [], "id": "48047", "issueType": "Bug", "key": "NPUP-7", "labels": [], "originalEstimate": "PT0S", "parent": "48045", "parentSummary": "Theme: Validation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-06-23T18:15:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Do not allow expressions with side effects in parameter default values", "timeSpent": "PT0S", "updated": "2016-06-23T18:15:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Note that registry must take module visibility into consideration. Code in the environment sees everything on the module path, a module sees everything it directly depends on if it has dependencies (but not further). If a module's dependency information is missing it sees all other modules on the module path (backwards compatibility).\n\nWe also have an unimplemented keyword 'private' which is intended to hide a definition from external scopes.\n\nThus a registry must be able to differentiate between these. The Ruby implementation is loosely modeled after OSGi, where loaders are arranged in a DAG, and each loaded puppet code snippet is associated with a loader from which the search takes place. (Compare class loaders in Java).\nAs an example, each module has a private, and a public node in the tree, code internal to the module starts in the private, then goes to the public etc. Then it searches its list of public nodes for the modules on which it directly depends. Also note that the environment has code, and that it can have private code.", "created": "2015-12-17T08:55:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: cbbad10", "created": "2016-03-23T10:29:00.000000"}], "components": [], "created": "2015-12-16T12:46:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@190583f9"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "Epic Link", "fieldType": "com.pyxis.greenhopper.jira:gh-epic-link", "value": "NPUP-19"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz57gn:"}, {"fieldName": "Scope Change Category", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Adopted"}, {"fieldName": "Scope Change Reason", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:textfield", "value": "Work ready to be reviewed and there was bandwidth"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "17/Dec/15"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_1087623_*|*_10007_*:*_1_*:*_500888819_*|*_5_*:*_1_*:*_0_*|*_10011_*:*_1_*:*_9196209_*|*_10006_*:*_1_*:*_7953405242"}], "description": "Once Puppet functions are implemented in the parser, implement evaluation of function calls to functions written in the Puppet language.\n\nThe registry should be updated to include function definitions and the scanner should add definitions.  The scanner should check with the dispatcher to see if a function is currently defined.\n\nThe dispatcher should be updated to locate a function in the registry when dispatching a function call.  If the function can't be found, it should invoke a search for the function before failing.", "epicLinkSummary": "Theme: Evaluation", "estimate": "PT0S", "externalId": "48033", "fixedVersions": [], "id": "48033", "issueType": "New Feature", "key": "NPUP-6", "labels": [], "originalEstimate": "PT0S", "parent": "48042", "parentSummary": "Theme: Evaluation", "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-03-23T13:02:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement Puppet function evaluation", "timeSpent": "PT0S", "updated": "2016-03-23T15:27:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "merged to master at: f05c5cd", "created": "2016-01-18T13:03:00.000000"}], "components": [], "created": "2015-12-16T12:42:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@51fa0c40"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynr4v:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "5.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "18/Jan/16"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_179500510_*|*_1_*:*_1_*:*_1305088_*|*_10007_*:*_1_*:*_243892218_*|*_3_*:*_1_*:*_191104011_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_2416123507"}], "description": "Native functions should internally use the Callable type to describe their expected signatures so that they aren't bogged down with error handling.\n\nThe dispatcher should locate the function and check the arguments against the signature before invoking the function.  When Callable can specify return types, it should also check the returned value of the function.\n\nThis will require some refactoring to how functions are invoked.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48022", "fixedVersions": [], "id": "48022", "issueType": "New Feature", "key": "NPUP-5", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-01-20T14:54:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Use Callable internally for native function dispatch", "timeSpent": "PT0S", "updated": "2016-01-20T14:54:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Also see PUP-5623 which describes how Callable should support specification of return type. This is needed to be able to represent things like RPC calls. We probably want to implement all of it at once for the native impl. [~accountid:557058:c7e2df03-377d-4bf0-9407-106b8483430d] is working on an impl for Ruby.", "created": "2015-12-17T08:37:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "There's a PR up for implementing the Callable type as it stands in Puppet (without PUP-5623's design changes, but that should be easy enough to implement).", "created": "2016-01-07T18:51:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: d6e7284", "created": "2016-01-15T16:27:00.000000"}], "components": [], "created": "2015-12-16T12:38:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@7fa10bec"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "QA Status", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Reviewed"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynr4f:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "3.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "17/Dec/15"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_426441143_*|*_1_*:*_1_*:*_1535781_*|*_10007_*:*_2_*:*_178855040_*|*_3_*:*_2_*:*_1735625020_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_689690877"}], "description": "Implement full support for the Callable type.  This won't be useful in the language until Puppet functions are implemented, but needs to be done to support passing blocks.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48017", "fixedVersions": [], "id": "48017", "issueType": "New Feature", "key": "NPUP-4", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-01-20T14:54:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement the Callable type", "timeSpent": "PT0S", "updated": "2016-01-20T14:54:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "I think we can skip feature flagging the app management tokens / grammar and always have it on in the native implementation.", "created": "2015-12-17T08:40:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Reviewed the PR - looks fine. I am not authorized to merge, so cannot do that bit.", "created": "2016-01-07T17:12:00.000000"}, {"author": "557058:80b1a2d0-6c75-4995-bdc3-c422bab7aabd", "body": "Merged to master at: 2a99714", "created": "2016-01-07T18:00:00.000000"}, {"author": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "body": "I've been holding off on thinking about setting up Jenkins CI until pl-build-tools is fully updated to gcc 5.2 (currently only some platforms build with 5.2, most with 4.8). [~accountid:63d40635a05386069cdb69d6] are there tickets around the gcc 5.2 migration? If so, let's create some NPUP tix (around adding pipelines) and block those on the gcc 5.2 tickets.\n\nMeanwhile, once it's merged it can be resolved.", "created": "2016-01-07T18:06:00.000000"}], "components": [], "created": "2015-12-16T12:36:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@6aa5ddba"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynviv:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "2.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "17/Dec/15"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_1181012_*|*_1_*:*_1_*:*_1687390_*|*_10007_*:*_1_*:*_680460196_*|*_3_*:*_1_*:*_87798484_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_1150326734"}], "description": "Implement produce/consume expressions in the parser.\n\nThis ticket covers the work only to parse produce and consume expressions in the parser so that the native compiler can parse source files containing such expressions.  The expression evaluation is not covered by this ticket, but the evaluator should raise an appropriate error when encountered.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48024", "fixedVersions": [], "id": "48024", "issueType": "New Feature", "key": "NPUP-3", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2016-01-07T18:20:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement produce/consume expressions in the parser", "timeSpent": "PT0S", "updated": "2016-01-07T18:20:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [], "components": [], "created": "2015-12-16T12:32:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@34373e84"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hynvif:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "2.0"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "10008_*:*_1_*:*_7308_*|*_1_*:*_1_*:*_1852486_*|*_10007_*:*_1_*:*_525007628_*|*_3_*:*_1_*:*_254912909_*|*_5_*:*_1_*:*_0_*|*_10006_*:*_1_*:*_435293439"}], "description": "Implement Puppet functions in the parser.  This work includes modifications to the grammar to parse functions defined in the Puppet language. \n\nImplementing Puppet function lookup or evaluation is out of scope for this ticket; the native compiler should be able to parse source files with the function defined, but not evaluate it.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48032", "fixedVersions": [], "id": "48032", "issueType": "New Feature", "key": "NPUP-2", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2015-12-30T14:37:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Implement Puppet functions in the parser", "timeSpent": "PT0S", "updated": "2015-12-30T14:37:00.000000", "votes": "0", "watchers": []}, {"affectedVersions": [], "assignee": null, "attachments": [], "comments": [{"author": "557058:d9266b08-990a-449f-97ff-f9a0910c2a58", "body": "For shame! \n\n!http://upboat.me/bteq/Test-Coverage?/-.jpg!", "created": "2015-12-04T09:17:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "https://www.youtube.com/watch?v=SrDSqODtEFM", "created": "2015-12-04T09:18:00.000000"}, {"author": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "body": "The PR for the initial parser coverage is up", "created": "2015-12-21T13:47:00.000000"}], "components": [], "created": "2015-12-04T09:14:00.000000", "creator": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "customFieldValues": [{"fieldName": "Sub-team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Approvals", "fieldType": "com.atlassian.servicedesk.approvals-plugin:sd-approvals", "value": "com.atlassian.servicedesk.plugins.approvals.internal.customfield.ApprovalsCFValue@63b8e252"}, {"fieldName": "Epic/Theme", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:labels", "value": []}, {"fieldName": "Capitalized?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Yes"}, {"fieldName": "People Involved", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker", "value": []}, {"fieldName": "Flagged", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes", "value": []}, {"fieldName": "Free ?", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons", "value": "Yes"}, {"fieldName": "Rank", "fieldType": "com.pyxis.greenhopper.jira:gh-lexo-rank", "value": "0|hz3dvr:"}, {"fieldName": "Scrum Team", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:select", "value": "Language"}, {"fieldName": "Story Points", "fieldType": "com.atlassian.jira.plugin.system.customfieldtypes:float", "value": "5.0"}, {"fieldName": "[CHART] Date of First Response", "fieldType": "com.atlassian.jira.ext.charting:firstresponsedate", "value": "04/Dec/15"}, {"fieldName": "[CHART] Time in Status", "fieldType": "com.atlassian.jira.ext.charting:timeinstatus", "value": "1_*:*_1_*:*_56183_*|*_10007_*:*_1_*:*_716275107_*|*_3_*:*_1_*:*_1484605996_*|*_5_*:*_1_*:*_0"}], "description": "Currently the unit tests of the native compiler cover only 10% of the code.  A \"shame badge\" has been put on the repro showing the current coverage level, but we need to get the number much higher (85+%).\n\nThe lexer is mostly covered, but there is a few places that need to be hit (some heredoc conditions and EPP lexing).\n\nThe parser is not covered at all.  We need coverage for every type in the AST and for the three root rules (normal, interpolated, and EPP).\n\nGiven time, coverage for evaluation, facts, and catalog generation should also be improved, but let's focus on the parser for now because that will be the initial integration point with Puppet.", "epicLinkSummary": null, "estimate": "PT0S", "externalId": "48046", "fixedVersions": [], "id": "48046", "issueType": "Improvement", "key": "NPUP-1", "labels": [], "originalEstimate": "PT0S", "parent": null, "parentSummary": null, "priority": "Normal", "projectDescription": null, "projectKey": "NPUP", "projectLead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "projectName": "Native Puppet", "projectType": "software", "projectUrl": null, "reporter": "557058:372bc64a-3ef7-46ac-9a0a-50bcf4819b9c", "resolution": "Fixed", "resolutionDate": "2015-12-29T20:36:00.000000", "status": "Resolved", "statusCategory": "Done", "statuscategorychangedate": "11/Mar/23 10:03 AM", "summary": "Improve unit test coverage of native parser", "timeSpent": "PT0S", "updated": "2015-12-29T20:36:00.000000", "votes": "0", "watchers": []}], "key": "NPUP", "lead": "557058:c9e9d862-990b-48eb-b4e3-2e4daf1e6920", "name": "Native Puppet", "template": "com.pyxis.greenhopper.jira:gh-simplified-scrum-classic", "type": "software", "url": "", "versions": [{"name": "NPUP 0.1.0", "releaseDate": "", "released": false}]}]}