22 Commits

Author SHA1 Message Date
Juan Cruz Viotti
cff445b64b chore: move npm targets to Makefile (#1505)
We currently have various npm script target, and some of them are
getting complex enough that making sense out of them in package.json is
not a trivial task.

This commit moves all npm targets that are not directly recognisable by
npm (like `start`, `test`, `preshrinkwrap`, etc) into the Makefile.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
2017-06-10 13:50:29 -04:00
Jonas Hermsmeier
9055b4b773 doc(contributing): Add section about binary diffs (#1380)
This adds instructions on how to set up human-readable binary diffs
with git for Etcher, which is useful when altering test images etc.
2017-05-07 14:59:11 -04:00
Jonas Hermsmeier
d5ec71c5da chore(package): Make clean-shrinkwrap remove optional dependencies (#1236)
Previously dependencies weren't actually removed from `node_modules`,
this runs `npm rm` on the optional dependencies, effectively excluding
them, and their dependencies from the shrinkwrap file.

Also the script has been hooked to the `preshrinkwrap` hook,
to remove the need of having to run it manually.

Change-Type: patch
2017-03-31 14:35:50 -04:00
Juan Cruz Viotti
0873b1d161 chore: fix lzma-native build issues on Windows (#1191)
* chore: fix `lzma-native` build issues on Windows

We've been recently hitting a weird `lzma-native` build error on Windows
(both locally and on Appveyor CI):

```
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
  build
  The input line is too long.

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" exited with code 1. [C:\projects\etcher\node_modules\lzma-native\build\liblzma.vcxproj]
```

After a lot of experimentation, we realised the issue was gone if we
removed `node-sass` from the development dependencies.

The issue is that `node-gyp` was recently upgraded to v3.6.0, which was
picked up by `node-sass`, which declares `node-gyp` as a dependency. For
some reason, if `node-sass` causes `node-gyp` to be updated, then
`lzma-native` fails with the above cryptic error.

I was able to trace down the error to the following `node-gyp` commit:

ae141e1906

As a solution, this commit starts to shrinkwrap development
dependencies, and locks `node-gyp` to v3.5.0 until the issue is fixed.

Fixes: https://github.com/addaleax/lzma-native/issues/30
See: https://github.com/nodejs/node-gyp/issues/1151
Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>

* chore: ensure some modules in npm-shrinkwrap stay at specific versions

* Address code review comments

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2017-03-20 15:03:10 -04:00
Andrew Scheller
ee2bbef9da chore: codespell improvements (#1174)
* fix the command so it actually works - see https://github.com/lucasdemarchi/codespell/issues/101
 * check the spelling of more files
 * ignore known-binary filetypes
 * fix a couple of spelling mistakes it caught

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2017-03-11 18:10:54 -04:00
Juan Cruz Viotti
53ea89782c chore: get rid of commitizen
No one on the team is using this and the adaptor we're using proved to
be suboptimal. We might consider this again once we develop a good
Commitizen adapter integrated more closely with Versionist.

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2017-02-07 13:33:52 -04:00
Juan Cruz Viotti
16340b412a doc: workaround to npm shrinkwrap development dependencies bug
There are some npm versions that for some strange reason will attempt to
put *every* single development dependency in the `npm-shinkwrap.json`
file when editing the dependencies list.

This commit describes a workaround I've found to ensure only production
dependencies are added to the file.

I also renamed our `npm run shrinkwrap` script to `npm run
clean-shrinkwrap` since in some recent versions of npm, running `npm
shrinkwrap` will trigger our custom script instead of the original
implementation.

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2017-02-06 14:52:40 -04:00
Juan Cruz Viotti
99538e3120 doc: recommend make electron-develop to clean dependency tree (#974)
Because of NPM shrinkwrap, we recommend having a clean dependency tree
in `CONTRIBUTING.md` before upgrading a dependency. We currently
recommend maually wiping out `node_modules`, but since the
`electron-develop` make target already does that, is more user friendly
to recommend that instead.

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2016-12-13 14:03:09 -04:00
Juan Cruz Viotti
a4e3359a96 doc: extract development setup docs into RUNNING-LOCALLY.md (#667)
This file will contain all information necessary to be able to get a
development version of Etcher running locally.

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2016-08-26 15:48:17 -04:00
Juan Cruz Viotti
47c50ffe14 chore(GUI): integrate scss-lint (#666)
This PR integrates SCSS Lint, a tool that will help us keep SCSS tidier.
I've included a sensible configuration at `.scss-lint.yml`, and
documentation on how to install it on `CONTRIBUTING.md`.

The tool will run automatically as part of `npm run lint`.

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2016-08-26 15:09:07 -04:00
Juan Cruz Viotti
f02202c244 chore: get rid of gulp (#593)
The only thing we were still using gulp for was compiling SCSS.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-07-24 17:32:50 -04:00
Juan Cruz Viotti
7a5dd092da docs: fix error on the upgrading a dependency guide at CONTRIBUTING.md (#592)
One of the steps incorrectly says "Re-install the dependencies. This
will update the `npm-shrinkwrap.json` file". The intention was to say
that you should `npm install` the *new* dependency, and that will update
the `npm-shrinkwrap.json` file.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-07-24 17:27:35 -04:00
Juan Cruz Viotti
d2a8739904 docs: upgrade an npm dependency and handling shrinkwrap correctly (#586)
This small entry explains how to upgrade a dependency and ensure
`npm-shrinkwrap.json` is updated correctly.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-07-21 18:27:09 -04:00
Juan Cruz Viotti
ef96ae86a0 chore: stop requiring a specific nodejs version to build Etcher (#584)
We were previously requiring users to run the exact same NodeJS version as
Electron bundled in order to avoid native add-on compilation incompatibilities,
however this problem is completely mitigated by configuring NPM to build
against an Electron specific V8.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-07-19 22:28:41 -04:00
Juan Cruz Viotti
9c3cb6c51e docs: explicitly list all dependencies in CONTRIBUTING.md (#583)
The dependencies are checked for in the build scripts, but for the user
convenience, we should also list them explicitly in the `CONTRIBUTING.md`
guide.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-07-19 22:10:57 -04:00
Juan Cruz Viotti
6348d88c95 chore: add commands to build scripts (#566)
Currently build scripts install dependencies and package everything on
every run. In order to allow more customisation, the build scripts now
accept the following commands:

- `install`: Only install dependencies.
- `package`: Only package the application.
- `all`: Install dependencies and package the application.

The above differentiation allows us to improve the documentation and CI
configuration files to point to the `install` commands instead of having
to explain how to configure NPM correctly, since that's done by the
build scripts by default.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-07-12 10:15:21 -04:00
Juan Cruz Viotti
4482bb0eeb chore: normalize documentation (#562)
- Make sure we use the same tile style.
- Make sure we wrap lines in the same way.
- Use hyphens as file name separators.
- Move links to the bottom of the docs.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-07-08 10:40:54 -04:00
Juan Cruz Viotti
33eb0637b2 chore: configure commitizen (#494)
Etcher will start following Angular's commit guidelines, enforced by a
neat tool called `commitizer`, with the main purpose of being able to
auto-generate the CHANGELOG file.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-06-20 12:08:29 -04:00
Juan Cruz Viotti
dd6182ceb3 Write a document explaining Etcher's architecture (#447)
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-06-06 17:52:18 -04:00
Juan Cruz Viotti
c1074de198 Upgrade electron to v1.1.1 (#427)
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-05-24 10:37:31 -04:00
Juan Cruz Viotti
d9f6c1b838 Add instructions to configure NPM for installation (#429)
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-05-24 10:37:12 -04:00
Juan Cruz Viotti
f365f2fa57 Group documentation in a docs/ directory (#405)
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-05-11 12:46:27 -04:00