diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..496ee2ca6a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/wg-api/spec-documents/clipboard-rearchitecture.md b/wg-api/spec-documents/clipboard-rearchitecture.md new file mode 100644 index 0000000000..2c28a61d9d --- /dev/null +++ b/wg-api/spec-documents/clipboard-rearchitecture.md @@ -0,0 +1,105 @@ +# Clipboard Module Rearchitecture + +> Shelley Vohr and John Kleinschmidt + +## Summary + +This RFC outlines a rearchitecturing of the `clipboard` module in Electron to improve alignment with the Clipboard API as specified by the [W3C](https://w3c.github.io/clipboard-apis/#clipboard-interface). + +## Platforms + +All - macOS, Windows, Linux. + +## Impetus + +Over the course of the last few months, Chromium has been making significant changes to their Clipboard API, including the ability to handle [Custom Formats](https://bugs.chromium.org/p/chromium/issues/detail?id=106449). Electron has had to break small aspects of its clipboard API to account for this, and it's unclear what other changes we may be forced to adapt to as they continue this work. Beyond this, users have been asking for an improved Clipboard API as well as surfaced a number of bugs with its current implementation - the most detailed of which is [here](https://github.com/electron/electron/issues/23156). + +Some other related issues include: + +- [#31130](https://github.com/electron/electron/issues/31130) +- [#31115](https://github.com/electron/electron/issues/31115) +- [#30699](https://github.com/electron/electron/issues/30699) +- [#26377](https://github.com/electron/electron/issues/26377) +- [#11838](https://github.com/electron/electron/issues/11838) +- [#9035](https://github.com/electron/electron/issues/9035) +- [#5078](https://github.com/electron/electron/issues/5078) +- [electron/governance#229](https://github.com/electron/governance/pull/229) + +Electron provided a `clipboard` API to its users preceding the specification of the [Clipboard API by the W3C](https://w3c.github.io/clipboard-apis/#clipboard-interface). As a result, we locked into an API surface and created an API contract with our users that became progressively harder to alter without breaking said contract while the web drove a more standardized approach. On top of this confusion, the `clipboard` module provided by Electron is a dual-process module, meaning that it exists in parallel to the more robust API provided by Chromium in the renderer process via `navigator.clipboard` global. + +At this point, it becomes clear that it is in users' and maintainers' best interest to reconsider how we approach the `clipboard` module - breaking changes might be difficult in the short term but provide more consistency and functionality as we look to the future of the module. + +## API Design + +The largest consideration for changes to the `clipboard` module is to what degree we should choose to align with the W3C specification. As we consider this, we should consider what needs or use cases might exist for Electron uses which necessarily wouldn't exist for Chrome users, and how we would plan to account for that in our new design. + +### Potential Options + +1. Strict alignment with W3C specification - no additional APIs exposed. +2. Alignment with W3C where possible, with some additional APIs exposed to handle desktop use cases which aren’t addressed by the specification. +3. Leave API as-is and continue to adapt it as required by upstream changes by Chromium development. + +### Preferred Approach/Solution + +Alignment with W3C where possible, with some additional APIs exposed to handle desktop use cases which aren’t considered by the specification. + +**APIs to Preserve** +* `clipboard.readBookmark()` + * Not supported through existing Web APIs or in the specification. +* `clipboard.writeBookmark(title, url[, type])` + * Not supported through existing Web APIs or in the specification. +* `clipboard.readFindText()` _macOS_ + * Not supported through existing Web APIs or in the specification. +* `clipboard.writeFindText(text)` + * Not supported through existing Web APIs or in the specification. +* `clipboard.clear([type])` + * Not supported through existing Web APIs or in the specification. +* `clipboard.readText([type])` + * Already implemented per specification. +* `clipboard.writeText(text[, type])` + * Already implemented per specification. + +**APIs to Remove** +* `clipboard.availableFormats([type])` + * Superseded by `clipboard.read` [Web API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read) +* `clipboard.has(format[, type])` + * Superseded by `clipboard.read` [Web API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read) +* `clipboard.readBuffer(format)` + * Superseded by `clipboard.read`[Web API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read) +* `clipboard.writeBuffer(format, buffer[, type])` + * Superseded by `clipboard.write` [Web API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write) +* `clipboard.readHTML()` + * Superseded by `clipboard.read` with `text/html` MIME type +* `clipboard.writeHTML(markup[, type])` + * Superseded by `clipboard.write` with `text/html` MIME type +* `clipboard.readImage([type])` + * Superseded by `clipboard.read()` with `image/*` (where * is bmp, gif, jpeg, png, svg+xml, etc.) +* `clipboard.writeImage(image[, type])` + * Superseded by `clipboard.write` with `image/*` (where * is bmp, gif, jpeg, png, svg+xml, etc.) +* `clipboard.readRTF([type])` + * Superseded by `clipboard.read` with `application/rtf` MIME type +* `clipboard.writeRTF(text[, type])` + * Superseded by `clipboard.write` with `application/rtf` MIME type + +**APIs to Modify** +* `clipboard.read(format)` + * Modify to bring into spec compliance with [Web API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read) `clipboard.read` + * Ensure that raw formats are preserved + * Custom MIME types e.g. `electron/filepath` +* `clipboard.write(data[, type])​` + * Modify to bring into spec compliance with [Web API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read) `clipboard.read` + * Ensure that raw formats are preserved + * Custom MIME types e.g. `electron/filepath` + +**APIs to Add** +* `onclipboardchange` event + * Outlined in the spec but has yet been implemented by Chromium (see [this crbug](https://bugs.chromium.org/p/chromium/issues/detail?id=933608)) + * We would implement this as such time Chromium does so. + +### Usage examples + +TODO + +## Rollout Plan + +TODO diff --git a/wg-releases/meeting-notes/2021-10-20.md b/wg-releases/meeting-notes/2021-10-20.md new file mode 100644 index 0000000000..4968c1969d --- /dev/null +++ b/wg-releases/meeting-notes/2021-10-20.md @@ -0,0 +1,557 @@ +# Releases WG + +### Date: October 20, 2021 + +## Members +Sofia Nguy +Charles Kerr +Cheng Zhao +Deepak Mohan +Samuel Attard +Michaela Laurencin +Keeley Hammond +Calvin Watford + +## Visitors + + + +## Agenda +https://github.com/electron/electron/issues/31478 - Do we want to do something for the new MacBook notch, is this necessary? +Sam points out we already have screen API that has workarea dimensions which are smaller than the screen dimensions, and it’s TBD whether the notch will be in the workarea or not. Sam is getting his Mac next Tuesday Oct 26 and will give it a test drive to find out. + +## Backport Requests +https://github.com/electron/electron/pull/31437 - Figma is requesting this be backported to 13-x-y. NOTE: If these notes are made public, Poiru requested that we don’t disclose Figma asked for this. + +## 16-x-y Project Board + +## 15-x-y Project Board + +## Action Items from past meetings +Move rotation to same as Upgrades uses - everyone sign into https://rotation.electronjs.org/ to get their name in + +# Releases WG + +### Date: October 13, 2021 + +## Members +Sofia +Charles +John +Michaela +Calvin +Keeley + +## Visitors +Micha Hanselmann *yay* + +## Agenda +Change consecutive meeting requirement to align with timezone changes +3 in 6 weeks +Also update meeting time + +## Backport Requests +https://github.com/electron/electron/pull/30925 (Requested by Erick - think we can just backport this, since it’s still a stable version and a fix?) +Group agrees, no vote needed since it’s a bugfix. Keeley volunteered to create the 13-x-y backport PR + + +## 16-x-y Project Board + +## 15-x-y Project Board + +## Action Items from past meetings +Move rotation to same as Upgrades uses - everyone sign into https://rotation.electronjs.org/ to get their name in + +# Releases WG + +### Date: October 6/7, 2021 + +## Members +Cheng Zhao +Deepak Mohan +Michaela Laurencin +Samuel Attard +Keeley Hammond + +## Visitors +Micha Hanselmann + +## Agenda +Change consecutive meeting requirement to align with timezone changes +3 in 6 weeks +Also update meeting time + +## Backport Requests + + +## 16-x-y Project Board + +## 15-x-y Project Board + +## Action Items from past meetings +Move rotation to same as Upgrades uses - everyone sign into https://rotation.electronjs.org/ to get their name in +# Releases WG + +### Date: September 29, 2021 + +## Members +John Kleinschmidt +Shelley Vohr +Charles Kerr +Michaela Laurencin +Keeley Hammond + +## Visitors + + + +## Agenda +Spectron: Should we deprecate it? +Slack thread here: https://electronhq.slack.com/archives/CC80G2R6H/p1631914703077700 +Call for Maintainers from March: https://github.com/electron-userland/spectron/issues/896 +Deprecation Plan here: +https://electronhq.slack.com/archives/CC80G2R6H/p1632429689127800?thread_ts=1632354052.127400&cid=CC80G2R6H + +## Backport Requests +https://github.com/electron/electron/pull/31095 +Approved +https://github.com/electron/electron/pull/31090 +Approved +Preliminarily approved for v14 +https://github.com/electron/electron/pull/31088 +Approved +## 15-x-y Project Board + +## Action Items from past meetings +Move rotation to same as Upgrades uses - everyone sign into https://rotation.electronjs.org/ to get their name in + + +# Releases WG + +### Date: September 22, 2021 + +## Members +Keeley +Calvin +Cheng +Charles +Michaela +Sofia + +## Visitors + + + +## Agenda +Moving meeting times +Alternating weeks for 9:30am-PT and 4pm-PT +Take good notes so folks can catch up +Spectron: Should we deprecate it? +Slack thread here: https://electronhq.slack.com/archives/CC80G2R6H/p1631914703077700 +Call for Maintainers from March: https://github.com/electron-userland/spectron/issues/896 +Electron 15 release review +Notes for next time: +Alpha & Beta plan +GitHub releases was broken + + + +## Backport Requests +https://github.com/electron/electron/pull/31038 + +## 15-x-y Project Board + +## Action Items from past meetings +Move rotation to same as Upgrades uses - everyone sign into https://rotation.electronjs.org/ to get their name in +# Releases WG + +### Date: September 15, 2021 + +## Members +Michaela Laurencin +Samuel Attard +Cheng Zhao +Sofia Nguy +Keeley Hammond + +## Visitors + + + +## Agenda +Stable Prep Check In +December Quiet Period: what do we want to keep going vs shut down? +Record in Jacob’s doc here: https://docs.google.com/document/d/1BX-sVqTI0U_stwKHNnLxJjryuSjZ_-D7KtatANZm9Fg/edit#heading=h.vb05pr2wygj9 +Move rotation to same as Upgrades uses - everyone sign into https://rotation.electronjs.org/ to get their name in + +## Backport Requests + + + +## 15-x-y Project Board + +## Action Items from past meetings + + + +# Releases WG + +### Date: September 8, 2021 + +## Members +Samuel Attard +Calvin Watford +Shelley Vohr +Keeley Hammond +Michaela Laurencin +Deepak Mohan + +## Visitors + + + +## Agenda +Chair rotation +Shelley is it… :) +Stable prep: to do async + +## Backport Requests + + + +## 15-x-y Project Board + +## Action Items from past meetings + +# Releases WG + +### Date: September 1, 2021 + +## Members +Samuel Attard +Keeley Hammond +John Kleinschmidt +Michaela Laurencin +Cheng Zhao + +## Visitors + + + +## Agenda +15 Release Review +Bad: +Sudowoodo tried to release 14.0.0 stable as 14.1.0 +We had an expired npm token for releasing spectron, chromedriver, etc. these should be automated +Everything else went well, was mostly a good release +Spectron: Someone has forked and is maintaining Spectron - reach out to this person and invite them into the ecosystem? +https://github.com/goosewobbler/spectron + +## Backport Requests +https://github.com/electron/electron/pull/30775 +https://github.com/electron/electron/pull/30733 +Also targeting 13 (PR) & 12 (PR) +https://github.com/electron/electron/pull/30704 +https://github.com/electron/electron/pull/30698 + +## 14-x-y Project Board +## 15-x-y Project Board + +## Action Items from past meetings +Alpha: Do we want to support and run an alpha build long-term? +General agreement / not caring :P +Should ask in channel for more thoughts pre-16 cut +# Releases WG + +### Date: August 25, 2021 + +## Members +Samuel Attard +Keeley Hammond +Sofia Nguy +Cheng Zhao +Charles Kerr +Calvin Watford + + + +## Visitors + + + +## Agenda +Alpha: Do we want to support and run an alpha build long-term? +General agreement / not caring :P +Stable prep assignments + +## Backport Requests +https://github.com/electron/electron/pull/30698 +Wait for windows, but approved +https://github.com/electron/electron/pull/30678 +Approved +https://github.com/electron/electron/pull/30664 +Approved +https://github.com/electron/electron/pull/30704 +Approved + +## 14-x-y Project Board +## 15-x-y Project Board + +## Action Items from past meetings +None + +# Releases WG + +### Date: August 18, 2021 + +## Members + + + +## Visitors + + + +## Agenda +Stable prep assignments + +## Backport Requests + + + +## 14-x-y Project Board +## 15-x-y Project Board + +## Action Items from past meetings +None + +# Releases WG + +### Date: August 11, 2021 + +## Members +Samuel Attard +Michaela Laurencin +Charles Kerr +Deepak Mohan +Keeley Hammond + +## Visitors + + + +## Agenda +Christmas no releases (21st onwards) +Turn it off (Dec 21 - Jan 2) +Window Controls Overlay PR backporting to 13 and 14 for Win11: https://github.com/electron/electron/pull/29600 +Edge case when handling release notes: https://github.com/electron/electron/issues/27918 + + + +## Backport Requests + + + +## 14-x-y Project Board +## 15-x-y Project Board + +## Action Items from past meetings +None + +# Releases WG + +### Date: August 4, 2021 + +## Members +Samuel Attard +Michaela Laurencin +Calvin Watford +Charles Kerr +Keeley Hammond +Cheng Zhao + +## Visitors +George Xu + +## Agenda + + + +## Backport Requests + + + +## 14-x-y Project Board +## 15-x-y Project Board + +## Action Items from past meetings +None +# Releases WG + +### Date: July 28, 2021 + +## Members +Samuel Attard +Deepak Mohan +Cheng Zhao +Michaela Laurencin +Calvin Watford +John Kleinschmidt +Keeley Hammond +Sofia Nguy + +## Visitors +George Xu + +## Agenda + + + +## Backport Requests + + + +## 14-x-y Project Board +E15 Alpha project board + +## Action Items from past meetings +None +# Releases WG + +### Date: July 21, 2021 + +## Members +Sofia Nguy +Michaela Laurencin +Charles Kerr +John Kleinschmidt +Keeley Hammond +Deepak Mohan + +## Visitors +George Xu + +## Agenda +Alpha Release +Alpha kicked off today and on its way for release + +## Retro for alpha release +Missed by one day +Worked well: +Last week’s group brainstorm on TODOs +Problem areas: +Missing owners - a lot of us assumed it was finished yesterday +Release notes - missed an area where we assumed non-stable releases could just look at last stable branch, which caused an infinite loop +Cutting branch needed an owner + + +## Backport Requests +https://github.com/electron/electron/pull/29986 + +## 14-x-y Project Board +E15 Alpha project board + +## Action Items from past meetings +None + + +# Releases WG + +### Date: July 7, 2021 + +## Members +Samuel Attard +Keeley Hammond +Sofia Nguy +Michaela Laurencin +Cheng Zhao + +## Visitors +George Xu + +## Agenda +Release cadence: Do we want to do even numbers instead for LTS? +8-week Release cadence blog post +https://github.com/electron/electronjs.org/pull/5463 +Publish week of July 12(?) + + +## Backport Requests +https://github.com/electron/electron/pull/29986 + +## Project Board + + + +## Action Items from past meetings +None +# Releases WG + +### Date: June 30, 2021 + +## Members +Samuel Attard +Charles Kerr +Michaela Laurencin +Calvin Watford +Sofia +John Kleinschmidt +Keeley + +## Visitors +George + +## Agenda +Release cadence + microsoft store + well this is annoying +https://docs.microsoft.com/en-us/windows/uwp/publish/store-policies#102-security +We’ll do odd numbers instead to avoid the 3 version jump +https://hackmd.io/ZR1IlEAbR2GYqthkKcSC7A?both +8-week Release cadence blog post +https://github.com/electron/electronjs.org/pull/5463 +Publish week of july 12 + + + + +## Backport Requests +https://github.com/electron/electron/pull/29963 +Approved + +## Project Board + + + +## Action Items from past meetings +Release cadence update announcement + +# Releases WG + +### Date: June 23, 2021 + +## Members +Samuel Attard +Michaela Laurencin +Cheng Zhao +Sofia Nguy +Keeley Hammond +Charles Kerr +Deepak Mohan +Calvin Watford + +## Visitors +George Xu + +## Agenda + + + + +## Backport Requests + + +## Project Board + + + +## Action Items from past meetings +Release cadence update announcement