- Added
--preinst-template
CLI option andnode_deb.templates.preinst
for Debianpreinst
templates.--install-dir
CLI option andnode_deb.install_dir
for variable install locations (e.g., /opt/ instead of /usr/share/)
- Fixed
- Possible NPM related errors on install
- Fixed
- Bug where Unix user/group names over 32 characters were accepted, thus breaking installs
- Fixed
- Permissions errors during install for native builds
- Incorrect quoting on app entrypoints
- Fixed
- Error with
sed
commands on macOS
- Error with
- Fixed
- Typo prevented cleanup of symlinks.
- Added
no-default-dependencie
flag to not include the dependency onnodejs
andsudo
.
- Removed
- Creation/removal of Unix user/group for non-service applications
- Added
- Now includes
package-lock.json
if it exists - Debian package now has a dependency on
sudo
which is needed for starting the app with Upstart
- Now includes
- Fixed
- When using the intall strategy
copy
orauto
, symlinks innode_modules
are dereferenced
- When using the intall strategy
- BREAKING
- Apps are now started with either
.node_deb.entrypoints.cli
or.node_deb.entrypoints.daemon
and not.start
or.node_deb.start_command
inpackage.json
. SeeREADME.md
for more details.
- Apps are now started with either
- Fixed
- CLI apps don't
cd
to the install root before executing
- CLI apps don't
- Fixed
- Broken
node_modules
was fixed by the addition of--install-strategy
option
- Broken
- Added
- Parsing of
node_deb.architecture
field inpackage.json
--install-strategy
to decide if a package should include dependencies or add them at install time
- Parsing of
- Fixed
- More minor
bash
errors.
- More minor
- Added
--output-deb-name
option to change the name of the generated debian package.- System V support via autogenerated
init
scripts.
- Fixed
- Miscellaneous
bash
errors.
- Miscellaneous
- Changed
- Automatically include
package.json
,npm-shrinkwrap.json
, andnode_modules
. These no longer need to be specified on the command line. - Allow
md5sums
to not be calculated. - Deprecated the
--no-md5sums
CLI arg.
- Automatically include
- Added
--no-rebuild
flag to preventpostinst
maintainer script from runningnpm rebuild
.--arch
CLI option to allow setting the architecture of the target system. Intended to be used primarily with the--no-rebuild
option for finecky packages.
- Fixed
node_modules
is reduced down to only the production dependencies vianpm ls --prod
.
- Fixed
- broken
xargs
call
- broken
- Fixed
- removed lingering usage of
rsync
- fixed broken
postrm
script - made script
shellcheck
pure
- removed lingering usage of
- Changed
node-deb
has reverted back to usingcp
instead ofrsync
for copying files
- Fixed
postrm
now correctly cleans up/var/log/{{ package }}
onpurge
- Removed
node-deb
no longer creates/var/run/{{ package }}
. This never worked correctly anyway on systems usingsystemd
because of a typo.
- Changed
postinst
andprerm
default to prioritizingsystemctl
overservice
andstart
/stop
for stopping and startin services
- Added
- Included
LICENSE
innode-deb
's Debian package.
- Included
- Changed
- Added clarifications to
README
- Added clarifications to
- Added
- CLI flag to display the
README
- CLI flag to display the
CHANGELOG
- More examples to the
README
- CLI flag to display the
- Added
- Command line flag
--extra-files
that adds a single directory of files to the Debian package. These files are added to the root of the file system. E.g., if the dirextra
contains/var/lib/foo.dat
, then the Debian package will installfoo.dat
to/var/lib/
at install time.
- Command line flag
- Changed
- Minor formatting changes, updates to
README
- Minor formatting changes, updates to
- Added
- Allows the default Debian dependencies in the
control
file to be overridden
- Allows the default Debian dependencies in the
- Added
- The dropped commit that fixed
node_modules
install step mentioned in release notes from0.1.13
- The dropped commit that fixed
- BREAKING
- The
executable
template now by default includes thebash
variable$@
as arguments to thestart_command
. This is breaking in the sense that is a user set theirstart_command
to something likenode my-exe-thing $@
, then this change will pass the arguments twice. - The build step now forces the usage of
fakeroot
while creating the package to avoiduid
andgid
collisions between the environment where a package is built and where it is deployed.
- The
- Fixed
deb
packages that did not includenode_modules
did not do annpm install
when installed withdpkg
orapt
. Thepostinst
now conditionally installs based on the existence ofnode_modules
.
- Added
- Template and command line args for default environment variables. Template is empty for now.
- Fixed
node-deb
no longer producesjq
errors about missingpackage.json
when run outside a project directory
- Added
- Command line option
--start-command
to allow setting of the start command from the command line
- Command line option
- BREAKING
- Reverting the change from
0.1.9
wherenode-deb
did not include thenode_modules
directory. Now the default behavior is to include this directory and warn when it is not included on the command line.
- Reverting the change from
- Added
- Less tolerance for shell script failures both in
node-deb
itself and all templates postinst
template now runsnpm rebuild
to recompile platform specific binaries- This combined with the forced inclusion of
node_modules
andnpm-shrinkwrap.json
aims to make packages and builds as reproducible as possible.
- This combined with the forced inclusion of
- Less tolerance for shell script failures both in
- Changed
postinst
now runsnpm install
with the--production
option
- BREAKING
node-deb
will no longer include thenode_modules
directory, but instead will runnpm install
during thepostinst
step in the install directory. Thus, ifpackage.json
exists, it will be auto included in the.deb
.
- Added
- Better script logging
package.json
andnpm-shrinkwrap.json
are included by default, and warning messages are displayed if they aren't included- If
node_deb.start_command
is not present inpackage.json
, default to usingscripts.start
- Changed
- Using MIT license over GPL license
- Slightly faster copying of files
- Slightly faster md5sum calculations
- Support using
gmd5sum
for packages built on OSX (withbrew install gmd5sum
)
- Changed
- Handling of template injection that includes shell redirects
- Added
- Command line flag
--list-template-variables
so users can see which variables are injected into templates - Allow the selections of
systemd
andupstart
to the--init
flag
- Command line flag
- BREAKING
- Moved installed files to
/usr/share/$package_name/app/
instead of/usr/share/$package_name/
to avoid name conflicts if a user has a directory in their project calledbin
- Moved installed files to
- Added
- Command line option to list and print available templates
- Command line options to override default templates:
--template-{control, executable, postinst, postrm, prerm, systemd-service, upstart-conf}
- Changed
- The executable's start command now defaults to
node_deb.start_command
in thepackage.json
- The executable's start command now defaults to
- Added
- Command line flags for:
-d | --description
: Debian package description-e | --executable-name
: the name of the runnable file-h | --help
: print help/usage message-i | --init
: select init type (auto, none)-m | --maintainer
: Debian package maintainer-n | --package-name
: the named of the Debian package--no-md5sums
: disable creating of md5sums in Debian package
systemd
init support- Ability to disable init (useful for command line tools)
- Command line options for
test.sh
(dev only)
- Command line flags for:
- Changed
- Changed references from
binary
toexecutable
(because that's what it actually is) - Command line flag
-N
is now named--no-delete-temp
- Changed references from
- Added
- Automatic removal of the
.deb
staging directory - Command line flag to prevent deletion of the
.deb
staging directory - Add md5sums for all files in the
.deb
directory to theDEBIAN
directory in the package
- Automatic removal of the
- Added
- Check to ensure all target files exist before building
.deb
test.sh
andtest/
for automated testing (dev only)
- Check to ensure all target files exist before building
- Fixed
- Correct handling of paths with whitespace
- Added
- Command line flag and
package.json
field for Debian package version
- Command line flag and
- Added
- Simple command line flags
- Simple modifiers for Debian package, extracted from
package.json
- Templates for: Debian control file,
preinst
,postinst
,prerm
,binary
, and Upstart script