diff --git a/meta.json b/meta.json new file mode 100644 index 00000000..0b93d9be --- /dev/null +++ b/meta.json @@ -0,0 +1 @@ +{"slug":"etcher","type":"repository","version":"1.5.63","markers":[],"tags":[],"links":{},"active":true,"data":{"license":"Apache-2.0","name":"etcher","tagline":"Flash OS images to SD cards & USB drives, safely and easily.","images":{"banner":"data:image/png;base64,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"},"description":"Flash OS images to SD cards & USB drives, safely and easily.","version":"1.5.63","type":"npm","links":{"issueTracker":null,"homepage":"https://etcher.io","repository":"https://github.com/balena-io/etcher.git"},"maintainers":["@thundron","@zvin","@jviotti","@nazrhom"],"changelog":[],"faq":[{"title":"Why is my drive not bootable?","content":[["para","Etcher copies images to drives byte by byte, without doing any transformation to the final device, which means images that require special treatment to be made bootable, like Windows images, will not work out of the box. In these cases, the general advice is to use software specific to those kind of images, usually available from the image publishers themselves. You can find more information ",["link",{"href":"https://github.com/balena-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#why-is-my-drive-not-bootable"},"here"],"."]]},{"title":"How can I configure persistent storage?","content":[["para","Some programs, usually oriented at making GNU/Linux live USB drives, include an option to set persistent storage. This is currently not supported by Etcher, so if you require this functionality, we advise to fallback to ",["link",{"href":"https://unetbootin.github.io/"},"UNetbootin"],"."]]},{"title":"How do I flash Ubuntu ISOs","content":[["para","Ubuntu images (and potentially some other related GNU/Linux distributions) have a peculiar format that allows the image to boot without any further modification from both CDs and USB drives.\nA consequence of this enhancement is that some programs, like parted get confused about the drive's format and partition table, printing warnings such as:"],["blockquote",["para","/dev/xxx contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid fake msdos partition table, as it should. Perhaps it was corrupted -- possibly by a program that doesn't understand GPT partition tables. Or perhaps you deleted the GPT table, and are now using an msdos partition table. Is this a GPT partition table? Both the primary and backup GPT tables are corrupt. Try making a fresh table, and using Parted's rescue feature to recover partitions."],["para","Warning: The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes."]],["para","All these warnings are safe to ignore, and your drive should be able to boot without any problems.\nRefer to ",["link",{"href":"https://lists.ubuntu.com/archives/ubuntu-devel/2011-June/033495.html"},"the following message from Ubuntu's mailing list"]," if you want to learn more."]]},{"title":"How do I run Etcher on Wayland?","content":[["para","The XWayland Server provides backwards compatibility to run any X client on Wayland, including Etcher.\nThis usually works out of the box on mainstream GNU/Linux distributions that properly support Wayland. If it doesn't, make sure the xwayland.so module is being loaded by declaring it in your ",["link",{"href":"http://manpages.ubuntu.com/manpages/wily/man5/weston.ini.5.html"},"weston.ini"],":"],["para",["inlinecode","\n[core]\nmodules=xwayland.so\n"]]]},{"title":"What are the runtime GNU/LINUX dependencies?","content":[["para",["link",{"href":"https://github.com/balena-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#runtime-gnulinux-dependencies"},"This entry"]," aims to provide an up to date list of runtime dependencies needed to run Etcher on a GNU/Linux system."]]},{"title":"How can I recover the broken drive?","content":[["para","Sometimes, things might go wrong, and you end up with a half-flashed drive that is unusable by your operating systems, and common graphical tools might even refuse to get it back to a normal state.\nTo solve these kinds of problems, we've collected ",["link",{"href":"https://github.com/balena-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#recovering-broken-drives"},"a list of fail-proof methods"]," to completely erase your drive in major operating systems."]]},{"title":"I receive ”No polkit authentication agent found” error in GNU/Linux","content":[["para","Etcher requires an available ",["link",{"href":"https://wiki.archlinux.org/index.php/Polkit#Authentication_agents"},"polkit authentication agent"]," in your system in order to show a secure password prompt dialog to perform elevation. Make sure you have one installed for the desktop environment of your choice."]]},{"title":"May I run Etcher in older macOS versions?","content":[["para","Etcher GUI is based on the ",["link",{"href":"http://electron.atom.io/"},"Electron"]," framework, ",["link",{"href":"https://github.com/electron/electron/blob/master/docs/tutorial/support.md#supported-platforms"},"which only supports macOS 10.9 and newer versions"],"."]]}],"contributing":{"architecture":{"filename":"ARCHITECTURE.md","mime":"text/markdown","title":"Etcher Architecture","data":{"markdown":"Etcher Architecture\n===================\n\nThis document aims to serve as a high-level overview of how Etcher works,\nspecially oriented for contributors who want to understand the big picture.\n\nTechnologies\n------------\n\nThis is a non exhaustive list of the major frameworks, libraries, and other\ntechnologies used in Etcher that you should become familiar with:\n\n- [Electron][electron]\n- [NodeJS][nodejs]\n- [AngularJS][angularjs]\n- [Redux][redux]\n- [ImmutableJS][immutablejs]\n- [Bootstrap][bootstrap]\n- [Sass][sass]\n- [Flexbox Grid][flexbox-grid]\n- [Mocha][mocha]\n- [JSDoc][jsdoc]\n\nModule architecture\n-------------------\n\nInstead of embedding all the functionality required to create a full-featured\nimage writer as a monolithic project, we try to hard to follow the [\"lego block\napproach\"][lego-blocks].\n\nThis has the advantage of allowing other applications to re-use logic we\nimplemented for Etcher in their own project, even for things we didn't expect,\nwhich leads to users benefitting from what we've built, and we benefitting from\nuser's bug reports, suggestions, etc, as an indirect way to make Etcher better.\n\nThe fact that low-level details are scattered around many different modules can\nmake it challenging for a new contributor to wrap their heads around the\nproject as a whole, and get a clear high level view of how things work or where\nto submit their work or bug reports.\n\nThese are the main Etcher components, in a nutshell:\n\n- [Drivelist](https://github.com/balena-io-modules/drivelist)\n\nAs the name implies, this module's duty is to detect the connected drives\nuniformly in all major operating systems, along with valuable metadata, like if\na drive is removable or not, to prevent users from trying to write an image to\na system drive.\n\n- [Etcher](https://github.com/balena-io/etcher)\n\nThis is the *\"main repository\"*, from which you're reading this from, which is\nbasically the front-end and glue for all previously listed projects.\n\nSummary\n-------\n\nWe always welcome contributions to Etcher as well as our documentation. If you\nwant to give back, but feel that your knowledge on how Etcher works is not\nenough to tackle a bug report or feature request, use that as your advantage,\nsince fresh eyes could help unveil things that we take for granted, but should\nbe documented instead!\n\n[lego-blocks]: https://github.com/sindresorhus/ama/issues/10#issuecomment-117766328\n[exit-codes]: https://github.com/balena-io/etcher/blob/master/lib/shared/exit-codes.js\n[gui-dir]: https://github.com/balena-io/etcher/tree/master/lib/gui\n[electron]: http://electron.atom.io\n[nodejs]: https://nodejs.org\n[angularjs]: https://angularjs.org\n[redux]: http://redux.js.org\n[immutablejs]: http://facebook.github.io/immutable-js/\n[bootstrap]: http://getbootstrap.com\n[sass]: http://sass-lang.com\n[flexbox-grid]: http://flexboxgrid.com\n[mocha]: http://mochajs.org\n[jsdoc]: http://usejsdoc.org\n","jsonml":[{"references":{"lego-blocks":{"href":"https://github.com/sindresorhus/ama/issues/10#issuecomment-117766328"},"exit-codes":{"href":"https://github.com/balena-io/etcher/blob/master/lib/shared/exit-codes.js"},"gui-dir":{"href":"https://github.com/balena-io/etcher/tree/master/lib/gui"},"electron":{"href":"http://electron.atom.io"},"nodejs":{"href":"https://nodejs.org"},"angularjs":{"href":"https://angularjs.org"},"redux":{"href":"http://redux.js.org"},"immutablejs":{"href":"http://facebook.github.io/immutable-js/"},"bootstrap":{"href":"http://getbootstrap.com"},"sass":{"href":"http://sass-lang.com"},"flexbox-grid":{"href":"http://flexboxgrid.com"},"mocha":{"href":"http://mochajs.org"},"jsdoc":{"href":"http://usejsdoc.org"}}},["header",{"level":1},"Etcher Architecture"],["para","This document aims to serve as a high-level overview of how Etcher works,\nspecially oriented for contributors who want to understand the big picture."],["header",{"level":2},"Technologies"],["para","This is a non exhaustive list of the major frameworks, libraries, and other\ntechnologies used in Etcher that you should become familiar with:"],["bulletlist",["listitem",["link_ref",{"ref":"electron","original":"[Electron][electron]"},"Electron"]],["listitem",["link_ref",{"ref":"nodejs","original":"[NodeJS][nodejs]"},"NodeJS"]],["listitem",["link_ref",{"ref":"angularjs","original":"[AngularJS][angularjs]"},"AngularJS"]],["listitem",["link_ref",{"ref":"redux","original":"[Redux][redux]"},"Redux"]],["listitem",["link_ref",{"ref":"immutablejs","original":"[ImmutableJS][immutablejs]"},"ImmutableJS"]],["listitem",["link_ref",{"ref":"bootstrap","original":"[Bootstrap][bootstrap]"},"Bootstrap"]],["listitem",["link_ref",{"ref":"sass","original":"[Sass][sass]"},"Sass"]],["listitem",["link_ref",{"ref":"flexbox-grid","original":"[Flexbox Grid][flexbox-grid]"},"Flexbox Grid"]],["listitem",["link_ref",{"ref":"mocha","original":"[Mocha][mocha]"},"Mocha"]],["listitem",["link_ref",{"ref":"jsdoc","original":"[JSDoc][jsdoc]"},"JSDoc"]]],["header",{"level":2},"Module architecture"],["para","Instead of embedding all the functionality required to create a full-featured\nimage writer as a monolithic project, we try to hard to follow the ",["link_ref",{"ref":"lego-blocks","original":"[\"lego block\napproach\"][lego-blocks]"},"\"lego block\napproach\""],"."],["para","This has the advantage of allowing other applications to re-use logic we\nimplemented for Etcher in their own project, even for things we didn't expect,\nwhich leads to users benefitting from what we've built, and we benefitting from\nuser's bug reports, suggestions, etc, as an indirect way to make Etcher better."],["para","The fact that low-level details are scattered around many different modules can\nmake it challenging for a new contributor to wrap their heads around the\nproject as a whole, and get a clear high level view of how things work or where\nto submit their work or bug reports."],["para","These are the main Etcher components, in a nutshell:"],["bulletlist",["listitem",["link",{"href":"https://github.com/balena-io-modules/drivelist"},"Drivelist"]]],["para","As the name implies, this module's duty is to detect the connected drives\nuniformly in all major operating systems, along with valuable metadata, like if\na drive is removable or not, to prevent users from trying to write an image to\na system drive."],["bulletlist",["listitem",["link",{"href":"https://github.com/balena-io/etcher"},"Etcher"]]],["para","This is the ",["em","\"main repository\""],", from which you're reading this from, which is\nbasically the front-end and glue for all previously listed projects."],["header",{"level":2},"Summary"],["para","We always welcome contributions to Etcher as well as our documentation. If you\nwant to give back, but feel that your knowledge on how Etcher works is not\nenough to tackle a bug report or feature request, use that as your advantage,\nsince fresh eyes could help unveil things that we take for granted, but should\nbe documented instead!"]]}},"guide":{"filename":"CONTRIBUTING.md","mime":"text/markdown","title":"Contributing Guide","data":{"markdown":"Contributing Guide\n==================\n\nThanks for your interest in contributing to this project! This document aims to\nserve as a friendly guide for making your first contribution.\n\nHigh-level Etcher overview\n--------------------------\n\nMake sure you checkout our [ARCHITECTURE.md][ARCHITECTURE] guide, which aims to\nexplain how all the pieces fit together.\n\nDeveloping\n----------\n\n### Prerequisites\n\n#### Common\n\n- [NodeJS](https://nodejs.org) (at least v6.11)\n- [Python 2.7](https://www.python.org)\n- [jq](https://stedolan.github.io/jq/)\n- [curl](https://curl.haxx.se/)\n- [npm](https://www.npmjs.com/) (version 6.7)\n\n```sh\npip install -r requirements.txt\n```\n\nYou might need to run this with `sudo` or administrator permissions.\n\n#### Windows\n\n- [NSIS v2.51](http://nsis.sourceforge.net/Main_Page) (v3.x won't work)\n- Either one of the following:\n - [Visual C++ 2015 Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) containing standalone compilers, libraries and scripts\n - Install the [windows-build-tools](https://github.com/felixrieseberg/windows-build-tools) via npm with `npm install --global windows-build-tools`\n - [Visual Studio Community 2015](https://www.microsoft.com/en-us/download/details.aspx?id=48146) (free) (other editions, like Professional and Enterprise, should work too)\n **NOTE:** Visual Studio 2015 doesn't install C++ by default. You have to rerun the\n setup, select \"Modify\" and then check `Visual C++ -> Common Tools for Visual\n C++ 2015` (see http://stackoverflow.com/a/31955339)\n- [MinGW](http://www.mingw.org)\n\nYou might need to `npm config set msvs_version 2015` for node-gyp to correctly detect\nthe version of Visual Studio you're using (in this example VS2015).\n\nThe following MinGW packages are required:\n\n- `msys-make`\n- `msys-unzip`\n- `msys-zip`\n- `msys-bash`\n- `msys-coreutils`\n\n#### macOS\n\n- [Xcode](https://developer.apple.com/xcode/)\n\nIt's not enough to have [Xcode Command Line Tools] installed. Xcode must be installed\nas well.\n\n#### Linux\n\n- `libudev-dev` for libusb (install with `sudo apt install libudev-dev` for example)\n\n### Cloning the project\n\n```sh\ngit clone --recursive https://github.com/balena-io/etcher\ncd etcher\n```\n\n### Installing npm dependencies\n\n**NOTE:** Please make use of the following command to install npm dependencies rather\nthan simply running `npm install` given that we need to do extra configuration\nto make sure native dependencies are correctly compiled for Electron, otherwise\nthe application might not run successfully.\n\nIf you're on Windows, **run the command from the _Developer Command Prompt for\nVS2015_**, to ensure all Visual Studio command utilities are available in the\n`%PATH%`.\n\n```sh\nmake electron-develop\n```\n\n### Running the application\n\n#### GUI\n\n```sh\n# Build the GUI\nmake webpack\n# Start Electron\nnpm start\n```\n\nTesting\n-------\n\nTo run the test suite, run the following command:\n\n```sh\nnpm test\n```\n\nGiven the nature of this application, not everything can be unit tested. For\nexample:\n\n- The writing operating on real raw devices.\n- Platform inconsistencies.\n- Style changes.\n- Artwork.\n\nWe encourage our contributors to test the application on as many operating\nsystems as they can before sending a pull request.\n\n*The test suite is run automatically by CI servers when you send a pull\nrequest.*\n\nWe also rely on various `make` targets to perform some common tasks:\n\n- `make lint`: Run the linter.\n- `make sass`: Compile SCSS files.\n\nWe make use of [EditorConfig] to communicate indentation, line endings and\nother text editing default. We encourage you to install the relevant plugin in\nyour text editor of choice to avoid having to fix any issues during the review\nprocess.\n\nUpdating a dependency\n---------------------\n\nGiven we use [npm shrinkwrap][shrinkwrap], we have to take extra steps to make\nsure the `npm-shrinkwrap.json` file gets updated correctly when we update a\ndependency.\n\nUse the following steps to ensure everything goes flawlessly:\n\n- Run `make electron-develop` to ensure you don't have extraneous dependencies\n you might have brought during development, or you are running older\n dependencies because you come from another branch or reference.\n\n- Install the new version of the dependency. For example: `npm install --save\n @`. This will update the `npm-shrinkwrap.json` file.\n\n- Commit *both* `package.json` and `npm-shrinkwrap.json`.\n\nDiffing Binaries\n----------------\n\nBinary files are tagged as \"binary\" in the `.gitattributes` file, but also have\na `diff=hex` tag, which allows you to see hexdump-style diffs for binaries,\nif you add the following to either your global or repository-local git config:\n\n```sh\n$ git config diff.hex.textconv hexdump\n$ git config diff.hex.binary true\n```\n\nAnd global, respectively:\n\n```sh\n$ git config --global diff.hex.textconv hexdump\n$ git config --global diff.hex.binary true\n```\n\nIf you don't have `hexdump` available on your platform,\nyou can try [hxd], which is also a bit faster.\n\nCommit Guidelines\n-----------------\n\nSee [COMMIT-GUIDELINES.md][COMMIT-GUIDELINES] for a thorough guide on how to\nwrite commit messages.\n\nSending a pull request\n----------------------\n\nWhen sending a pull request, consider the following guidelines:\n\n- Write a concise commit message explaining your changes.\n\n- If applies, write more descriptive information in the commit body.\n\n- Mention the operating systems with the corresponding versions in which you\ntested your changes.\n\n- If your change affects the visuals of the application, consider attaching a\nscreenshot.\n\n- Refer to the issue/s your pull request fixes, so they're closed automatically\nwhen your pull request is merged.\n\n- Write a descriptive pull request title.\n\n- Squash commits when possible, for example, when committing review changes.\n\nBefore your pull request can be merged, the following conditions must hold:\n\n- The linter doesn't throw any warning.\n\n- All the tests pass.\n\n- The coding style aligns with the project's convention.\n\n- Your changes are confirmed to be working in recent versions of the operating\nsystems we support.\n\nDon't hesitate to get in touch if you have any questions or need any help!\n\n[ARCHITECTURE]: https://github.com/balena-io/etcher/blob/master/docs/ARCHITECTURE.md\n[COMMIT-GUIDELINES]: https://github.com/balena-io/etcher/blob/master/docs/COMMIT-GUIDELINES.md\n[EditorConfig]: http://editorconfig.org\n[shrinkwrap]: https://docs.npmjs.com/cli/shrinkwrap\n[hxd]: https://github.com/jhermsmeier/hxd\n[Xcode Command Line Tools]: https://developer.apple.com/library/content/technotes/tn2339/_index.html\n","jsonml":[{"references":{"architecture":{"href":"https://github.com/balena-io/etcher/blob/master/docs/ARCHITECTURE.md"},"commit-guidelines":{"href":"https://github.com/balena-io/etcher/blob/master/docs/COMMIT-GUIDELINES.md"},"editorconfig":{"href":"http://editorconfig.org"},"shrinkwrap":{"href":"https://docs.npmjs.com/cli/shrinkwrap"},"hxd":{"href":"https://github.com/jhermsmeier/hxd"},"xcode command line tools":{"href":"https://developer.apple.com/library/content/technotes/tn2339/_index.html"}}},["header",{"level":1},"Contributing Guide"],["para","Thanks for your interest in contributing to this project! This document aims to\nserve as a friendly guide for making your first contribution."],["header",{"level":2},"High-level Etcher overview"],["para","Make sure you checkout our ",["link_ref",{"ref":"architecture","original":"[ARCHITECTURE.md][ARCHITECTURE]"},"ARCHITECTURE.md"]," guide, which aims to\nexplain how all the pieces fit together."],["header",{"level":2},"Developing"],["header",{"level":3},"Prerequisites"],["header",{"level":4},"Common"],["bulletlist",["listitem",["link",{"href":"https://nodejs.org"},"NodeJS"]," (at least v6.11)"],["listitem",["link",{"href":"https://www.python.org"},"Python 2.7"]],["listitem",["link",{"href":"https://stedolan.github.io/jq/"},"jq"]],["listitem",["link",{"href":"https://curl.haxx.se/"},"curl"]],["listitem",["link",{"href":"https://www.npmjs.com/"},"npm"]," (version 6.7)"]],["para",["inlinecode","sh\npip install -r requirements.txt\n"]],["para","You might need to run this with ",["inlinecode","sudo"]," or administrator permissions."],["header",{"level":4},"Windows"],["bulletlist",["listitem",["link",{"href":"http://nsis.sourceforge.net/Main_Page"},"NSIS v2.51"]," (v3.x won't work)"],["listitem","Either one of the following:",["bulletlist",["listitem",["link",{"href":"http://landinghub.visualstudio.com/visual-cpp-build-tools"},"Visual C++ 2015 Build Tools"]," containing standalone compilers, libraries and scripts"],["listitem","Install the ",["link",{"href":"https://github.com/felixrieseberg/windows-build-tools"},"windows-build-tools"]," via npm with ",["inlinecode","npm install --global windows-build-tools"]],["listitem",["link",{"href":"https://www.microsoft.com/en-us/download/details.aspx?id=48146"},"Visual Studio Community 2015"]," (free) (other editions, like Professional and Enterprise, should work too)\n",["strong","NOTE:"]," Visual Studio 2015 doesn't install C++ by default. You have to rerun the\nsetup, select \"Modify\" and then check ",["inlinecode","Visual C++ -> Common Tools for Visual\nC++ 2015"]," (see http://stackoverflow.com/a/31955339)"]]],["listitem",["link",{"href":"http://www.mingw.org"},"MinGW"]]],["para","You might need to ",["inlinecode","npm config set msvs_version 2015"]," for node-gyp to correctly detect\nthe version of Visual Studio you're using (in this example VS2015)."],["para","The following MinGW packages are required:"],["bulletlist",["listitem",["inlinecode","msys-make"]],["listitem",["inlinecode","msys-unzip"]],["listitem",["inlinecode","msys-zip"]],["listitem",["inlinecode","msys-bash"]],["listitem",["inlinecode","msys-coreutils"]]],["header",{"level":4},"macOS"],["bulletlist",["listitem",["link",{"href":"https://developer.apple.com/xcode/"},"Xcode"]]],["para","It's not enough to have ",["link_ref",{"ref":"xcode command line tools","original":"[Xcode Command Line Tools]"},"Xcode Command Line Tools"]," installed. Xcode must be installed\nas well."],["header",{"level":4},"Linux"],["bulletlist",["listitem",["inlinecode","libudev-dev"]," for libusb (install with ",["inlinecode","sudo apt install libudev-dev"]," for example)"]],["header",{"level":3},"Cloning the project"],["para",["inlinecode","sh\ngit clone --recursive https://github.com/balena-io/etcher\ncd etcher\n"]],["header",{"level":3},"Installing npm dependencies"],["para",["strong","NOTE:"]," Please make use of the following command to install npm dependencies rather\nthan simply running ",["inlinecode","npm install"]," given that we need to do extra configuration\nto make sure native dependencies are correctly compiled for Electron, otherwise\nthe application might not run successfully."],["para","If you're on Windows, ",["strong","run the command from the ",["em","Developer Command Prompt for\nVS2015"]],", to ensure all Visual Studio command utilities are available in the\n",["inlinecode","%PATH%"],"."],["para",["inlinecode","sh\nmake electron-develop\n"]],["header",{"level":3},"Running the application"],["header",{"level":4},"GUI"],["para",["inlinecode",""],"`sh"],["header",{"level":1},"Build the GUI"],["para","make webpack"],["header",{"level":1},"Start Electron"],["para","npm start\n",["inlinecode",""],"`"],["header",{"level":2},"Testing"],["para","To run the test suite, run the following command:"],["para",["inlinecode","sh\nnpm test\n"]],["para","Given the nature of this application, not everything can be unit tested. For\nexample:"],["bulletlist",["listitem","The writing operating on real raw devices."],["listitem","Platform inconsistencies."],["listitem","Style changes."],["listitem","Artwork."]],["para","We encourage our contributors to test the application on as many operating\nsystems as they can before sending a pull request."],["para",["em","The test suite is run automatically by CI servers when you send a pull\nrequest."]],["para","We also rely on various ",["inlinecode","make"]," targets to perform some common tasks:"],["bulletlist",["listitem",["inlinecode","make lint"],": Run the linter."],["listitem",["inlinecode","make sass"],": Compile SCSS files."]],["para","We make use of ",["link_ref",{"ref":"editorconfig","original":"[EditorConfig]"},"EditorConfig"]," to communicate indentation, line endings and\nother text editing default. We encourage you to install the relevant plugin in\nyour text editor of choice to avoid having to fix any issues during the review\nprocess."],["header",{"level":2},"Updating a dependency"],["para","Given we use ",["link_ref",{"ref":"shrinkwrap","original":"[npm shrinkwrap][shrinkwrap]"},"npm shrinkwrap"],", we have to take extra steps to make\nsure the ",["inlinecode","npm-shrinkwrap.json"]," file gets updated correctly when we update a\ndependency."],["para","Use the following steps to ensure everything goes flawlessly:"],["bulletlist",["listitem",["para","Run ",["inlinecode","make electron-develop"]," to ensure you don't have extraneous dependencies\nyou might have brought during development, or you are running older\ndependencies because you come from another branch or reference."]],["listitem",["para","Install the new version of the dependency. For example: ",["inlinecode","npm install --save\n@"],". This will update the ",["inlinecode","npm-shrinkwrap.json"]," file."]],["listitem",["para","Commit ",["em","both"]," ",["inlinecode","package.json"]," and ",["inlinecode","npm-shrinkwrap.json"],"."]]],["header",{"level":2},"Diffing Binaries"],["para","Binary files are tagged as \"binary\" in the ",["inlinecode",".gitattributes"]," file, but also have\na ",["inlinecode","diff=hex"]," tag, which allows you to see hexdump-style diffs for binaries,\nif you add the following to either your global or repository-local git config:"],["para",["inlinecode","sh\n$ git config diff.hex.textconv hexdump\n$ git config diff.hex.binary true\n"]],["para","And global, respectively:"],["para",["inlinecode","sh\n$ git config --global diff.hex.textconv hexdump\n$ git config --global diff.hex.binary true\n"]],["para","If you don't have ",["inlinecode","hexdump"]," available on your platform,\nyou can try ",["link_ref",{"ref":"hxd","original":"[hxd]"},"hxd"],", which is also a bit faster."],["header",{"level":2},"Commit Guidelines"],["para","See ",["link_ref",{"ref":"commit-guidelines","original":"[COMMIT-GUIDELINES.md][COMMIT-GUIDELINES]"},"COMMIT-GUIDELINES.md"]," for a thorough guide on how to\nwrite commit messages."],["header",{"level":2},"Sending a pull request"],["para","When sending a pull request, consider the following guidelines:"],["bulletlist",["listitem",["para","Write a concise commit message explaining your changes."]],["listitem",["para","If applies, write more descriptive information in the commit body."]],["listitem",["para","Mention the operating systems with the corresponding versions in which you\ntested your changes."]],["listitem",["para","If your change affects the visuals of the application, consider attaching a\nscreenshot."]],["listitem",["para","Refer to the issue/s your pull request fixes, so they're closed automatically\nwhen your pull request is merged."]],["listitem",["para","Write a descriptive pull request title."]],["listitem",["para","Squash commits when possible, for example, when committing review changes."]]],["para","Before your pull request can be merged, the following conditions must hold:"],["bulletlist",["listitem",["para","The linter doesn't throw any warning."]],["listitem",["para","All the tests pass."]],["listitem",["para","The coding style aligns with the project's convention."]],["listitem",["para","Your changes are confirmed to be working in recent versions of the operating\nsystems we support."]]],["para","Don't hesitate to get in touch if you have any questions or need any help!"]]}},"codeOfConduct":null,"security":null},"motivation":null,"introduction":null,"hardwareRequired":null,"softwareRequired":null,"highlights":null,"screenshot":null,"installation":null,"blog":[],"docs":{"latest":"1.5.63","tags":{"1.5.63":[{"filename":"docs/ARCHITECTURE.md","mime":"text/markdown","title":"Etcher Architecture","data":{"markdown":"Etcher Architecture\n===================\n\nThis document aims to serve as a high-level overview of how Etcher works,\nspecially oriented for contributors who want to understand the big picture.\n\nTechnologies\n------------\n\nThis is a non exhaustive list of the major frameworks, libraries, and other\ntechnologies used in Etcher that you should become familiar with:\n\n- [Electron][electron]\n- [NodeJS][nodejs]\n- [AngularJS][angularjs]\n- [Redux][redux]\n- [ImmutableJS][immutablejs]\n- [Bootstrap][bootstrap]\n- [Sass][sass]\n- [Flexbox Grid][flexbox-grid]\n- [Mocha][mocha]\n- [JSDoc][jsdoc]\n\nModule architecture\n-------------------\n\nInstead of embedding all the functionality required to create a full-featured\nimage writer as a monolithic project, we try to hard to follow the [\"lego block\napproach\"][lego-blocks].\n\nThis has the advantage of allowing other applications to re-use logic we\nimplemented for Etcher in their own project, even for things we didn't expect,\nwhich leads to users benefitting from what we've built, and we benefitting from\nuser's bug reports, suggestions, etc, as an indirect way to make Etcher better.\n\nThe fact that low-level details are scattered around many different modules can\nmake it challenging for a new contributor to wrap their heads around the\nproject as a whole, and get a clear high level view of how things work or where\nto submit their work or bug reports.\n\nThese are the main Etcher components, in a nutshell:\n\n- [Drivelist](https://github.com/balena-io-modules/drivelist)\n\nAs the name implies, this module's duty is to detect the connected drives\nuniformly in all major operating systems, along with valuable metadata, like if\na drive is removable or not, to prevent users from trying to write an image to\na system drive.\n\n- [Etcher](https://github.com/balena-io/etcher)\n\nThis is the *\"main repository\"*, from which you're reading this from, which is\nbasically the front-end and glue for all previously listed projects.\n\nSummary\n-------\n\nWe always welcome contributions to Etcher as well as our documentation. If you\nwant to give back, but feel that your knowledge on how Etcher works is not\nenough to tackle a bug report or feature request, use that as your advantage,\nsince fresh eyes could help unveil things that we take for granted, but should\nbe documented instead!\n\n[lego-blocks]: https://github.com/sindresorhus/ama/issues/10#issuecomment-117766328\n[exit-codes]: https://github.com/balena-io/etcher/blob/master/lib/shared/exit-codes.js\n[gui-dir]: https://github.com/balena-io/etcher/tree/master/lib/gui\n[electron]: http://electron.atom.io\n[nodejs]: https://nodejs.org\n[angularjs]: https://angularjs.org\n[redux]: http://redux.js.org\n[immutablejs]: http://facebook.github.io/immutable-js/\n[bootstrap]: http://getbootstrap.com\n[sass]: http://sass-lang.com\n[flexbox-grid]: http://flexboxgrid.com\n[mocha]: http://mochajs.org\n[jsdoc]: http://usejsdoc.org\n","jsonml":[{"references":{"lego-blocks":{"href":"https://github.com/sindresorhus/ama/issues/10#issuecomment-117766328"},"exit-codes":{"href":"https://github.com/balena-io/etcher/blob/master/lib/shared/exit-codes.js"},"gui-dir":{"href":"https://github.com/balena-io/etcher/tree/master/lib/gui"},"electron":{"href":"http://electron.atom.io"},"nodejs":{"href":"https://nodejs.org"},"angularjs":{"href":"https://angularjs.org"},"redux":{"href":"http://redux.js.org"},"immutablejs":{"href":"http://facebook.github.io/immutable-js/"},"bootstrap":{"href":"http://getbootstrap.com"},"sass":{"href":"http://sass-lang.com"},"flexbox-grid":{"href":"http://flexboxgrid.com"},"mocha":{"href":"http://mochajs.org"},"jsdoc":{"href":"http://usejsdoc.org"}}},["header",{"level":1},"Etcher Architecture"],["para","This document aims to serve as a high-level overview of how Etcher works,\nspecially oriented for contributors who want to understand the big picture."],["header",{"level":2},"Technologies"],["para","This is a non exhaustive list of the major frameworks, libraries, and other\ntechnologies used in Etcher that you should become familiar with:"],["bulletlist",["listitem",["link_ref",{"ref":"electron","original":"[Electron][electron]"},"Electron"]],["listitem",["link_ref",{"ref":"nodejs","original":"[NodeJS][nodejs]"},"NodeJS"]],["listitem",["link_ref",{"ref":"angularjs","original":"[AngularJS][angularjs]"},"AngularJS"]],["listitem",["link_ref",{"ref":"redux","original":"[Redux][redux]"},"Redux"]],["listitem",["link_ref",{"ref":"immutablejs","original":"[ImmutableJS][immutablejs]"},"ImmutableJS"]],["listitem",["link_ref",{"ref":"bootstrap","original":"[Bootstrap][bootstrap]"},"Bootstrap"]],["listitem",["link_ref",{"ref":"sass","original":"[Sass][sass]"},"Sass"]],["listitem",["link_ref",{"ref":"flexbox-grid","original":"[Flexbox Grid][flexbox-grid]"},"Flexbox Grid"]],["listitem",["link_ref",{"ref":"mocha","original":"[Mocha][mocha]"},"Mocha"]],["listitem",["link_ref",{"ref":"jsdoc","original":"[JSDoc][jsdoc]"},"JSDoc"]]],["header",{"level":2},"Module architecture"],["para","Instead of embedding all the functionality required to create a full-featured\nimage writer as a monolithic project, we try to hard to follow the ",["link_ref",{"ref":"lego-blocks","original":"[\"lego block\napproach\"][lego-blocks]"},"\"lego block\napproach\""],"."],["para","This has the advantage of allowing other applications to re-use logic we\nimplemented for Etcher in their own project, even for things we didn't expect,\nwhich leads to users benefitting from what we've built, and we benefitting from\nuser's bug reports, suggestions, etc, as an indirect way to make Etcher better."],["para","The fact that low-level details are scattered around many different modules can\nmake it challenging for a new contributor to wrap their heads around the\nproject as a whole, and get a clear high level view of how things work or where\nto submit their work or bug reports."],["para","These are the main Etcher components, in a nutshell:"],["bulletlist",["listitem",["link",{"href":"https://github.com/balena-io-modules/drivelist"},"Drivelist"]]],["para","As the name implies, this module's duty is to detect the connected drives\nuniformly in all major operating systems, along with valuable metadata, like if\na drive is removable or not, to prevent users from trying to write an image to\na system drive."],["bulletlist",["listitem",["link",{"href":"https://github.com/balena-io/etcher"},"Etcher"]]],["para","This is the ",["em","\"main repository\""],", from which you're reading this from, which is\nbasically the front-end and glue for all previously listed projects."],["header",{"level":2},"Summary"],["para","We always welcome contributions to Etcher as well as our documentation. If you\nwant to give back, but feel that your knowledge on how Etcher works is not\nenough to tackle a bug report or feature request, use that as your advantage,\nsince fresh eyes could help unveil things that we take for granted, but should\nbe documented instead!"]]}},{"filename":"docs/COMMIT-GUIDELINES.md","mime":"text/markdown","title":"Commit Guidelines","data":{"markdown":"Commit Guidelines\n=================\n\nWe enforce certain rules on commits with the following goals in mind:\n\n- Be able to reliably auto-generate the `CHANGELOG.md` *without* any human\nintervention.\n- Be able to automatically and correctly increment the semver version number\nbased on what was done since the last release.\n- Be able to get a quick overview of what happened to the project by glancing\nover the commit history.\n- Be able to automatically reference relevant changes from a dependency\nupgrade.\n\nThe guidelines are inspired by the [AngularJS git commit\nguidelines][angular-commit-guidelines].\n\nCommit structure\n----------------\n\nEach commit message consists of a header, a body and a footer. The header has a\nspecial format that includes a type, a scope and a subject.\n\n```\n(): \n\n\n\n