Electron Packager is a community-driven project. As such, we welcome and encourage all sorts of contributions. They include, but are not limited to:
We strongly suggest that before filing an issue, you search through the existing issues to see if it has already been filed by someone else.
This project is a part of the Electron ecosystem. As such, all contributions to this project follow Electron's code of conduct where appropriate.
One way to troubleshoot potential problems is to set the DEBUG
environment variable before
calling electron-packager. This will print debug information from the specified modules. The
value of the environment variable is a comma-separated list of modules which support this logging
feature. Known modules include:
electron-download
electron-osx-sign
electron-packager
(always use this one before filing an issue)extract-zip
get-package-info
We use the debug
module for this functionality. It
has examples on how to set environment variables if you don't know how.
If you are using npm run
to execute electron-packager
, run the electron-packager
command
without using npm run
and make a note of the output, because npm run
does not print out error
messages when a script errors.
We use the label help wanted
in the issue tracker to denote fairly-well-scoped-out bugs or feature requests that the community can pick up and work on. If any of those labeled issues do not have enough information, please feel free to ask constructive questions. (This applies to any open issue.)
Here are some things to keep in mind as you file pull requests to fix bugs, add new features, etc.:
readme.md
,
docs/api.md
, and usage.txt
.NEWS.md
. The format is
similar to the one described at Keep a Changelog.bad:
commit 1: add foo option
commit 2: standardize code
commit 3: add test
commit 4: add docs
commit 5: add bar option
commit 6: add test + docs
good:
commit 1: add foo option
commit 2: add bar option
Squashing commits during discussion of the pull request is almost always unnecessary, and makes it more difficult for both the submitters and reviewers to understand what changed in between comments. However, rebasing is encouraged when practical, particularly when there's a merge conflict.
If you are continuing the work of another person's PR and need to rebase/squash, please retain the attribution of the original author(s) and continue the work in subsequent commits.
To run the test suite on your local machine, you'll first need to do a little setup.
If you're using macOS:
TRAVIS_OS_NAME=osx ./test/ci/before_install.sh
If you're using a Debian/Ubuntu-derived distribution of Linux with x86_64 architecture:
TRAVIS_OS_NAME=linux ./test/ci/before_install.sh
Then you can install dependencies and run the suite:
npm install
npm test
For some unit tests, a test fixture Electron project is required. Sometimes it's OK to use an
existing fixture, such as basic
. If you need to add a new fixture:
test/fixtures/
.package.json
with only the minimal configuration necessary for your test(s).main
key in the
package.json
file.fixtureSubdir
from test/util.js
to reference the fixture subdirectory in your test.Make sure to get a :thumbsup:
, +1
or LGTM
from another collaborator before merging a PR.
NEWS.md
is up to datenpm version <major|minor|patch>
git push && git push --tags
(or git push
with git config --global push.followTags true
on latest git)NEWS.md
for that versionnpm publish