{"action":"created","issue":{"url":"https://api.github.com/repos/nerdvegas/rez/issues/167","labels_url":"https://api.github.com/repos/nerdvegas/rez/issues/167/labels{/name}","comments_url":"https://api.github.com/repos/nerdvegas/rez/issues/167/comments","events_url":"https://api.github.com/repos/nerdvegas/rez/issues/167/events","html_url":"https://github.com/nerdvegas/rez/issues/167","id":65617115,"number":167,"title":"resources2 Cross Platform Issue","user":{"login":"mstreatfield","id":353434,"avatar_url":"https://avatars.githubusercontent.com/u/353434?v=3","gravatar_id":"","url":"https://api.github.com/users/mstreatfield","html_url":"https://github.com/mstreatfield","followers_url":"https://api.github.com/users/mstreatfield/followers","following_url":"https://api.github.com/users/mstreatfield/following{/other_user}","gists_url":"https://api.github.com/users/mstreatfield/gists{/gist_id}","starred_url":"https://api.github.com/users/mstreatfield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mstreatfield/subscriptions","organizations_url":"https://api.github.com/users/mstreatfield/orgs","repos_url":"https://api.github.com/users/mstreatfield/repos","events_url":"https://api.github.com/users/mstreatfield/events{/privacy}","received_events_url":"https://api.github.com/users/mstreatfield/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-04-01T06:37:31Z","updated_at":"2015-05-04T18:15:06Z","closed_at":"2015-05-04T18:15:06Z","body":"I've been taking a look at porting the changes I made in #159 to the resources2 branch.  \r\n\r\nThe main issue I've discovered (which is quite pervasive) relates to the `get_repository` method of the `PackageRepositoryManager` class.  As this splits on `:`, it trips up on any Windows path.  For example, it thinks the repository type of `c:\\users\\markst\\packages` is `c`.\r\n\r\nBased on the code docstrings I've workaround this by qualifying the rez configuration so that the path becomes `filesystem:c:\\users\\markst\\packages`.  And for the most part this works well - although I've had to sprinkle it quite liberally through the test cases that defined their own packages path.\r\n\r\nThe main stumbling block is the build process code.  Here we are passing paths around which are detached from any repository plugin (and, depending on the configuration any repository identifier such as `filesystem:`).  Some methods (for example `_build_variant_base` on `LocalBuildProcess` and `pre_release` on `BuildProcessHelper`) need both representations.\r\n\r\nEither I have to assume they are `filesystem:` based and so hardcode this prefix onto internal calls to `iter_packages` etc but so far this is resulting in a lot of changes.  This results in lots of code like:\r\n\r\n    release_path = \"filesystem:\" + self.package.config.release_packages_path \r\n\r\nOr, configure rez such that `filesystem:` is always included (in `rezconfig`) and then use the following to get the actual file path in these methods:\r\n\r\n    release_path = self.package.config.release_packages_path # \"filesystem:...\"\r\n    repo = package_repository_manager.get_repository(release_path)\r\n    if not os.path.exists(repo.location):\r\n        raise ReleaseError(\"Release path does not exist: %r\" % release_path)\r\n\r\nThe former feels wrong so I am leaning towards the latter.  Is that the right thing to do?  It means doing it in a couple of places though which feels a bit untidy however. \r\n\r\nI think it's easy to replicate this on linux too - if you update your configuration to include `filesystem:` in `rezconfig` and then try and build/release you should hit the same issues (although I haven't actually tried that).\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/nerdvegas/rez/issues/comments/98802175","html_url":"https://github.com/nerdvegas/rez/issues/167#issuecomment-98802175","issue_url":"https://api.github.com/repos/nerdvegas/rez/issues/167","id":98802175,"user":{"login":"nerdvegas","id":1632842,"avatar_url":"https://avatars.githubusercontent.com/u/1632842?v=3","gravatar_id":"","url":"https://api.github.com/users/nerdvegas","html_url":"https://github.com/nerdvegas","followers_url":"https://api.github.com/users/nerdvegas/followers","following_url":"https://api.github.com/users/nerdvegas/following{/other_user}","gists_url":"https://api.github.com/users/nerdvegas/gists{/gist_id}","starred_url":"https://api.github.com/users/nerdvegas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nerdvegas/subscriptions","organizations_url":"https://api.github.com/users/nerdvegas/orgs","repos_url":"https://api.github.com/users/nerdvegas/repos","events_url":"https://api.github.com/users/nerdvegas/events{/privacy}","received_events_url":"https://api.github.com/users/nerdvegas/received_events","type":"User","site_admin":false},"created_at":"2015-05-04T18:15:06Z","updated_at":"2015-05-04T18:15:06Z","body":"Closing as we've switched to '@' delimiter.\r\n"}}