Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce tarball size, v2 #5695

Merged
merged 1 commit into from Mar 16, 2016

Conversation

Projects
None yet
8 participants
@jbergstroem
Copy link
Member

commented Mar 14, 2016

  • Does make -j8 test (UNIX) or vcbuild test nosign (Windows) pass with
    this change (including linting)?
  • Is the commit message formatted according to CONTRIBUTING.md?
  • If this change fixes a bug (or a performance problem), is a regression
    test (or a benchmark) included?
  • Is a documentation update included (if this change modifies
    existing APIs, or introduces new ones)?

Affected core subsystem(s)

build, deps, tools

Description of change

Reduce the nodejs tarball size with another ~10% (it's grown pretty fast over the last year). The distinction we're making here is that developers should opt for git instead of tarballs, but the test suite should still be able to run (therefore verifying the generated binary). This means that stuff like linters or test suites in deps/ should go.

@jbergstroem

This comment has been minimized.

Copy link
Member Author

commented Mar 14, 2016

@mscdex

This comment has been minimized.

Copy link
Contributor

commented Mar 14, 2016

Do the linting-related files really take up that much space though compared to the other things being removed in this PR?

@jbergstroem

This comment has been minimized.

Copy link
Member Author

commented Mar 14, 2016

@mscdex 8% tarball size (9% xz).

@ChALkeR

This comment has been minimized.

Copy link
Member

commented Mar 14, 2016

Should this be labeled semver-major?

@jbergstroem

This comment has been minimized.

Copy link
Member Author

commented Mar 14, 2016

@ChALkeR because we're removing eslint from the tarball? Good question. I'm not against it.

@rvagg rvagg added the semver-major label Mar 14, 2016

@rvagg

View changes

vcbuild.bat Outdated
@@ -261,6 +261,7 @@ goto jslint

:jslint
if not defined jslint goto exit
if not exist tools\eslint\bin\eslint.js goto exit

This comment has been minimized.

Copy link
@rvagg

rvagg Mar 14, 2016

Member

thinking you should probably be as nice here as you are in the Makefile about what's wrong

@rvagg

This comment has been minimized.

Copy link
Member

commented Mar 14, 2016

semver-major is a good idea since it's a change in expectations for users building from source

lgtm

@bnoordhuis

View changes

Makefile Outdated
else
test-v8 test-v8-intl test-v8-benchmarks test-v8-all:
@echo "Testing v8 is not available through the source tarball."
@echo "Use the git repo instead: $ git clone https://github.com/nodejs/node.git"

This comment has been minimized.

Copy link
@bnoordhuis

bnoordhuis Mar 14, 2016

Member

Long line?

@bnoordhuis

View changes

Makefile Outdated
rm -rf $(TARNAME)/deps/zlib/contrib # too big, unused
rm -rf $(TARNAME)/.github # github issue templates
rm -rf $(TARNAME)/.{editorconfig,eslint*,git*,mailmap}
rm -rf $(TARNAME)/tools/{eslint,eslint-rules,osx-pkg.pmdoc,pkgsrc,rpm}

This comment has been minimized.

Copy link
@bnoordhuis

bnoordhuis Mar 14, 2016

Member

The tools/rpm directory isn't that big and I know there are at least a few people who use it (including yours truly, from time to time.)

@thefourtheye

This comment has been minimized.

Copy link
Contributor

commented Mar 14, 2016

LGTM.

@jasnell

This comment has been minimized.

Copy link
Member

commented Mar 14, 2016

LGTM with @bnoordhuis' comments addressed.

@@ -583,7 +593,7 @@ bench-idle:

jslint:
$(NODE) tools/eslint/bin/eslint.js benchmark lib src test tools/doc \
tools/eslint-rules --rulesdir tools/eslint-rules
tools/eslint-rules --rulesdir tools/eslint-rules

This comment has been minimized.

Copy link
@silverwind

silverwind Mar 14, 2016

Contributor

@Trott I think you committed these leading spaces, which can be problematic in a Makefile, thought it seems it didn't matter here. This change here could've been avoided with a Editorconfig plugin in your editor 😉

@silverwind

View changes

Makefile Outdated
rm -rf $(TARNAME)/.{editorconfig,eslint*,git*,mailmap}
rm -rf $(TARNAME)/tools/{eslint,eslint-rules,osx-pkg.pmdoc,pkgsrc,rpm}
rm -rf $(TARNAME)/tools/{osx-*,license-builder.sh,cpplint.py}
rm -rf $(TARNAME)/test/.eslintrc

This comment has been minimized.

Copy link
@silverwind

silverwind Mar 14, 2016

Contributor

Also lib/.eslintrc?

build: remove lint/dotfiles from release tarball
This removes the ability to run linting from the source tarball,
rationale being that developers should use a git clone instead.

Also, fix the path of removing artifacts from the openssl dependency
since it now lives in `deps/openssl/openssl/`.

Tarballs shrink with ~10%.

PR-URL: #5695
Fixes: #5618
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: thefourtheye <thechargingvolcano@gmail.com>
Reviewed-By: James Snell <jasnell@gmail.com>

@jbergstroem jbergstroem force-pushed the jbergstroem:feature/slimmer-tarballs-v2 branch to 90a5fc2 Mar 16, 2016

@jbergstroem jbergstroem merged commit 90a5fc2 into nodejs:master Mar 16, 2016

@jasnell jasnell referenced this pull request Mar 17, 2016

Closed

Planning for v6 #5766

@jbergstroem jbergstroem referenced this pull request Jun 13, 2016

Closed

tools: fix doctool tests in release builds #7290

2 of 2 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.