{"action":"created","issue":{"url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project/issues/40","repository_url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project","labels_url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project/issues/40/labels{/name}","comments_url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project/issues/40/comments","events_url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project/issues/40/events","html_url":"https://github.com/Anaconda-Platform/anaconda-project/pull/40","id":212816971,"number":40,"title":"WIP version pinning","user":{"login":"havocp","id":218689,"avatar_url":"https://avatars1.githubusercontent.com/u/218689?v=3","gravatar_id":"","url":"https://api.github.com/users/havocp","html_url":"https://github.com/havocp","followers_url":"https://api.github.com/users/havocp/followers","following_url":"https://api.github.com/users/havocp/following{/other_user}","gists_url":"https://api.github.com/users/havocp/gists{/gist_id}","starred_url":"https://api.github.com/users/havocp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/havocp/subscriptions","organizations_url":"https://api.github.com/users/havocp/orgs","repos_url":"https://api.github.com/users/havocp/repos","events_url":"https://api.github.com/users/havocp/events{/privacy}","received_events_url":"https://api.github.com/users/havocp/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2017-03-08T18:29:00Z","updated_at":"2017-05-11T16:08:09Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project/pulls/40","html_url":"https://github.com/Anaconda-Platform/anaconda-project/pull/40","diff_url":"https://github.com/Anaconda-Platform/anaconda-project/pull/40.diff","patch_url":"https://github.com/Anaconda-Platform/anaconda-project/pull/40.patch"},"body":"Opening a PR to work on this to get CI checking as I go.\r\n\r\n- [ ] offer to auto-fix if anaconda-project.yml doesn't specify platforms\r\n- [ ] when resolution fails on noncurrent platform, offer auto-fix to remove that platform?\r\n- [ ] include in the \"publish_information()\" upload metadata whether each env spec is locked\r\n- [ ] consider prompting/warning or even hard erroring when doing an archive/upload if the project isn't locked\r\n- [ ] is it an error if the lock list lacks a package found in the env spec? right now we show a warning and merge in the package, which is kinda weird. Thinking it should not merge in.\r\n- [ ] don't save the lock file if it has no meaningful changes from the defaults (if we didn't create a lock list). Right now anaconda-project commands keep recreating empty `anaconda-project-lock.yml`\r\n- [ ] update the example projects to have lockfiles\r\n- [ ] add tests for and fix handling of osx-32 and arm and so on\r\n- [ ] add subcommands for platforms changes (add-platforms, remove-platforms)\r\n- [ ] remove shorthand for platforms list (require explicitly naming all platforms)\r\n- [x] fix so we don't treat jinja2=2.8 as an exact spec\r\n- [ ] delete obsolete comment in default_conda_manager.py\r\n- [ ] address TODO in project.py\r\n- [ ] project_ops.py redundant check of env.lock_set.disabled\r\n- [x] discussion of naming (lock vs. pin vs. freeze vs. ...)   (let's stick with lock)\r\n- [x] lock by default when doing `anaconda-project init` (decided not to; it is clearer to opt in by doing a manual `anaconda-project lock`, and it should be possible to init without locking)\r\n- [x] anaconda-project-lock.yml not adequately validated for bad types, etc.\r\n- [x] resolve dependencies for all platforms, not just current\r\n- [x] always resolve current platform first to avoid confusion\r\n- [x] pass in channels during dependency resolution\r\n- [x] support excluding platforms if a project is not cross-platform\r\n- [x] for back compat, only complain about missing \"platforms:\" if project is locked\r\n- [x] refactor project/project_ops to support \"commit if works\" logic affecting both project and lock files\r\n- [x] modify lock file in add-package, remove-package\r\n- [x] modify lock file in add-env-spec, remove-env-spec\r\n- [x] warning if env spec has changed since last lock file update\r\n- [x] error if lock file contains env specs that aren't in the project file\r\n- [x] implement `update` updating lock file\r\n- [x] implement `update` with lock file disabled (updates actual envs)\r\n- [x] lock file must be in deterministic order to avoid bogus git diff\r\n- [x] missing lock file should act like one containing only `locking_enabled: false` (this may require the default lock file content to be locking_enabled:false but we'll make the `init` and `lock` commands toggle it)\r\n- [x] timestamp file hash used to short-circuit prepare should use the lock set if present\r\n- [x] we seem to save a lot of `locked: false` when you do anaconda-project lock with multiple env specs\r\n- [x] support 'unix:' consolidation in the locked packages in anaconda-project-lock.yml\r\n- [x] if an env spec is `locked: true` but has no packages, we should compute/set the packages (update: no, because empty environments are allowed)\r\n- [x] error if you try to prepare an env spec that's locked without the current platform\r\n- [x] update the documentation\r\n"},"comment":{"url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project/issues/comments/300838187","html_url":"https://github.com/Anaconda-Platform/anaconda-project/pull/40#issuecomment-300838187","issue_url":"https://api.github.com/repos/Anaconda-Platform/anaconda-project/issues/40","id":300838187,"user":{"login":"pzwang","id":543576,"avatar_url":"https://avatars0.githubusercontent.com/u/543576?v=3","gravatar_id":"","url":"https://api.github.com/users/pzwang","html_url":"https://github.com/pzwang","followers_url":"https://api.github.com/users/pzwang/followers","following_url":"https://api.github.com/users/pzwang/following{/other_user}","gists_url":"https://api.github.com/users/pzwang/gists{/gist_id}","starred_url":"https://api.github.com/users/pzwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pzwang/subscriptions","organizations_url":"https://api.github.com/users/pzwang/orgs","repos_url":"https://api.github.com/users/pzwang/repos","events_url":"https://api.github.com/users/pzwang/events{/privacy}","received_events_url":"https://api.github.com/users/pzwang/received_events","type":"User","site_admin":false},"created_at":"2017-05-11T16:08:09Z","updated_at":"2017-05-11T16:08:09Z","body":"OK, got it."}}
{"actor":{"display_login":"pzwang"}}