980e592271
* chore: ensure release notes always come from Clerk Now with tests! * chore: move sinon devDependency into `spec-main` * refactor: tweak note-spec variable for readability
1 line
No EOL
21 KiB
Text
1 line
No EOL
21 KiB
Text
{"status":200,"url":"https://api.github.com/repos/electron/electron/commits/89eb309d0b22bd4aec058ffaf983e81e56a5c378/pulls","headers":{"access-control-allow-origin":"*","access-control-expose-headers":"ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset","cache-control":"private, max-age=60, s-maxage=60","connection":"close","content-encoding":"gzip","content-security-policy":"default-src 'none'","content-type":"application/json; charset=utf-8","date":"Tue, 26 May 2020 04:04:06 GMT","etag":"W/\"442672ace5270531a2ffdc83b3b51f20\"","referrer-policy":"origin-when-cross-origin, strict-origin-when-cross-origin","server":"GitHub.com","status":"200 OK","strict-transport-security":"max-age=31536000; includeSubdomains; preload","transfer-encoding":"chunked","vary":"Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With","x-accepted-oauth-scopes":"","x-content-type-options":"nosniff","x-frame-options":"deny","x-github-media-type":"github.groot-preview; format=json","x-github-request-id":"8118:3989:536BFA:8CED70:5ECC9535","x-oauth-scopes":"repo","x-ratelimit-limit":"5000","x-ratelimit-remaining":"4999","x-ratelimit-reset":"1590469446","x-xss-protection":"1; mode=block"},"data":[{"url":"https://api.github.com/repos/electron/electron/pulls/21891","id":367058148,"node_id":"MDExOlB1bGxSZXF1ZXN0MzY3MDU4MTQ4","html_url":"https://github.com/electron/electron/pull/21891","diff_url":"https://github.com/electron/electron/pull/21891.diff","patch_url":"https://github.com/electron/electron/pull/21891.patch","issue_url":"https://api.github.com/repos/electron/electron/issues/21891","number":21891,"state":"closed","locked":false,"title":"feat: allow GUID parameter to avoid systray demotion on Windows ","user":{"login":"bitdisaster","id":5191943,"node_id":"MDQ6VXNlcjUxOTE5NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/5191943?v=4","gravatar_id":"","url":"https://api.github.com/users/bitdisaster","html_url":"https://github.com/bitdisaster","followers_url":"https://api.github.com/users/bitdisaster/followers","following_url":"https://api.github.com/users/bitdisaster/following{/other_user}","gists_url":"https://api.github.com/users/bitdisaster/gists{/gist_id}","starred_url":"https://api.github.com/users/bitdisaster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitdisaster/subscriptions","organizations_url":"https://api.github.com/users/bitdisaster/orgs","repos_url":"https://api.github.com/users/bitdisaster/repos","events_url":"https://api.github.com/users/bitdisaster/events{/privacy}","received_events_url":"https://api.github.com/users/bitdisaster/received_events","type":"User","site_admin":false},"body":"#### Description of Change\r\nEnhances the Tray API on Windows to avoid demotion of the icon position in the system tray. With normal usage of the Windows API https://docs.microsoft.com/en-us/windows/win32/api/shellapi/ns-shellapi-notifyicondataa a user customized position of the icon is linked to the absolute file path of the executable. If the path changes, mostly by updater frameworks such Squirrel.Windows, the position is lost, and the icon will be placed back in the overflow area.\r\nHowever, the combination of a code signed binary and GUID parameter can make the positioning of the icon persistent even if the path to the executable changes.\r\nThe use of the GUID parameter also fixes a behavior where the position of a second or third icon will be lost on each restart of the App. Even if the path has not changed. \r\n\r\nI’m aware of a previous attempt https://github.com/electron/electron/pull/2328 to introduce the GUID parameter. The reason why it failed and had to be rolled back is bases on Microsofts somewhat incomplete/confusing documentation. A couple of gotchas:\r\n\r\n- The GUID is not a replacement/alternative for the uID. The uID parameter is still needed to identify the icon via Hwnd messages. \r\n- The GUID parameter is no global Id for the app that seeks to create icons in the system tray. Each icon needs its own GUID if multiple icons are created.\r\n- The GUID is best used in combination with a code signed binary. Once it is used with code signature, the GUID is permanently bound to it.\r\n- The code signature has to contain CN, OU, O in the subject line. \r\n- The GUID parameter can be used with none code signed binary. However, now the GUID is permanently bound to the path of the binary. If the path changes and the same GUID is used the creation the Tray icon will fail. Since the GUID was statically derived from the AppUserModelId, PR 2328 had to be reverted because it broke all Apps without code signature when they updated and changed there executable path.\r\n\r\nBased on above behaviors of the Windows API its best to make this an opt-in. The developer has to be aware of the behavior/requirements using the GUID parameter. It also allows the mitigation of unexpected problems with the Tray creation by providing a new GUID.\r\n\r\n<!--\r\nThank you for your Pull Request. Please provide a description above and review\r\nthe requirements below.\r\n\r\nContributors guide: https://github.com/electron/electron/blob/master/CONTRIBUTING.md\r\n-->\r\n\r\n#### Checklist\r\n<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->\r\n\r\n- [X] PR description included and stakeholders cc'd\r\n- [X] `npm test` passes\r\n- [X] tests are [changed or added](https://github.com/electron/electron/blob/master/docs/development/testing.md)\r\n- [X] relevant documentation is changed or added\r\n- [X] PR title follows semantic [commit guidelines](https://github.com/electron/electron/blob/master/docs/development/pull-requests.md#commit-message-guidelines)\r\n- [x] [PR release notes](https://github.com/electron/clerk/blob/master/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/master/README.md#examples).\r\n\r\n#### Release Notes\r\n\r\nNotes: Added GUID parameter to Tray API to avoid system tray icon demotion on Windows <!-- Please add a one-line description for app developers to read in the release notes, or `no-notes` if no notes relevant to app developers. Examples and help on special cases: https://github.com/electron/clerk/blob/master/README.md#examples -->\r\n","created_at":"2020-01-24T23:45:33Z","updated_at":"2020-01-31T05:37:07Z","closed_at":"2020-01-31T05:37:04Z","merged_at":"2020-01-31T05:37:04Z","merge_commit_sha":"89eb309d0b22bd4aec058ffaf983e81e56a5c378","assignee":null,"assignees":[],"requested_reviewers":[{"login":"MarshallOfSound","id":6634592,"node_id":"MDQ6VXNlcjY2MzQ1OTI=","avatar_url":"https://avatars3.githubusercontent.com/u/6634592?v=4","gravatar_id":"","url":"https://api.github.com/users/MarshallOfSound","html_url":"https://github.com/MarshallOfSound","followers_url":"https://api.github.com/users/MarshallOfSound/followers","following_url":"https://api.github.com/users/MarshallOfSound/following{/other_user}","gists_url":"https://api.github.com/users/MarshallOfSound/gists{/gist_id}","starred_url":"https://api.github.com/users/MarshallOfSound/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarshallOfSound/subscriptions","organizations_url":"https://api.github.com/users/MarshallOfSound/orgs","repos_url":"https://api.github.com/users/MarshallOfSound/repos","events_url":"https://api.github.com/users/MarshallOfSound/events{/privacy}","received_events_url":"https://api.github.com/users/MarshallOfSound/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/electron/electron/pulls/21891/commits","review_comments_url":"https://api.github.com/repos/electron/electron/pulls/21891/comments","review_comment_url":"https://api.github.com/repos/electron/electron/pulls/comments{/number}","comments_url":"https://api.github.com/repos/electron/electron/issues/21891/comments","statuses_url":"https://api.github.com/repos/electron/electron/statuses/e72c7ec1aa0d52e4fe5a6d77f1fa558c0dde6e4d","head":{"label":"bitdisaster:fix-systray-demotion-on-windows","ref":"fix-systray-demotion-on-windows","sha":"e72c7ec1aa0d52e4fe5a6d77f1fa558c0dde6e4d","user":{"login":"bitdisaster","id":5191943,"node_id":"MDQ6VXNlcjUxOTE5NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/5191943?v=4","gravatar_id":"","url":"https://api.github.com/users/bitdisaster","html_url":"https://github.com/bitdisaster","followers_url":"https://api.github.com/users/bitdisaster/followers","following_url":"https://api.github.com/users/bitdisaster/following{/other_user}","gists_url":"https://api.github.com/users/bitdisaster/gists{/gist_id}","starred_url":"https://api.github.com/users/bitdisaster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitdisaster/subscriptions","organizations_url":"https://api.github.com/users/bitdisaster/orgs","repos_url":"https://api.github.com/users/bitdisaster/repos","events_url":"https://api.github.com/users/bitdisaster/events{/privacy}","received_events_url":"https://api.github.com/users/bitdisaster/received_events","type":"User","site_admin":false},"repo":{"id":216672113,"node_id":"MDEwOlJlcG9zaXRvcnkyMTY2NzIxMTM=","name":"electron","full_name":"bitdisaster/electron","private":false,"owner":{"login":"bitdisaster","id":5191943,"node_id":"MDQ6VXNlcjUxOTE5NDM=","avatar_url":"https://avatars3.githubusercontent.com/u/5191943?v=4","gravatar_id":"","url":"https://api.github.com/users/bitdisaster","html_url":"https://github.com/bitdisaster","followers_url":"https://api.github.com/users/bitdisaster/followers","following_url":"https://api.github.com/users/bitdisaster/following{/other_user}","gists_url":"https://api.github.com/users/bitdisaster/gists{/gist_id}","starred_url":"https://api.github.com/users/bitdisaster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitdisaster/subscriptions","organizations_url":"https://api.github.com/users/bitdisaster/orgs","repos_url":"https://api.github.com/users/bitdisaster/repos","events_url":"https://api.github.com/users/bitdisaster/events{/privacy}","received_events_url":"https://api.github.com/users/bitdisaster/received_events","type":"User","site_admin":false},"html_url":"https://github.com/bitdisaster/electron","description":":electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS","fork":true,"url":"https://api.github.com/repos/bitdisaster/electron","forks_url":"https://api.github.com/repos/bitdisaster/electron/forks","keys_url":"https://api.github.com/repos/bitdisaster/electron/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitdisaster/electron/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitdisaster/electron/teams","hooks_url":"https://api.github.com/repos/bitdisaster/electron/hooks","issue_events_url":"https://api.github.com/repos/bitdisaster/electron/issues/events{/number}","events_url":"https://api.github.com/repos/bitdisaster/electron/events","assignees_url":"https://api.github.com/repos/bitdisaster/electron/assignees{/user}","branches_url":"https://api.github.com/repos/bitdisaster/electron/branches{/branch}","tags_url":"https://api.github.com/repos/bitdisaster/electron/tags","blobs_url":"https://api.github.com/repos/bitdisaster/electron/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitdisaster/electron/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitdisaster/electron/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitdisaster/electron/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitdisaster/electron/statuses/{sha}","languages_url":"https://api.github.com/repos/bitdisaster/electron/languages","stargazers_url":"https://api.github.com/repos/bitdisaster/electron/stargazers","contributors_url":"https://api.github.com/repos/bitdisaster/electron/contributors","subscribers_url":"https://api.github.com/repos/bitdisaster/electron/subscribers","subscription_url":"https://api.github.com/repos/bitdisaster/electron/subscription","commits_url":"https://api.github.com/repos/bitdisaster/electron/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitdisaster/electron/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitdisaster/electron/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitdisaster/electron/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitdisaster/electron/contents/{+path}","compare_url":"https://api.github.com/repos/bitdisaster/electron/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitdisaster/electron/merges","archive_url":"https://api.github.com/repos/bitdisaster/electron/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitdisaster/electron/downloads","issues_url":"https://api.github.com/repos/bitdisaster/electron/issues{/number}","pulls_url":"https://api.github.com/repos/bitdisaster/electron/pulls{/number}","milestones_url":"https://api.github.com/repos/bitdisaster/electron/milestones{/number}","notifications_url":"https://api.github.com/repos/bitdisaster/electron/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitdisaster/electron/labels{/name}","releases_url":"https://api.github.com/repos/bitdisaster/electron/releases{/id}","deployments_url":"https://api.github.com/repos/bitdisaster/electron/deployments","created_at":"2019-10-21T21:53:10Z","updated_at":"2020-01-20T18:30:37Z","pushed_at":"2020-01-28T23:56:20Z","git_url":"git://github.com/bitdisaster/electron.git","ssh_url":"git@github.com:bitdisaster/electron.git","clone_url":"https://github.com/bitdisaster/electron.git","svn_url":"https://github.com/bitdisaster/electron","homepage":"https://electronjs.org","size":68832,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"electron:master","ref":"master","sha":"28fb2b7ed5c96fdae559ea015e99f3acb6b12023","user":{"login":"electron","id":13409222,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNDA5MjIy","avatar_url":"https://avatars1.githubusercontent.com/u/13409222?v=4","gravatar_id":"","url":"https://api.github.com/users/electron","html_url":"https://github.com/electron","followers_url":"https://api.github.com/users/electron/followers","following_url":"https://api.github.com/users/electron/following{/other_user}","gists_url":"https://api.github.com/users/electron/gists{/gist_id}","starred_url":"https://api.github.com/users/electron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/electron/subscriptions","organizations_url":"https://api.github.com/users/electron/orgs","repos_url":"https://api.github.com/users/electron/repos","events_url":"https://api.github.com/users/electron/events{/privacy}","received_events_url":"https://api.github.com/users/electron/received_events","type":"Organization","site_admin":false},"repo":{"id":9384267,"node_id":"MDEwOlJlcG9zaXRvcnk5Mzg0MjY3","name":"electron","full_name":"electron/electron","private":false,"owner":{"login":"electron","id":13409222,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNDA5MjIy","avatar_url":"https://avatars1.githubusercontent.com/u/13409222?v=4","gravatar_id":"","url":"https://api.github.com/users/electron","html_url":"https://github.com/electron","followers_url":"https://api.github.com/users/electron/followers","following_url":"https://api.github.com/users/electron/following{/other_user}","gists_url":"https://api.github.com/users/electron/gists{/gist_id}","starred_url":"https://api.github.com/users/electron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/electron/subscriptions","organizations_url":"https://api.github.com/users/electron/orgs","repos_url":"https://api.github.com/users/electron/repos","events_url":"https://api.github.com/users/electron/events{/privacy}","received_events_url":"https://api.github.com/users/electron/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/electron/electron","description":":electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS","fork":false,"url":"https://api.github.com/repos/electron/electron","forks_url":"https://api.github.com/repos/electron/electron/forks","keys_url":"https://api.github.com/repos/electron/electron/keys{/key_id}","collaborators_url":"https://api.github.com/repos/electron/electron/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/electron/electron/teams","hooks_url":"https://api.github.com/repos/electron/electron/hooks","issue_events_url":"https://api.github.com/repos/electron/electron/issues/events{/number}","events_url":"https://api.github.com/repos/electron/electron/events","assignees_url":"https://api.github.com/repos/electron/electron/assignees{/user}","branches_url":"https://api.github.com/repos/electron/electron/branches{/branch}","tags_url":"https://api.github.com/repos/electron/electron/tags","blobs_url":"https://api.github.com/repos/electron/electron/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/electron/electron/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/electron/electron/git/refs{/sha}","trees_url":"https://api.github.com/repos/electron/electron/git/trees{/sha}","statuses_url":"https://api.github.com/repos/electron/electron/statuses/{sha}","languages_url":"https://api.github.com/repos/electron/electron/languages","stargazers_url":"https://api.github.com/repos/electron/electron/stargazers","contributors_url":"https://api.github.com/repos/electron/electron/contributors","subscribers_url":"https://api.github.com/repos/electron/electron/subscribers","subscription_url":"https://api.github.com/repos/electron/electron/subscription","commits_url":"https://api.github.com/repos/electron/electron/commits{/sha}","git_commits_url":"https://api.github.com/repos/electron/electron/git/commits{/sha}","comments_url":"https://api.github.com/repos/electron/electron/comments{/number}","issue_comment_url":"https://api.github.com/repos/electron/electron/issues/comments{/number}","contents_url":"https://api.github.com/repos/electron/electron/contents/{+path}","compare_url":"https://api.github.com/repos/electron/electron/compare/{base}...{head}","merges_url":"https://api.github.com/repos/electron/electron/merges","archive_url":"https://api.github.com/repos/electron/electron/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/electron/electron/downloads","issues_url":"https://api.github.com/repos/electron/electron/issues{/number}","pulls_url":"https://api.github.com/repos/electron/electron/pulls{/number}","milestones_url":"https://api.github.com/repos/electron/electron/milestones{/number}","notifications_url":"https://api.github.com/repos/electron/electron/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/electron/electron/labels{/name}","releases_url":"https://api.github.com/repos/electron/electron/releases{/id}","deployments_url":"https://api.github.com/repos/electron/electron/deployments","created_at":"2013-04-12T01:47:36Z","updated_at":"2020-05-26T03:18:11Z","pushed_at":"2020-05-26T02:52:23Z","git_url":"git://github.com/electron/electron.git","ssh_url":"git@github.com:electron/electron.git","clone_url":"https://github.com/electron/electron.git","svn_url":"https://github.com/electron/electron","homepage":"https://electronjs.org","size":75421,"stargazers_count":82973,"watchers_count":82973,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":11130,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1224,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":11130,"open_issues":1224,"watchers":82973,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/electron/electron/pulls/21891"},"html":{"href":"https://github.com/electron/electron/pull/21891"},"issue":{"href":"https://api.github.com/repos/electron/electron/issues/21891"},"comments":{"href":"https://api.github.com/repos/electron/electron/issues/21891/comments"},"review_comments":{"href":"https://api.github.com/repos/electron/electron/pulls/21891/comments"},"review_comment":{"href":"https://api.github.com/repos/electron/electron/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/electron/electron/pulls/21891/commits"},"statuses":{"href":"https://api.github.com/repos/electron/electron/statuses/e72c7ec1aa0d52e4fe5a6d77f1fa558c0dde6e4d"}},"author_association":"MEMBER"}]} |