Перейти к основному содержанию

22 постов с тегом "Project News"

Important announcements about the Electron project

Показать все теги

New Electron Release Cadence

· 6 мин. прочитано

Beginning in September 2021, Electron will release a new major stable version every 8 weeks.


In 2019, Electron moved to a 12 week release cycle to match Chromium's 6 week release cycle. Recently, both Chrome and Microsoft announced changes that made us reconsider Electron's current release cadence:

  1. Chromium plans to release a new milestone every 4 weeks, starting with Chrome 94 on September 21st, 2021. This release cadence also adds a new Extended Stable option every 8 weeks, which will contain all updated security fixes.

  2. The Microsoft Store will require Chromium-based apps to be no older than within 2 major versions. As an example, if the latest released major version of Chromium is 85, any browser based on Chromium must be on at least Chromium version 83 or higher. This rule includes Electron apps.

Beginning in September 2021, Electron will release a new major stable version every 8 weeks, to match Chromium's 8 week Extended Stable releases.

Our first release with Chromium Extended Stable will be Electron 15 on September 21st, 2021.

Knowing that a release cadence change will impact other downstream applications, we wanted to let our developer community know as soon as possible. Read on for more details about our 2021 release schedule.

Electron 15: Temporary Alpha

Given that our original Electron 15 release targeted a non-Extended Stable version (Chromium's Extended Stable versions are based on their even-numbered versions), we needed to change our original target release date. However, an Electron app must use the most recent 2 major versions of Chromium to be accepted to the Microsoft Store, which made waiting for two Chromium versions untenable.

With these two requirements, our team faced a timing dilemma. Moving Electron 15 to include Chromium M94 would allow app developers to get on the very first Extended Stable version of Chromium; however, it would also shorten the beta-to-stable cycle to only 3 weeks.

To help with this switchover, Electron will offer a temporary alpha build, only for the Electron 15 release. This alpha build will allow developers more time to test and plan for an Electron 15 release, with a more stable build than our current nightlies.

The alpha channel build will ship for Electron 15 on July 20th, 2021. It will transition to a beta release on September 1st, 2021 with a stable release target of September 21st, 2021. Subsequent Electron releases will not have alpha releases.

2021 Plan for Releases

Below is our current release schedule for 2021:

ElectronChromeAlpha ReleaseBeta ReleaseStable ReleaseStable Cycle (Weeks)
E13M91-2021-Mar-052021-May-2512
E14M93-2021-May-262021-Aug-3114
E15M942021-Jul-202021-Sep-012021-Sep-219 (includes alpha)
E16M96-2021-Sep-222021-Nov-168
E17M98-2021-Nov-172022-Feb-0111

Adding the alpha channel extends the development time before Electron 15's launch from 3 weeks to 9 weeks - closer to our new 8 week cycle, while still meeting the requirements for Windows Store submission.

To further help app developers, for the remainder of 2021 until May 2022, we will also be extending our supported versions policy from the latest 3 versions to the latest 4 versions of Electron. That means that even if you can't immediately alter your upgrade schedule, older versions of Electron will still receive security updates and fixes.

Addressing Concerns

There's a reason we're publishing this post well before this release cycle change is scheduled. We know that a faster release cycle will have a real impact on Electron apps - some of which may already find our major release cadence aggressive.

We've tried to address common concerns below:

❓ Why even make this change? Why not keep the 12 week release cadence?

To deliver the most up-to-date versions of Chromium in Electron, our schedule needs to track theirs. More information around Chromium's release cycle can be found here.

Additionally, the current 12 week release cadence would be untenable with the Microsoft Store's new submission requirements. Even apps on the latest stable version of Electron would experience a roughly two week period where their app may be rejected under the new security requirements.

Every new Chromium release contains new features, bug fixes / security fixes, and V8 improvements. We want you, as app developers, to have these changes in a timely manner, so our stable release dates will continue to match every other Chromium stable release. As an app developer, you'll have access to new Chromium and V8 features and fixes sooner than before.

❓ The existing 12 week release schedule already moves quickly. What steps are the team taking to make upgrading easier?

One advantage of more frequent releases is having smaller releases. We understand that upgrading Electron's major versions can be difficult. We hope that smaller releases will introduce fewer major Chromium and Node changes, as well as fewer breaking changes, per release.

❓ Will there been an alpha release available for future Electron versions?

There are no plans to support a permanent alpha release at this time. This alpha is only intended for Electron 15, as a way to help developers upgrade more easily in the shortened release period.

❓ Will Electron extend the number of supported versions?

We will be extending our supported version policy from the latest three versions to the latest four versions of Electron until May 2022, with the release of Electron 19. After Electron 19 is released, we'll return to supporting the latest three major versions, as well as the beta and nightly releases.

E13 (May'21)E14 (Aug'21)E15 (Sep'21)E16 (Nov'21)E17 (Feb'22)E18 (Mar'22)E19 (May'22)
13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y19.x.y
12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y18.x.y
11.x.y12.x.y13.x.y14.x.y15.x.y16.x.y17.x.y
----12.x.y13.x.y14.x.y15.x.y--

Questions?

📨 If you have questions or concerns, please mail us at info@electronjs.org or join our Discord. We know this is a change that will impact many apps and developers, and your feedback is very important to us. We want to hear from you!

Electron becomes an OpenJS Foundation Impact Project

· Одна мин. чтения

At OpenJS World this morning, we announced that Electron has officially graduated from the OpenJS Foundation's incubation program, and is now an OpenJS Foundation Impact Project.

Electron entered incubation in December of 2019, at the last OpenJS Foundation global conference in Montreal. We're excited to take a larger role in the JavaScript community as an Impact Project, and continue our partnership with the OpenJS Foundation.


Learning more

You can read up on the foundation, its mission, and its members on the OpenJSF website. The OpenJS Foundation is host to a number of open source JavaScript projects including jQuery, Node.js, and webpack. It's supported by 30 corporate and end-user members, including GoDaddy, Google, IBM, Intel, Joyent, and Microsoft.

Electron is an open–source framework for building cross-platform desktop applications with web technologies. To learn more about the humans behind Electron and how they work together, take a look at our Governance page.

To get started with Electron itself, take a peek at our documentation.

Будущие релизы Electron

· Одна мин. чтения

Electron временно приостанавливает основные релизы


Что происходит?

Наш график выхода основных версий будет приостановлен вместе с Chromium, так как проект Chromium принял решение о приостановке своих релизов из-за скорректированных графиков работы. Это значит, что на время приостановки Chromium, Electron также приостановит выпуск новых основных версий.

Мы считаем, что наш лучший выбор — это следовать по стопам Chromium, и так в то же время команда Electron переместится на полную работу по исправлению ошибок, безопасности, производительности и стабильности.

Мы хотим, чтобы благополучие как наших сопровождающих, так и наших потребителей было в приоритете в это время, поэтому мы приветствуем ваши отзывы и с нетерпением ждем возвращения к нашему регулярному графику выпуска.

Пожалуйста, подпишитесь на наш Twitter аккаунт для получения обновлений.

Дополнение (2020-03-30): Electron 9 будет использовать Chromium M83 и будет выпущен 19 Мая, 2020, в ответ на Объявление Chromium'а о пропуске стабильной даты M82 и изменении даты для M83.

Electron joins the OpenJS Foundation

· 2 мин. прочитано

At Node+JS Interactive in Montreal, the OpenJS Foundation announced that it accepted Electron into the Foundation's incubation program. The Foundation is committed to supporting the healthy growth of the JavaScript ecosystem and web technologies by providing a neutral organization to host and sustain projects, as well as collaboratively fund activities for the benefit of the community at large.

The OpenJS Foundation is host to a number of open source JavaScript projects including jQuery, Node.js, and webpack. It's supported by 30 corporate and end-user members, including GoDaddy, Google, IBM, Intel, Joyent, and Microsoft. Electron is an open–source framework for building cross-platform desktop applications with web technologies.

This is an exciting move for Electron, and we see it as a next step in our evolution as an open-source project.


What this means for developers

Electron joining the OpenJS Foundation does not change how Electron is made, released, or used — and does not directly affect developers building applications with Electron. Even though Electron was originally created at GitHub in 2013, it is currently maintained by a number of organizations and individuals. In 2019, Electron codified its governance structure and invested heavily into formalizing how decisions affecting the entire project are made. We believe that having multiple organizations and developers investing in and collaborating on Electron makes the project stronger.

Lifting Electron up from being owned by a single corporate entity and moving it into a neutral foundation focused on supporting the web and JavaScript ecosystem is a natural next step as we mature as an open-source project.

Learning more

You can read up on the foundation, its mission, and its members on the OpenJSF website. For more information and quotes about the acceptance of Electron into the OpenJSF incubation program, check out the official press release. To learn more about the humans behind Electron and how they work together, take a look at our Governance page.

To get started with Electron itself, take a peek at our documentation.

New Electron Release Cadence

· 3 мин. прочитано

::info ⚡ Обновление (2021-07-14): Мы продвигаемся еще быстрее!

В 3 квартале 2021 года команда Chrome увеличила частоту выпуска с каждых 6 недель до каждых 4 недель. Релизы Electron последовали этому примеру. Пожалуйста, прочитайте обновленную 8-недельную каденцию сообщении в блоге для получения более актуальной информации!

:::

🎉 Electron собирается выпускать новую стабильную версию каждые 12 недель! 🎉


⚡️ Вау, это быстро! Но зачем?

Проще говоря, Chromium не останавливает доставку, так что Electron тоже не собирается замедляться.

Релизы Chromium выпускаются в соответствии с 6-недельным графиком. To deliver the most up-to-date versions of Chromium in Electron, our schedule needs to track theirs. More information around Chromium's release cycle can be found here.

🚀 Почему каждые 12 недель?

Каждые 6 недель выходит новый выпуск Chromium с новыми функциями, исправлениями ошибок/исправлениями безопасности и улучшениями V8. Пользователи Electron громко и ясно заявляли о своевременном внесении этих изменений, поэтому мы скорректировали даты выпуска стабильной версии, чтобы она соответствовала всем остальным стабильным выпускам Chromium. Во-первых, Electron v6.0.0 будет включать M76, и его стабильный выпуск запланирован на July 30, 2019, в тот же день выпуска, что и Chromium M76.

Что это значит для меня и моего приложения Electron?

Вы получите доступ к новым функциям и исправлениям Chromium и V8 раньше, чем раньше. Главное, вы также будете знать когда грядут эти новые изменения, так что вы сможете планировать с большей информацией, чем раньше.

Команда Electron продолжит поддерживать последние три основные версии. Например, когда v6.0.0 станет стабильной 30 июля 2019 года, мы будем поддерживать v6.x, v5.x и v4.x, в то время как v3.x достигнет End-Of-Life.

💬 Программа отзывов

Пожалуйста, рассмотрите возможность присоединиться к нашей Программе отзывов о приложениях чтобы помочь нам с тестированием наших бета-версий и стабилизацией. Projects who participate in this program test Electron betas on their apps; and in return, the new bugs they find are prioritized for the stable release.

Краткая история релизов Electron

Решения относительно стабильных выпусков до v3.0.0 не следовали графику. В проект добавлены внутренние расписания v3.0.0 и v4.0.0. Ранее в этом году мы решили опубликовать наш стабильный релиз впервые в Electron v5.0.0. Объявление о датах выхода нашей стабильной версии было воспринято в целом положительно, и мы рады продолжить делать это для будущих выпусков.

Чтобы лучше оптимизировать эти усилия, связанные с обновлением, наши обновления и релизы рабочой группы были созданы в рамках нашей системы управление. Они позволили нам лучше расставить приоритеты и делегировать эту работу, что, как мы надеемся, станет более очевидным с каждым последующим выпуском.

Вот где наша новая каденция поставит нас по сравнению с каденцией Chromium:

line graph comparing Electron versus Chromium versions

📨 Если у вас есть вопросы, пожалуйста, напишите нам на info@electronjs.org.

Управление Electron

· 3 мин. прочитано

As Electron grows in popularity for desktop applications, the team working on it has also grown: we have more fulltime maintainers who work for different companies, live in different timezones, and have different interests. We're introducing a governance structure so we can keep growing smoothly.


Why are things changing?

People in the Electron project coordinate in timezones around the world with volunteers, with full-time maintainers, and with several companies who all rely on Electron. Until now, we've been successful with informal coordination; but as the team has grown, we've found that the approach doesn't scale. We also want to make it easier for new contributors to find a place to call home in the project.

Рабочие группы

Electron governance includes working groups that are responsible for different parts of the project. We're starting out with seven groups:

  • Community & Safety: Handles Code of Conduct issues.
  • Docs & Tooling: Oversees externally-focused tooling (e.g. Fiddle, Forge) and the Electron documentation.
  • Outreach: Helps grow the Electron community.
  • Releases: Ensures releases are stable and on schedule.
  • Security: Performs security testing and responds to security issues.
  • Upgrades: Integrates upstream upgrades, such as new versions of V8, Chromium, and Node.
  • Website: Maintains and improves the Electron website.

These groups will coordinate with each other, but each has their own meeting schedules and agendas to be productive on their own. More details on these groups are available at the governance repository.

Does this change the Electron project's direction?

This shouldn't have any direct effect on Electron's direction. If our strategy is successful, working groups will make it easier for new contributors to find topics that interest them, and make maintainers' lives simpler by moving discussion unrelated to their day-to-day work to other groups. If that happens, it may indirectly affect things by having more unblocked people working together.

Where can I learn more?

Окончание поддержки для 32-разрядного Linux

· 2 мин. прочитано

Команда Electron прекратит поддержку 32-разрядных Linux (ia32 / i386), начиная с Electron v4.0. Последней версией Electron, поддерживающей 32-битные установки Linux, является Electron v3.1, которая будет получать поддержку до выхода Electron v6. Поддержка для 64-разрядного Linux и armv7l останется неизменной.


Что именно Electron больше не поддерживает?

Вы возможно видели "64-bit" и "32-bit" в виде наклеек на вашем ПК или вариантов при скачивании ПО. Термин используется, чтобы указать конкретную архитектуру компьютера. Большинство компьютеров, выпущенных в 1990ых и ранних 2000ых, используют процессор, основанный на 32-разрядной архитектуре, пока большинство компьютеров, выпущенных позже, основаны на более новой и мощной 64-разрядной архитектуре. Nintendo 64 (выкупили?) и Playstation 2 были первыми широко доступными потребительскими устройствами с новой архитектурой, компьютеры, продаваемые после 2010, в основном имели исключительно 64-разрядные процессоры. Как результат, поддержка была сокращена: Google перестал выпускать Chrome для 32-разрядного Linux с мая 2016, Canonical перестали предоставлять 32-разрядные образы в 2017 и прекратили поддержку 32-разрядных систем с выходом Ubuntu 18.10. Arch Linux, elementary OS и прочие известные Linux дистрибутивы уже прекратили поддержку устаревшей архитектуры.

До сего момента, Electron предоставлял и поддерживал сборки, которые работают на старой 32-разрядной архитектуре. С релизом версии 4.0, команда Electron больше не будет предоставлять бинарные файлы или поддержку для 32-разрядного Linux.

Electron всегда был активным open-source проектом, так что мы продолжим поддерживать и поощрять разработчиков, заинтересованных в сборке Electron для экзотических архитектур.

Что это значит для разработчиков?

Если вы не предоставляете 32-разрядные версии вашего приложения для Linux, то ничего не изменится.

Проекты, которые предоставляют 32-разрядные приложения на Electron для Linux, должны определиться, как их продолжить. 32-разрядный Linux будет поддерживаться на Electron 3 до выхода Electron 6, что дает некоторое время для принятия решений и планов.

Что это значит для пользователей?

Если вы пользователь Linux и не уверены в том, что используете 64-разрядную систему, скорее всего вы работаете на 64-разрядной архитектуре. Чтобы убедиться в этом, вы можете выполнить команды lscpu или uname -m в вашем терминале. Одна из них выдаст вашу текущую архитектуру.

Если вы используете Linux на 32-разрядном процессоре, скорее всего вы уже столкнулись с трудностями при поиске актуального ПО для вашей операционной системы. Команда Electron присоединяется к другим авторитетным членам сообщества Linux, рекомендовав вам перейти на 64-разрядную архитектуру.

Node.js Native Addons and Electron 5.0

· 2 мин. прочитано

If you're having trouble using a native Node.js addon with Electron 5.0, there's a chance it needs to be updated to work with the most recent version of V8.


Goodbye v8::Handle, Hello v8::Local

In 2014, the V8 team deprecated v8::Handle in favor of v8::Local for local handles. Electron 5.0 includes a version of V8 that has finally removed v8::Handle for good, and native Node.js addons that still use it will need to be updated before they can be used with Electron 5.0.

The required code change is minimal, but every native Node module that still uses v8::Handle will fail to build with Electron 5.0 and will need to be modified. The good news is that Node.js v12 will also include this V8 change, so any modules that use v8::Handle will need to be updated anyway to work with the upcoming version of Node.

I maintain a native addon, how can I help?

If you maintain a native addon for Node.js, ensure you replace all occurrences of v8::Handle with v8::Local. The former was just an alias of the latter, so no other changes need to be made to address this specific issue.

You may also be interested in looking into N-API, which is maintained separately from V8 as a part of Node.js itself, and aims to insulate native addons from changes in the underlying JavaScript engine. You can find more information in the N-API documentation on the Node.js website.

Help! I use a native addon in my app and it won't work!

If you're consuming a native addon for Node.js in your app and the native addon will not build because of this issue, check with the author of the addon to see if they've released a new version that fixes the problem. If not, reaching out to the author (or opening a Pull Request!) is probably your best bet.

Using GN to Build Electron

· 3 мин. прочитано

Electron now uses GN to build itself. Here's a discussion of why.


GYP and GN

Когда Electron был впервые выпущен в 2013 году, конфигурация сборки Chromium была написана GYP, короче "Генерировать ваши проекты".

В 2014 году Проект Chromium представил новый инструмент конфигурации сборки GN (короче "Generate Ninja") файлы сборки Chrome были перенесены в GN и GYP были удалены из исходного кода.

Electron исторически держал разделение между основными кодами Electron и libchromiumcontent, часть Electron, которая завершает содержимое подмодуля Chromium. Electron has carried on using GYP, while libchromiumcontent -- as a subset of Chromium -- switched to GN when Chromium did.

Like gears that don't quite mesh, there was friction between using the two build systems. Maintaining compatibility was error-prone, from compiler flags and #defines that needed to be meticulously kept in sync between Chromium, Node, V8, and Electron.

To address this, the Electron team has been working on moving everything to GN. Today, the commit to remove the last of the GYP code from Electron was landed in master.

What this means for you

If you're contributing to Electron itself, the process of checking out and building Electron from master or 4.0.0 is very different than it was in 3.0.0 and earlier. See the GN build instructions for details.

If you're developing an app with Electron, there are a few minor changes you might notice in the new Electron 4.0.0-nightly; but more than likely, Electron's change in build system will be totally transparent to you.

What this means for Electron

GN is faster than GYP and its files are more readable and maintainable. Moreover, we hope that using a single build configuration system will reduce the work required to upgrade Electron to new versions of Chromium.

  • It's already helped development on Electron 4.0.0 substantially because Chromium 67 removed support for MSVC and switched to building with Clang on Windows. With the GN build, we inherit all the compiler commands from Chromium directly, so we got the Clang build on Windows for free!

  • It's also made it easier for Electron to use BoringSSL in a unified build across Electron, Chromium, and Node -- something that was problematic before.

Certificate Transparency Fix

· 3 мин. прочитано

Electron 1.4. 2 содержит важный патч, который исправляет проблему с поддержкой Chrome в которой некоторые Symantec, GeoTrust, и сертификаты Thawte SSL/TLS некорректно отклонены 10 недель от времени сборки libchromiumcontent, лежащая в основе Electron библиотека Chrome. There are no issues with the certificates used on the affected sites and replacing these certificates will not help.


In Electron 1.4.0 — 1.4.11 HTTPS requests to sites using these affected certificates will fail with network errors after a certain date. This affects HTTPS requests made using Chrome's underlying networking APIs such as window.fetch, Ajax requests, Electron's net API, BrowserWindow.loadURL, webContents.loadURL, the src attribute on a <webview> tag, and others.

Upgrading your applications to 1.4.12 will prevent these request failures from occurring.

Note: This issue was introduced in Chrome 53 so Electron versions earlier than 1.4.0 are not affected.

Impact Dates

Below is a table of each Electron 1.4 version and the date when requests to sites using these affected certificates will start to fail.

Electron VersionImpact Date
1.3.xUnaffected
1.4.0Already failing
1.4.1Already failing
1.4.2Already failing
1.4.3December 10th, 2016 9:00 PM PST
1.4.4December 10th, 2016 9:00 PM PST
1.4.5December 10th, 2016 9:00 PM PST
1.4.6January 14th, 2017 9:00 PM PST
1.4.7January 14th, 2017 9:00 PM PST
1.4.8January 14th, 2017 9:00 PM PST
1.4.9January 14th, 2017 9:00 PM PST
1.4.10January 14th, 2017 9:00 PM PST
1.4.11February 11th, 2017 9:00 PM PST
1.4.12Unaffected

You can verify your app's impact date by setting your computer's clock ahead and then check to see if https://symbeta.symantec.com/welcome/ successfully loads from it.

More Information

You can read more about this topic, the original issue, and the fix at the following places: