{"action":"opened","number":7,"pull_request":{"url":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/7","id":232506924,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMyNTA2OTI0","html_url":"https://github.com/HowardWolosky/StoreBroker/pull/7","diff_url":"https://github.com/HowardWolosky/StoreBroker/pull/7.diff","patch_url":"https://github.com/HowardWolosky/StoreBroker/pull/7.patch","issue_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/issues/7","number":7,"state":"open","locked":false,"title":"Add migration story for converting v1 package configs to the v2 schema","user":{"login":"danbelcher-MSFT","id":23107231,"node_id":"MDQ6VXNlcjIzMTA3MjMx","avatar_url":"https://avatars2.githubusercontent.com/u/23107231?v=4","gravatar_id":"","url":"https://api.github.com/users/danbelcher-MSFT","html_url":"https://github.com/danbelcher-MSFT","followers_url":"https://api.github.com/users/danbelcher-MSFT/followers","following_url":"https://api.github.com/users/danbelcher-MSFT/following{/other_user}","gists_url":"https://api.github.com/users/danbelcher-MSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/danbelcher-MSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danbelcher-MSFT/subscriptions","organizations_url":"https://api.github.com/users/danbelcher-MSFT/orgs","repos_url":"https://api.github.com/users/danbelcher-MSFT/repos","events_url":"https://api.github.com/users/danbelcher-MSFT/events{/privacy}","received_events_url":"https://api.github.com/users/danbelcher-MSFT/received_events","type":"User","site_admin":false},"body":"Add support for multiple config schema versions / parameter name changes,\r\n    \r\n* Update references of 'AppxPath' to 'PackagePath'\r\n     - We add 'AppxPath' as an alias of the 'PackagePath' parameter, for back-compat reasons.  In cases where we need to pick a value for this property from the config file, we first check for 'PackagePath' and then check for 'AppxPath'.\r\n    \r\n* Update references of 'ImagesRootPath' to 'MediaRootPath'\r\n     - We add 'ImagesRootPath' as an alias of the 'MediaRootPath' parameter, for back-compat reasons.  In cases where we need to pick a value for this property from the config file, we first check for 'MediaRootPath' and then check for 'ImagesRootPath'.\r\n    \r\n* Remove references to 'AppxPath' and 'ImagesRootPath'. We know there will be some breaking changes between v1 and v2, so we will simply not accept a v1 config for producing a v2 package.\r\n    \r\n* Add a schema version to AppConfigTemplate.json and IapConfigTemplate.json.\r\n    - In Package tool, we specify a min and max schema version for both App and Iap templates.\r\n        We check that the config schema version falls within the allowable range, else we throw an exception.\r\n    - Minor formatting updates to AppConfigTemplate.json, so that the spacing is consistent and the style matches IapConfigTemplate.json.\r\n    \r\n* Add a MigrationTool for updating users to the latest StoreBroker.\r\n    - The tool exposes one function, ConvertTo-LatestStoreBroker. This function is intended to migrate old StoreBroker files to the latest versions of the files that StoreBroker needs. Currently, this means the function updates v1 config files (App config or IAP config). To perform an update, the function:\r\n     - Adds the 'schemaVersion' property with the current max config schema version for the appropriate config type.\r\n     - Adds the 'productId' property.\r\n     - Replaces 'ImagesRootPath' with 'MediaRootPath'.\r\n     - Replaces 'AppxPath' with 'PackagePath' (if the config is an app config).\r\n     - ConvertTo-LatestStoreBroker will report the following telemetry properties:\r\n            - Migration type: AppConfig or IapConfig.\r\n            - ProductId.\r\n            - StartingConfigVersion.\r\n            - EndingConfigVersion.\r\n    - PackageTool has had its ConvertApp-Config function updated to only convert supported config's (App or Iap). The function will now check the schema version of the input config and reject the config if it's not within the valid min/max supported schema version range. If it rejects a config, it will provide an example of 'ConvertTo-LatestStoreBroker' so users can know how to migrate their files.\r\n    \r\n* - Update documentation to reference the IapId parameter.\r\n   - Change from -Clobber to -Force, for consistency.\r\n   - Do not return output from ConvertTo-LatestStoreBroker.\r\n   - Report telemetry from ConvertTo-LatestStoreBroker.\r\n    \r\n* - V2 Configs will now be pure JSON instead of including comments.\r\n   - Use PSCustomObject type to represent config for most functions, instead of text parsing.\r\n   - ConvertTo-LatestConfig now takes a config object and updates it. This allows it to be used in PackageTool.\r\n   - Configs that are converted back to JSON can have their properties sorted before writing, so that the JSON has guaranteed ordering of the properties.\r\n    \r\n* - New-SubmissionPackage can package from a v1 config.\r\n    \r\n* - Add help uri to config templates.\r\n    - Start PackageConfig.ps1, where config functions will be moved.\r\n    \r\n* - Moved config functions to PackageConfig.ps1.\r\n   - Renamed Convert-AppConfig to Get-Config.\r\n   - Renamed Remove-Comment to Remove-Comments.\r\n   - Standardized lower-case for use of begin, process, and end keywords.\r\n\r\n* - Moved config templates to ps1 files so that we can sign them.","created_at":"2018-11-21T00:59:48Z","updated_at":"2018-11-21T00:59:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/7/commits","review_comments_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/7/comments","review_comment_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/issues/7/comments","statuses_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/statuses/78f623a479f21f61148623faf850c13a5404f841","head":{"label":"danbelcher-MSFT:dabelc/PackagePath","ref":"dabelc/PackagePath","sha":"78f623a479f21f61148623faf850c13a5404f841","user":{"login":"danbelcher-MSFT","id":23107231,"node_id":"MDQ6VXNlcjIzMTA3MjMx","avatar_url":"https://avatars2.githubusercontent.com/u/23107231?v=4","gravatar_id":"","url":"https://api.github.com/users/danbelcher-MSFT","html_url":"https://github.com/danbelcher-MSFT","followers_url":"https://api.github.com/users/danbelcher-MSFT/followers","following_url":"https://api.github.com/users/danbelcher-MSFT/following{/other_user}","gists_url":"https://api.github.com/users/danbelcher-MSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/danbelcher-MSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danbelcher-MSFT/subscriptions","organizations_url":"https://api.github.com/users/danbelcher-MSFT/orgs","repos_url":"https://api.github.com/users/danbelcher-MSFT/repos","events_url":"https://api.github.com/users/danbelcher-MSFT/events{/privacy}","received_events_url":"https://api.github.com/users/danbelcher-MSFT/received_events","type":"User","site_admin":false},"repo":{"id":151168436,"node_id":"MDEwOlJlcG9zaXRvcnkxNTExNjg0MzY=","name":"StoreBroker","full_name":"danbelcher-MSFT/StoreBroker","private":false,"owner":{"login":"danbelcher-MSFT","id":23107231,"node_id":"MDQ6VXNlcjIzMTA3MjMx","avatar_url":"https://avatars2.githubusercontent.com/u/23107231?v=4","gravatar_id":"","url":"https://api.github.com/users/danbelcher-MSFT","html_url":"https://github.com/danbelcher-MSFT","followers_url":"https://api.github.com/users/danbelcher-MSFT/followers","following_url":"https://api.github.com/users/danbelcher-MSFT/following{/other_user}","gists_url":"https://api.github.com/users/danbelcher-MSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/danbelcher-MSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danbelcher-MSFT/subscriptions","organizations_url":"https://api.github.com/users/danbelcher-MSFT/orgs","repos_url":"https://api.github.com/users/danbelcher-MSFT/repos","events_url":"https://api.github.com/users/danbelcher-MSFT/events{/privacy}","received_events_url":"https://api.github.com/users/danbelcher-MSFT/received_events","type":"User","site_admin":false},"html_url":"https://github.com/danbelcher-MSFT/StoreBroker","description":"A PowerShell module that leverages the Windows Store Submission API to allow easy automation of application submissions to the Windows Store.","fork":true,"url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker","forks_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/forks","keys_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/teams","hooks_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/hooks","issue_events_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/issues/events{/number}","events_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/events","assignees_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/assignees{/user}","branches_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/branches{/branch}","tags_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/tags","blobs_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/git/refs{/sha}","trees_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/statuses/{sha}","languages_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/languages","stargazers_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/stargazers","contributors_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/contributors","subscribers_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/subscribers","subscription_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/subscription","commits_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/commits{/sha}","git_commits_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/git/commits{/sha}","comments_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/comments{/number}","issue_comment_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/issues/comments{/number}","contents_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/contents/{+path}","compare_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/merges","archive_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/downloads","issues_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/issues{/number}","pulls_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/pulls{/number}","milestones_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/milestones{/number}","notifications_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/labels{/name}","releases_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/releases{/id}","deployments_url":"https://api.github.com/repos/danbelcher-MSFT/StoreBroker/deployments","created_at":"2018-10-01T22:20:41Z","updated_at":"2018-10-01T22:20:43Z","pushed_at":"2018-11-21T00:47:38Z","git_url":"git://github.com/danbelcher-MSFT/StoreBroker.git","ssh_url":"git@github.com:danbelcher-MSFT/StoreBroker.git","clone_url":"https://github.com/danbelcher-MSFT/StoreBroker.git","svn_url":"https://github.com/danbelcher-MSFT/StoreBroker","homepage":null,"size":1275,"stargazers_count":0,"watchers_count":0,"language":"PowerShell","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"HowardWolosky:v2","ref":"v2","sha":"b676429ca62cd6e008147d963dcc105952460bf5","user":{"login":"HowardWolosky","id":22158599,"node_id":"MDQ6VXNlcjIyMTU4NTk5","avatar_url":"https://avatars0.githubusercontent.com/u/22158599?v=4","gravatar_id":"","url":"https://api.github.com/users/HowardWolosky","html_url":"https://github.com/HowardWolosky","followers_url":"https://api.github.com/users/HowardWolosky/followers","following_url":"https://api.github.com/users/HowardWolosky/following{/other_user}","gists_url":"https://api.github.com/users/HowardWolosky/gists{/gist_id}","starred_url":"https://api.github.com/users/HowardWolosky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HowardWolosky/subscriptions","organizations_url":"https://api.github.com/users/HowardWolosky/orgs","repos_url":"https://api.github.com/users/HowardWolosky/repos","events_url":"https://api.github.com/users/HowardWolosky/events{/privacy}","received_events_url":"https://api.github.com/users/HowardWolosky/received_events","type":"User","site_admin":false},"repo":{"id":81608689,"node_id":"MDEwOlJlcG9zaXRvcnk4MTYwODY4OQ==","name":"StoreBroker","full_name":"HowardWolosky/StoreBroker","private":false,"owner":{"login":"HowardWolosky","id":22158599,"node_id":"MDQ6VXNlcjIyMTU4NTk5","avatar_url":"https://avatars0.githubusercontent.com/u/22158599?v=4","gravatar_id":"","url":"https://api.github.com/users/HowardWolosky","html_url":"https://github.com/HowardWolosky","followers_url":"https://api.github.com/users/HowardWolosky/followers","following_url":"https://api.github.com/users/HowardWolosky/following{/other_user}","gists_url":"https://api.github.com/users/HowardWolosky/gists{/gist_id}","starred_url":"https://api.github.com/users/HowardWolosky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HowardWolosky/subscriptions","organizations_url":"https://api.github.com/users/HowardWolosky/orgs","repos_url":"https://api.github.com/users/HowardWolosky/repos","events_url":"https://api.github.com/users/HowardWolosky/events{/privacy}","received_events_url":"https://api.github.com/users/HowardWolosky/received_events","type":"User","site_admin":false},"html_url":"https://github.com/HowardWolosky/StoreBroker","description":"A PowerShell module that leverages the Windows Store Submission API to allow easy automation of application submissions to the Windows Store.","fork":true,"url":"https://api.github.com/repos/HowardWolosky/StoreBroker","forks_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/forks","keys_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/teams","hooks_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/hooks","issue_events_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/issues/events{/number}","events_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/events","assignees_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/assignees{/user}","branches_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/branches{/branch}","tags_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/tags","blobs_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/git/refs{/sha}","trees_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/statuses/{sha}","languages_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/languages","stargazers_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/stargazers","contributors_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/contributors","subscribers_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/subscribers","subscription_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/subscription","commits_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/commits{/sha}","git_commits_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/git/commits{/sha}","comments_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/comments{/number}","issue_comment_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/issues/comments{/number}","contents_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/contents/{+path}","compare_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/merges","archive_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/downloads","issues_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/issues{/number}","pulls_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls{/number}","milestones_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/milestones{/number}","notifications_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/labels{/name}","releases_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/releases{/id}","deployments_url":"https://api.github.com/repos/HowardWolosky/StoreBroker/deployments","created_at":"2017-02-10T21:32:57Z","updated_at":"2018-11-14T21:57:45Z","pushed_at":"2018-11-21T00:31:30Z","git_url":"git://github.com/HowardWolosky/StoreBroker.git","ssh_url":"git@github.com:HowardWolosky/StoreBroker.git","clone_url":"https://github.com/HowardWolosky/StoreBroker.git","svn_url":"https://github.com/HowardWolosky/StoreBroker","homepage":null,"size":1248,"stargazers_count":2,"watchers_count":2,"language":"PowerShell","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":4,"open_issues":1,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/7"},"html":{"href":"https://github.com/HowardWolosky/StoreBroker/pull/7"},"issue":{"href":"https://api.github.com/repos/HowardWolosky/StoreBroker/issues/7"},"comments":{"href":"https://api.github.com/repos/HowardWolosky/StoreBroker/issues/7/comments"},"review_comments":{"href":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/7/comments"},"review_comment":{"href":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/HowardWolosky/StoreBroker/pulls/7/commits"},"statuses":{"href":"https://api.github.com/repos/HowardWolosky/StoreBroker/statuses/78f623a479f21f61148623faf850c13a5404f841"}},"author_association":"NONE","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":3,"additions":1738,"deletions":1359,"changed_files":22}}
{"actor":{"display_login":"danbelcher-MSFT"}}