{"action":"created","comment":{"url":"https://api.github.com/repos/quasar-analytics/quasar/pulls/comments/139665734","pull_request_review_id":63629135,"id":139665734,"diff_hunk":"@@ -52,20 +53,26 @@ package object pathy {\n \n   object ADir {\n \n-    // performs some effects; I'm probably going to regret this...\n-    def fromFile(file: JFile): Option[ADir] = {\n-      val check = file.exists() && file.isDirectory()\n-      // trailing '/' is significant!  yay, pathy...\n-      posixCodec.parseAbsDir(file.getAbsolutePath + \"/\").map(unsafeSandboxAbs).filter(_ => check)\n+    def fromFile(file: JFile): OptionT[Task, ADir] = {","path":"foundation/src/main/scala/quasar/contrib/pathy/package.scala","position":null,"original_position":17,"commit_id":"76d661f6f63b9934d781701eccfcfbb23a7ddd67","original_commit_id":"d0a051364e14b1a5580bf5c004120ca9fbb223e9","user":{"login":"djspiewak","id":752,"avatar_url":"https://avatars1.githubusercontent.com/u/752?v=4","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},"body":"I disagree.  It is meaningless to convert a `File` into any sort of `Path` value *without* checking whether or not it is a directory or a file.  I think it's valid to complain about the existence check, but the problem is that file/directory tests are meaningless without existence.","created_at":"2017-09-19T11:36:07Z","updated_at":"2017-09-19T11:36:07Z","html_url":"https://github.com/quasar-analytics/quasar/pull/2756#discussion_r139665734","pull_request_url":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/quasar-analytics/quasar/pulls/comments/139665734"},"html":{"href":"https://github.com/quasar-analytics/quasar/pull/2756#discussion_r139665734"},"pull_request":{"href":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756"}},"in_reply_to_id":139541169},"pull_request":{"url":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756","id":140943172,"html_url":"https://github.com/quasar-analytics/quasar/pull/2756","diff_url":"https://github.com/quasar-analytics/quasar/pull/2756.diff","patch_url":"https://github.com/quasar-analytics/quasar/pull/2756.patch","issue_url":"https://api.github.com/repos/quasar-analytics/quasar/issues/2756","number":2756,"state":"open","locked":false,"title":"Dynamic backend loading","user":{"login":"djspiewak","id":752,"avatar_url":"https://avatars1.githubusercontent.com/u/752?v=4","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},"body":"Fixes #2105 \r\nUnblocks #2735 \r\n\r\nThis is probably not ready for merge in its precise current form, but this should get the ball rolling.  I expect build failures.  Also spark is not quite working (need help from @rabbitonweb on that one).  But the core of it is there, and it's at least ready for review.  At the very least, worst comes to worst, someone could take this and finish it if I dropped off the face of the earth.\r\n\r\nA couple things that still need to be done:\r\n\r\n- [x] Testing against marklogic and couchbase, as well as non-3.4 mongo versions (I'm using Travis as a way of short-circuiting that work)\r\n- [ ] Updating the installer infrastructure to fetch the connector jars and build them into a directory (there's no issue for it, but @nicflores and I have discussed at length)\r\n- [ ] Make Spark not explode\r\n  + [ ] Investigate removing one of the two major Spark hacks to get around their broken classloader usage\r\n  + [x] Maybe propagate those Spark hacks further \r\n  + [ ] Weep, weep, for the world is lost\r\n\r\nI'm provisionally assigning this to @alissapajer, mostly because no one else expressed extreme enthusiasm about reviewing it.  @wemrysi paired with me extensively here, and he deserves by far the bulk of the credit for making this work.  I'm adding @rabbitonweb as a reviewer, both because I want his thoughts, and because I need his help on the spark stuff.  Also adding @jedesah as a reviewer, since he touches the surface-level interface stuff more than most of us.\r\n\r\n---\r\n\r\nAfter this PR lands, if you're doing work on the integration tests (by which I mean, running them), you *must* either use `it/test` at least once (not `testOnly`), or run the `it/sideEffectTestFSConfig` task.  Once you've run either task at least once in an SBT session, everything else should behave normally.  This is a hack to get around the fact that I really didn't want to monkey-patch my way into the `testOnly` and `testQuick` tasks.","created_at":"2017-09-13T22:19:29Z","updated_at":"2017-09-19T11:36:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"90fb55f225f5c58bcb2c424acba9eb1b89f51a65","assignee":{"login":"alissapajer","id":1088100,"avatar_url":"https://avatars2.githubusercontent.com/u/1088100?v=4","gravatar_id":"","url":"https://api.github.com/users/alissapajer","html_url":"https://github.com/alissapajer","followers_url":"https://api.github.com/users/alissapajer/followers","following_url":"https://api.github.com/users/alissapajer/following{/other_user}","gists_url":"https://api.github.com/users/alissapajer/gists{/gist_id}","starred_url":"https://api.github.com/users/alissapajer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alissapajer/subscriptions","organizations_url":"https://api.github.com/users/alissapajer/orgs","repos_url":"https://api.github.com/users/alissapajer/repos","events_url":"https://api.github.com/users/alissapajer/events{/privacy}","received_events_url":"https://api.github.com/users/alissapajer/received_events","type":"User","site_admin":false},"assignees":[{"login":"djspiewak","id":752,"avatar_url":"https://avatars1.githubusercontent.com/u/752?v=4","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},{"login":"alissapajer","id":1088100,"avatar_url":"https://avatars2.githubusercontent.com/u/1088100?v=4","gravatar_id":"","url":"https://api.github.com/users/alissapajer","html_url":"https://github.com/alissapajer","followers_url":"https://api.github.com/users/alissapajer/followers","following_url":"https://api.github.com/users/alissapajer/following{/other_user}","gists_url":"https://api.github.com/users/alissapajer/gists{/gist_id}","starred_url":"https://api.github.com/users/alissapajer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alissapajer/subscriptions","organizations_url":"https://api.github.com/users/alissapajer/orgs","repos_url":"https://api.github.com/users/alissapajer/repos","events_url":"https://api.github.com/users/alissapajer/events{/privacy}","received_events_url":"https://api.github.com/users/alissapajer/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"rabbitonweb","id":6287558,"avatar_url":"https://avatars1.githubusercontent.com/u/6287558?v=4","gravatar_id":"","url":"https://api.github.com/users/rabbitonweb","html_url":"https://github.com/rabbitonweb","followers_url":"https://api.github.com/users/rabbitonweb/followers","following_url":"https://api.github.com/users/rabbitonweb/following{/other_user}","gists_url":"https://api.github.com/users/rabbitonweb/gists{/gist_id}","starred_url":"https://api.github.com/users/rabbitonweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rabbitonweb/subscriptions","organizations_url":"https://api.github.com/users/rabbitonweb/orgs","repos_url":"https://api.github.com/users/rabbitonweb/repos","events_url":"https://api.github.com/users/rabbitonweb/events{/privacy}","received_events_url":"https://api.github.com/users/rabbitonweb/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756/commits","review_comments_url":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756/comments","review_comment_url":"https://api.github.com/repos/quasar-analytics/quasar/pulls/comments{/number}","comments_url":"https://api.github.com/repos/quasar-analytics/quasar/issues/2756/comments","statuses_url":"https://api.github.com/repos/quasar-analytics/quasar/statuses/76d661f6f63b9934d781701eccfcfbb23a7ddd67","head":{"label":"djspiewak:feature/dynamic-loading","ref":"feature/dynamic-loading","sha":"76d661f6f63b9934d781701eccfcfbb23a7ddd67","user":{"login":"djspiewak","id":752,"avatar_url":"https://avatars1.githubusercontent.com/u/752?v=4","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},"repo":{"id":83488997,"name":"quasar","full_name":"djspiewak/quasar","owner":{"login":"djspiewak","id":752,"avatar_url":"https://avatars1.githubusercontent.com/u/752?v=4","gravatar_id":"","url":"https://api.github.com/users/djspiewak","html_url":"https://github.com/djspiewak","followers_url":"https://api.github.com/users/djspiewak/followers","following_url":"https://api.github.com/users/djspiewak/following{/other_user}","gists_url":"https://api.github.com/users/djspiewak/gists{/gist_id}","starred_url":"https://api.github.com/users/djspiewak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djspiewak/subscriptions","organizations_url":"https://api.github.com/users/djspiewak/orgs","repos_url":"https://api.github.com/users/djspiewak/repos","events_url":"https://api.github.com/users/djspiewak/events{/privacy}","received_events_url":"https://api.github.com/users/djspiewak/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/djspiewak/quasar","description":"A NoSQL analytics engine that embraces post-relational analytics and pushes computation to the data.","fork":true,"url":"https://api.github.com/repos/djspiewak/quasar","forks_url":"https://api.github.com/repos/djspiewak/quasar/forks","keys_url":"https://api.github.com/repos/djspiewak/quasar/keys{/key_id}","collaborators_url":"https://api.github.com/repos/djspiewak/quasar/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/djspiewak/quasar/teams","hooks_url":"https://api.github.com/repos/djspiewak/quasar/hooks","issue_events_url":"https://api.github.com/repos/djspiewak/quasar/issues/events{/number}","events_url":"https://api.github.com/repos/djspiewak/quasar/events","assignees_url":"https://api.github.com/repos/djspiewak/quasar/assignees{/user}","branches_url":"https://api.github.com/repos/djspiewak/quasar/branches{/branch}","tags_url":"https://api.github.com/repos/djspiewak/quasar/tags","blobs_url":"https://api.github.com/repos/djspiewak/quasar/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/djspiewak/quasar/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/djspiewak/quasar/git/refs{/sha}","trees_url":"https://api.github.com/repos/djspiewak/quasar/git/trees{/sha}","statuses_url":"https://api.github.com/repos/djspiewak/quasar/statuses/{sha}","languages_url":"https://api.github.com/repos/djspiewak/quasar/languages","stargazers_url":"https://api.github.com/repos/djspiewak/quasar/stargazers","contributors_url":"https://api.github.com/repos/djspiewak/quasar/contributors","subscribers_url":"https://api.github.com/repos/djspiewak/quasar/subscribers","subscription_url":"https://api.github.com/repos/djspiewak/quasar/subscription","commits_url":"https://api.github.com/repos/djspiewak/quasar/commits{/sha}","git_commits_url":"https://api.github.com/repos/djspiewak/quasar/git/commits{/sha}","comments_url":"https://api.github.com/repos/djspiewak/quasar/comments{/number}","issue_comment_url":"https://api.github.com/repos/djspiewak/quasar/issues/comments{/number}","contents_url":"https://api.github.com/repos/djspiewak/quasar/contents/{+path}","compare_url":"https://api.github.com/repos/djspiewak/quasar/compare/{base}...{head}","merges_url":"https://api.github.com/repos/djspiewak/quasar/merges","archive_url":"https://api.github.com/repos/djspiewak/quasar/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/djspiewak/quasar/downloads","issues_url":"https://api.github.com/repos/djspiewak/quasar/issues{/number}","pulls_url":"https://api.github.com/repos/djspiewak/quasar/pulls{/number}","milestones_url":"https://api.github.com/repos/djspiewak/quasar/milestones{/number}","notifications_url":"https://api.github.com/repos/djspiewak/quasar/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/djspiewak/quasar/labels{/name}","releases_url":"https://api.github.com/repos/djspiewak/quasar/releases{/id}","deployments_url":"https://api.github.com/repos/djspiewak/quasar/deployments","created_at":"2017-02-28T23:16:24Z","updated_at":"2017-02-28T23:16:28Z","pushed_at":"2017-09-19T11:24:18Z","git_url":"git://github.com/djspiewak/quasar.git","ssh_url":"git@github.com:djspiewak/quasar.git","clone_url":"https://github.com/djspiewak/quasar.git","svn_url":"https://github.com/djspiewak/quasar","homepage":"http://quasar-analytics.org","size":61837,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"quasar-analytics:master","ref":"master","sha":"9d376262e5c987062d93bf731562147886b6bf2d","user":{"login":"quasar-analytics","id":15095906,"avatar_url":"https://avatars1.githubusercontent.com/u/15095906?v=4","gravatar_id":"","url":"https://api.github.com/users/quasar-analytics","html_url":"https://github.com/quasar-analytics","followers_url":"https://api.github.com/users/quasar-analytics/followers","following_url":"https://api.github.com/users/quasar-analytics/following{/other_user}","gists_url":"https://api.github.com/users/quasar-analytics/gists{/gist_id}","starred_url":"https://api.github.com/users/quasar-analytics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quasar-analytics/subscriptions","organizations_url":"https://api.github.com/users/quasar-analytics/orgs","repos_url":"https://api.github.com/users/quasar-analytics/repos","events_url":"https://api.github.com/users/quasar-analytics/events{/privacy}","received_events_url":"https://api.github.com/users/quasar-analytics/received_events","type":"Organization","site_admin":false},"repo":{"id":16515058,"name":"quasar","full_name":"quasar-analytics/quasar","owner":{"login":"quasar-analytics","id":15095906,"avatar_url":"https://avatars1.githubusercontent.com/u/15095906?v=4","gravatar_id":"","url":"https://api.github.com/users/quasar-analytics","html_url":"https://github.com/quasar-analytics","followers_url":"https://api.github.com/users/quasar-analytics/followers","following_url":"https://api.github.com/users/quasar-analytics/following{/other_user}","gists_url":"https://api.github.com/users/quasar-analytics/gists{/gist_id}","starred_url":"https://api.github.com/users/quasar-analytics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/quasar-analytics/subscriptions","organizations_url":"https://api.github.com/users/quasar-analytics/orgs","repos_url":"https://api.github.com/users/quasar-analytics/repos","events_url":"https://api.github.com/users/quasar-analytics/events{/privacy}","received_events_url":"https://api.github.com/users/quasar-analytics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/quasar-analytics/quasar","description":"Quasar Analytics is a general-purpose compiler for translating data processing and analytics over semi-structured data into efficient plans that run 100% in the target infrastructure.","fork":false,"url":"https://api.github.com/repos/quasar-analytics/quasar","forks_url":"https://api.github.com/repos/quasar-analytics/quasar/forks","keys_url":"https://api.github.com/repos/quasar-analytics/quasar/keys{/key_id}","collaborators_url":"https://api.github.com/repos/quasar-analytics/quasar/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/quasar-analytics/quasar/teams","hooks_url":"https://api.github.com/repos/quasar-analytics/quasar/hooks","issue_events_url":"https://api.github.com/repos/quasar-analytics/quasar/issues/events{/number}","events_url":"https://api.github.com/repos/quasar-analytics/quasar/events","assignees_url":"https://api.github.com/repos/quasar-analytics/quasar/assignees{/user}","branches_url":"https://api.github.com/repos/quasar-analytics/quasar/branches{/branch}","tags_url":"https://api.github.com/repos/quasar-analytics/quasar/tags","blobs_url":"https://api.github.com/repos/quasar-analytics/quasar/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/quasar-analytics/quasar/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/quasar-analytics/quasar/git/refs{/sha}","trees_url":"https://api.github.com/repos/quasar-analytics/quasar/git/trees{/sha}","statuses_url":"https://api.github.com/repos/quasar-analytics/quasar/statuses/{sha}","languages_url":"https://api.github.com/repos/quasar-analytics/quasar/languages","stargazers_url":"https://api.github.com/repos/quasar-analytics/quasar/stargazers","contributors_url":"https://api.github.com/repos/quasar-analytics/quasar/contributors","subscribers_url":"https://api.github.com/repos/quasar-analytics/quasar/subscribers","subscription_url":"https://api.github.com/repos/quasar-analytics/quasar/subscription","commits_url":"https://api.github.com/repos/quasar-analytics/quasar/commits{/sha}","git_commits_url":"https://api.github.com/repos/quasar-analytics/quasar/git/commits{/sha}","comments_url":"https://api.github.com/repos/quasar-analytics/quasar/comments{/number}","issue_comment_url":"https://api.github.com/repos/quasar-analytics/quasar/issues/comments{/number}","contents_url":"https://api.github.com/repos/quasar-analytics/quasar/contents/{+path}","compare_url":"https://api.github.com/repos/quasar-analytics/quasar/compare/{base}...{head}","merges_url":"https://api.github.com/repos/quasar-analytics/quasar/merges","archive_url":"https://api.github.com/repos/quasar-analytics/quasar/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/quasar-analytics/quasar/downloads","issues_url":"https://api.github.com/repos/quasar-analytics/quasar/issues{/number}","pulls_url":"https://api.github.com/repos/quasar-analytics/quasar/pulls{/number}","milestones_url":"https://api.github.com/repos/quasar-analytics/quasar/milestones{/number}","notifications_url":"https://api.github.com/repos/quasar-analytics/quasar/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/quasar-analytics/quasar/labels{/name}","releases_url":"https://api.github.com/repos/quasar-analytics/quasar/releases{/id}","deployments_url":"https://api.github.com/repos/quasar-analytics/quasar/deployments","created_at":"2014-02-04T15:01:27Z","updated_at":"2017-09-08T03:51:55Z","pushed_at":"2017-09-19T11:24:20Z","git_url":"git://github.com/quasar-analytics/quasar.git","ssh_url":"git@github.com:quasar-analytics/quasar.git","clone_url":"https://github.com/quasar-analytics/quasar.git","svn_url":"https://github.com/quasar-analytics/quasar","homepage":"http://quasar-analytics.org","size":61238,"stargazers_count":542,"watchers_count":542,"language":"Scala","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":72,"mirror_url":null,"open_issues_count":322,"forks":72,"open_issues":322,"watchers":542,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756"},"html":{"href":"https://github.com/quasar-analytics/quasar/pull/2756"},"issue":{"href":"https://api.github.com/repos/quasar-analytics/quasar/issues/2756"},"comments":{"href":"https://api.github.com/repos/quasar-analytics/quasar/issues/2756/comments"},"review_comments":{"href":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756/comments"},"review_comment":{"href":"https://api.github.com/repos/quasar-analytics/quasar/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/quasar-analytics/quasar/pulls/2756/commits"},"statuses":{"href":"https://api.github.com/repos/quasar-analytics/quasar/statuses/76d661f6f63b9934d781701eccfcfbb23a7ddd67"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"djspiewak"}}