Comments (8)
@hardfalcon Thanks for the issue! This is a great callout - in most cases, we encourage everyone to base off of main
and then let maintainers backport, but there isn't much documentation for the cases that require branching off of a specific release branch. We'll make sure that more documentation is added 😄
For reference, you can also just use the git checkout command (i.e.: git checkout 26-x-y
). But to your point, it's unclear whether or not you should just use build-tools commands and when/where. We'll clarify that in build-tools docs and also in the initial contributing docs here: https://www.electronjs.org/docs/latest/development/pull-requests#setting-up-your-local-environment
If you have any additional pain points that we could improve in the docs, let me know. Thanks!
from build-tools.
Thanks for the quick reply! :)
Please consider that git checkout
doesn't really help in many cases, because fixes for stable/older versions of Electron will often be backports of commits from external dependencies, for example in chromium, node, or even dependencies of those. In my specific case, the issues were in two dependencies of node, one of which had actually already been fixed in more recent releases from node's 18.x version branch.
In my specific case, it would have saved me literal days of trying figuring things out if Electron's official documentation on patches contained a concise example like the one from here, augmented by the commands/parameters required to write such a change only for a specific version branch of Electron.
Even without being familiar with the (from my point of view very obscure) tooling that is used to write patches for Electron, it's easy to figure out from past commits trivial changes like minor version updates of dependencies (you can even do that using only Github's web interface), and from there, it's not too difficult to then figure out which version of a specific dependency is used, and to track down the required fix/commit from that upstream repo.
What is excessively complicated and burdensome in my experience is actually testing your change by actually building electron with that change, especially when most of the documentation around Electron's build-tools
appears to be written more with people in mind who are trying to build new applications based on Electron rather than people working on changes for Electron itself. Perhaps there should be a dedicated section for the latter in the Contributing
section on https:://electronjs.org, and there should definitely be a dedicated section for this stuff in this git repo's readme file.
from build-tools.
Please consider that
git checkout
doesn't really help in many cases, because fixes for stable/older versions of Electron will often be backports of commits from external dependencies, for example in chromium, node, or even dependencies of those.
I'm not sure what the issue here is? Note that Electron maintainers use build-tools
to do backports to older Electron versions on the regular. You simply checkout the older branch and sync:
$ git checkout 26-x-y
$ e sync
especially when most of the documentation around Electron's
build-tools
appears to be written more with people in mind who are trying to build new applications based on Electron rather than people working on changes for Electron itself.
Quite the opposite, build-tools
is geared specifically to working on Electron itself - app developers shouldn't be using build-tools
.
Perhaps there should be a dedicated section for the latter in the Contributing section on https:://electronjs.org
The "Contributing" section on the website is for working on Electron itself - the build instructions pretty clearly call out they're for building Electron itself:
Follow the guidelines below for building Electron itself, for the purposes of creating custom Electron binaries. For bundling and distributing your app code with the prebuilt Electron binaries, see the application distribution guide.
from build-tools.
Addressing the title of this issue, there is indeed documentation on checking out a branch or tag: https://github.com/electron/build-tools#building-a-specific-electron-version
from build-tools.
@dsanders11: Oh wtf, how the heck did I manage to overlook that section? I could have sworn that I did a plaintext search on this very page in the browser even several times yesterday for strings like branch
, release
or version
… o_O
Is there a way to have a table of contents at the top of the page, such that the existence of a section such as Common Usage
or even the more specific Building a Specific Electron Version
isn't lost exactly 1 screen height above the bottom of the page? As it turns out, at some point, I had actually scrolled down all the way in pure despair, and discovered the existence of the Advanced Usage
section, but still managed to overlook the Common Usage
section right above).
from build-tools.
Is there a way to have a table of contents at the top of the page
GitHub provides a table of contents on the main repo page in the upper left corner.
![Screenshot 2023-11-15 at 10 35 06 PM](https://private-user-images.githubusercontent.com/5820654/283343105-7c0230e0-375e-4c4b-b77f-59e2de2f8f10.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg3NzYyNTgsIm5iZiI6MTcxODc3NTk1OCwicGF0aCI6Ii81ODIwNjU0LzI4MzM0MzEwNS03YzAyMzBlMC0zNzVlLTRjNGItYjc3Zi01OWUyZGUyZjhmMTAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTlUMDU0NTU4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YmExMjk0NGU1ZDk4MzQ4MjVjZGM4N2ZmY2U0NmY0OWU5OGFlZWZhMTU5YWJiYTcwNzU5OWViNjY2MDIwZTNhMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Uc5_jJI9kjmPQFx0dTn7EZR6XWRUmJjkcB2ExOmdHn8)
When viewing Markdown files directly, the button switches to the upper right corner and provides an outline panel on the right side.
![Screenshot 2023-11-15 at 10 37 32 PM](https://private-user-images.githubusercontent.com/5820654/283343630-65907e8e-d31f-430b-978a-502b43c70efe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg3NzYyNTgsIm5iZiI6MTcxODc3NTk1OCwicGF0aCI6Ii81ODIwNjU0LzI4MzM0MzYzMC02NTkwN2U4ZS1kMzFmLTQzMGItOTc4YS01MDJiNDNjNzBlZmUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTlUMDU0NTU4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MTEzNDMyYTg3NGRhZDBlYjMwODU3OGEyNzBjY2Y1Mzk1NDhmNDczNTVkYmE1ZTA1YWJlZTUzOGRhN2I3NjliOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.j5E05pI1DJh8U8yDMMM5PmNG_jpPtLPa5INRrHxACKM)
from build-tools.
This isn't shown on my machine (1920x1080 resolution, Firefox 119 with menu bar, tab bar and bookmarks toolbar enabled). Even when I open the README.md
file itself on Github, that TOC box is only shown for a fraction of a second when (re)loading the page, before it is hidden again. I briefly suspected this might be caused by my ad blocker, but disabling the ad blocker and reloading the page doesn't change the behavior.
from build-tools.
I'm going to close this out since this specific issue is currently documented.
from build-tools.
Related Issues (20)
- e test error HOT 2
- Updating `depot_tools` requires Xcode but doesn't ensure that Xcode exists HOT 1
- The version of Xcode downloaded by `e load-xcode` produces a "damaged and can't be opened" popup HOT 2
- goma-linux-arm64.tgz contains x86-64 binaries, not arm64 HOT 2
- Consider running `build/install-build-deps.sh` on Linux before build
- Don't Keep Previous Xcodes Indefinitely
- build eletron 28-x-y (windows)error: "ValueError: path is on mount '\\\\history_cluster_types.mojom-webui.js', start on mount '\\\\'" HOT 4
- Any documentation for use of (or disabling of) reclient? HOT 23
- Prevent duplicate identical sanitization warnings
- Output incorrectly piped to console on windows HOT 1
- Semver dependency is missing HOT 1
- Can't build on windows because rewrapper_windows.cfg doesn't exist in buildtools of chromium src HOT 14
- Can no longer compile on Windows, "gn gen" can't parse arguments properly HOT 2
- `e d rbe login` randomly fails on Windows HOT 3
- `e sync` command fails due to git root mistmatch (Windows 10) HOT 2
- error on e sync trying to build 28-x-y HOT 1
- build v22 faild, got `Windows toolchain out of date or doesn't exist, updating (Pro) error on e sync` HOT 1
- Use managed SDKs on macOS instead of full XCodes HOT 1
- Unable to build Electron 31 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from build-tools.