{"action":"created","issue":{"url":"https://api.github.com/repos/DataDog/integrations-core/issues/2746","repository_url":"https://api.github.com/repos/DataDog/integrations-core","labels_url":"https://api.github.com/repos/DataDog/integrations-core/issues/2746/labels{/name}","comments_url":"https://api.github.com/repos/DataDog/integrations-core/issues/2746/comments","events_url":"https://api.github.com/repos/DataDog/integrations-core/issues/2746/events","html_url":"https://github.com/DataDog/integrations-core/pull/2746","id":390772455,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM4NDYzODcz","number":2746,"title":"Validate checks dependencies against the embedded environment","user":{"login":"masci","id":7241,"node_id":"MDQ6VXNlcjcyNDE=","avatar_url":"https://avatars3.githubusercontent.com/u/7241?v=4","gravatar_id":"","url":"https://api.github.com/users/masci","html_url":"https://github.com/masci","followers_url":"https://api.github.com/users/masci/followers","following_url":"https://api.github.com/users/masci/following{/other_user}","gists_url":"https://api.github.com/users/masci/gists{/gist_id}","starred_url":"https://api.github.com/users/masci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/masci/subscriptions","organizations_url":"https://api.github.com/users/masci/orgs","repos_url":"https://api.github.com/users/masci/repos","events_url":"https://api.github.com/users/masci/events{/privacy}","received_events_url":"https://api.github.com/users/masci/received_events","type":"User","site_admin":false},"labels":[{"id":937215339,"node_id":"MDU6TGFiZWw5MzcyMTUzMzk=","url":"https://api.github.com/repos/DataDog/integrations-core/labels/changelog/Added","name":"changelog/Added","color":"f2983e","default":false},{"id":992015121,"node_id":"MDU6TGFiZWw5OTIwMTUxMjE=","url":"https://api.github.com/repos/DataDog/integrations-core/labels/integration/datadog_checks_dev","name":"integration/datadog_checks_dev","color":"bfdadc","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-12-13T17:02:33Z","updated_at":"2018-12-16T02:57:30Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/DataDog/integrations-core/pulls/2746","html_url":"https://github.com/DataDog/integrations-core/pull/2746","diff_url":"https://github.com/DataDog/integrations-core/pull/2746.diff","patch_url":"https://github.com/DataDog/integrations-core/pull/2746.patch"},"body":"### What does this PR do?\r\n\r\nAdds an extra step to `ddev validate dep`: now the tool will ensure a certain dependency in a local `requirements.txt` file for an integration has a match in the requirements file that defines the Python env embedded in the Agent.\r\n\r\n### Motivation\r\n\r\nConsistency\r\n\r\n### Review checklist\r\n\r\n- [ ] PR has a [meaningful title](https://github.com/DataDog/integrations-core/blob/master/CONTRIBUTING.md#pull-request-title) or PR has the `no-changelog` label attached\r\n- [ ] Feature or bugfix has tests\r\n- [ ] Git history is clean\r\n- [ ] If PR impacts documentation, docs team has been notified or an issue has been opened on the [documentation repo](https://github.com/DataDog/documentation/issues/new)\r\n- [ ] If PR adds a configuration option, it has been added to the configuration file.\r\n\r\n### Additional Notes\r\n\r\nAlso added a bit of refactoring:\r\n\r\n* `Package` is now a full fledged class with utility methods\r\n* added a `PackageCatalog` class to wrap a bunch of complex nested dicts \r\n"},"comment":{"url":"https://api.github.com/repos/DataDog/integrations-core/issues/comments/447613770","html_url":"https://github.com/DataDog/integrations-core/pull/2746#issuecomment-447613770","issue_url":"https://api.github.com/repos/DataDog/integrations-core/issues/2746","id":447613770,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NzYxMzc3MA==","user":{"login":"ofek","id":9677399,"node_id":"MDQ6VXNlcjk2NzczOTk=","avatar_url":"https://avatars1.githubusercontent.com/u/9677399?v=4","gravatar_id":"","url":"https://api.github.com/users/ofek","html_url":"https://github.com/ofek","followers_url":"https://api.github.com/users/ofek/followers","following_url":"https://api.github.com/users/ofek/following{/other_user}","gists_url":"https://api.github.com/users/ofek/gists{/gist_id}","starred_url":"https://api.github.com/users/ofek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ofek/subscriptions","organizations_url":"https://api.github.com/users/ofek/orgs","repos_url":"https://api.github.com/users/ofek/repos","events_url":"https://api.github.com/users/ofek/events{/privacy}","received_events_url":"https://api.github.com/users/ofek/received_events","type":"User","site_admin":false},"created_at":"2018-12-16T02:57:30Z","updated_at":"2018-12-16T02:57:30Z","author_association":"CONTRIBUTOR","body":"When I change e.g. `cryptography` in `ssh_check` to `2.3.0`\r\n\r\n```\r\nofek.lev@ozone ~\\Desktop $ ddev validate dep\r\nTraceback (most recent call last):\r\n  File \"C:\\Users\\ofek.lev\\Desktop\\q\\Miniconda3\\Scripts\\ddev-script.py\", line 11, in <module>\r\n    load_entry_point('datadog-checks-dev', 'console_scripts', 'ddev')()\r\n  File \"C:\\Users\\ofek.lev\\Desktop\\q\\Miniconda3\\lib\\site-packages\\click\\core.py\", line 722, in __call__\r\n    return self.main(*args, **kwargs)\r\n  File \"C:\\Users\\ofek.lev\\Desktop\\q\\Miniconda3\\lib\\site-packages\\click\\core.py\", line 697, in main\r\n    rv = self.invoke(ctx)\r\n  File \"C:\\Users\\ofek.lev\\Desktop\\q\\Miniconda3\\lib\\site-packages\\click\\core.py\", line 1066, in invoke\r\n    return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n  File \"C:\\Users\\ofek.lev\\Desktop\\q\\Miniconda3\\lib\\site-packages\\click\\core.py\", line 1066, in invoke\r\n    return _process_result(sub_ctx.command.invoke(sub_ctx))\r\n  File \"C:\\Users\\ofek.lev\\Desktop\\q\\Miniconda3\\lib\\site-packages\\click\\core.py\", line 895, in invoke\r\n    return ctx.invoke(self.callback, **ctx.params)\r\n  File \"C:\\Users\\ofek.lev\\Desktop\\q\\Miniconda3\\lib\\site-packages\\click\\core.py\", line 535, in invoke\r\n    return callback(*args, **kwargs)\r\n  File \"c:\\users\\ofek.lev\\desktop\\code\\integrations-core\\datadog_checks_dev\\datadog_checks\\dev\\tooling\\commands\\validate\\dep.py\", line 56, in dep\r\n    version, checks = get_next(iteritems(versions))\r\n  File \"c:\\users\\ofek.lev\\desktop\\code\\integrations-core\\datadog_checks_dev\\datadog_checks\\dev\\utils.py\", line 160, in get_next\r\n    return next(iter(obj))\r\nStopIteration\r\n```"}}
{"actor":{"display_login":"ofek"}}