Commit Graph

158 Commits

Author SHA1 Message Date
Ben Newman
e95dfe410e Make sure dev_bundle/lib/node_modules/.bin is left intact.
If you run `meteor npm install` in bundle/programs/server, this change
means dev_bundle/lib/node_modules/.bin/node-pre-gyp will be available to
packages that need to rebuild binary dependencies, to pick just one
important example.
2016-05-19 17:04:08 -04:00
Ben Newman
d588d79199 Don't use npm@3 to build Mac/Linux dev bundles.
Building the dev bundle on 32bit Linux wasn't working because node-gyp
needed the npm version and the node version to agree.

Long paths aren't a problem on Mac and Linux like they are on Windows, so
using npm@2.15.1 should be safe here.
2016-05-16 18:21:14 -04:00
Ben Newman
6419990765 Upgrade Node to 0.10.45 and npm to 2.15.1. 2016-05-16 18:21:14 -04:00
Ben Newman
a4ff6b73d3 Download prebuilt Node binaries from npmjs.org instead of s3. 2016-05-16 18:21:13 -04:00
Ben Newman
b3b8bcd272 Go back to using our fork of node. 2016-03-11 19:42:36 -05:00
Ben Newman
f0239a64b2 Use the new Node 0.10.43 build in the dev bundle. 2016-03-11 12:56:57 -05:00
Ben Newman
eb990daea0 Ignore the version of npm that comes with Node 0.10.41. 2016-03-10 19:56:56 -05:00
Ben Newman
be280958e8 Upgrade npm to 2.14.22 and bump $BUNDLE_VERSION to 0.5.28. 2016-03-10 19:34:34 -05:00
Ben Newman
61f819b89a Forbid user-provided npm configuration files in meteor-npm.js.
Follow up to #5710.
2015-12-08 20:08:13 -05:00
Ben Newman
093e73da28 Merge pull request #5710 from mitar/patch-16
Make sure no user configuration is used.
2015-12-08 19:23:16 -05:00
Ben Newman
8a7102d9dd Use the new Node v0.10.41 build when building the dev bundle. 2015-12-08 18:59:40 -05:00
Mitar
cc959fcefb Added comment. 2015-12-01 17:28:24 -08:00
Mitar
adaf28b4aa Make sure no user configuration is used.
Reproducible builds and stuff.
2015-11-25 16:28:49 -08:00
Tom Freudenberg
8a24a1b2ba Make Script More Portable With #!/usr/bin/env 2015-11-01 22:04:10 +01:00
Martijn Walraven
e164fd969c Install ios-sim from NPM instead of building it ourselves 2015-08-26 19:26:44 +02:00
Martijn Walraven
d09ee4c5a1 Use cp -R just in case it matters on OS X 2015-08-03 13:46:34 +02:00
Martijn Walraven
e88e4a2837 Add explicit dependency on the npm version we build our node fork with 2015-07-30 17:37:41 +02:00
Martijn Walraven
e924dc470c Replace npm in dev bundle with version from our own fork 2015-07-23 20:48:06 -07:00
Martijn Walraven
62c99185a4 Add explicit version for npm 3 so builds are reproducible 2015-07-23 16:46:06 -07:00
Martijn Walraven
e07143b2ca Save some space by removing esprima tests (as we were doing before) 2015-07-23 16:08:36 -07:00
Martijn Walraven
6038c8dc00 Use npm 3 for building dev bundle on Unix 2015-07-23 15:25:46 -07:00
David Glasser
dfa394ea1c Try to build dev bundle again
This time with actual Node 0.10.40, not some random commit because
Jenkins is running old versions of git where `git clone -b garbage`
isn't an error!
2015-07-17 00:00:26 -07:00
David Glasser
58397f5bf1 Now build new dev bundle 2015-07-16 23:22:36 -07:00
David Glasser
f59cf85740 Prepare to build Node 0.10.40 2015-07-16 21:58:14 -07:00
Avital Oliver
3875e1aea8 Change how we strip Node modules when building dev bundle
Apparently the contents of the browserify-zlib library changed.

Fixes #4013
2015-03-24 16:47:49 -07:00
Slava Kim
5bd8d35b68 Remove the outdated line deleting a benchmarks folder in browserify from the
dev-bundle script
2015-02-16 15:13:41 -08:00
David Glasser
5d17598584 Update pathwatcher, which took our PR
Our PR landed in 4.1.0, so we no longer need a fork.

Hopefully, the runas-related bug which causes dev bundle builds to
sometimes fail (which is why we moved the install to its own step) is
fixed with the newer version of runas used by pathwatcher now.

Note that we were previous using a fork with an early version of our PR,
which put the numeric errno on 'code'. The accepted version of the PR
puts the numeric errno on 'errno' (and in Node 0.12, puts a string on
'code').
2015-02-16 14:34:54 -08:00
Slava Kim
37f3230591 Merge branch 'upgrade-cordova' into devel
This merge applies changes to the dev-bundle script, but the new dev-bundle is
yet to be built.
2015-02-16 14:07:00 -08:00
Slava Kim
c3615d6898 Add a link to docs on ios-sim 2015-02-11 15:56:34 -08:00
Ben Newman
5d08559cc7 Pull in new Node and Mongo builds 2015-02-05 22:40:44 -08:00
David Glasser
fca8a19b4c generate-dev-bundle: download stuff over https 2015-02-05 22:40:43 -08:00
ekatek
12d030dd53 completely rewrite of ‘meteor show’; some changes to ‘meteor search’.
The ‘show’ command has been completely rewritten. It has different output
and now does the following:

- Interacts with local package versions. Checks in the local package catalog, and
  returns the local versions along with the server versions. When ‘meteor show’ is
  run with a specific version request (‘meteor show foo@<version>’), default to
  showing the local package version (but show a message that a server version is
  available). Running ‘meteor show foo@local’ will always show the local version
  (useful for version-less local packages).

- Simplify the interface. Instead of various ‘show-*’ flags, we only have one: show-all.
  By default, we only show the top 5 official (non-prerelease) unmigrated versions of a
  package (+ local version, if applicable). This can be overridden with ‘show-all’, and we
  let the user know that more versions are available. For releases, ‘show-all’ will show
  non-recommended releases.

- Display publication time for non-local package versions. This makes it easier to run
  ‘meteor show <name>’ and see if <name> is actively maintained. For local packages,
  we display the root directory (useful for large apps or running with the
  LOCAL_PACKAGE_DIRS variable, for example).

- For non-local package versions, show if the version is ‘installed’ (downloaded into the
  warehouse). This involved minor changes to tropohouse.js. The idea is that this should
  give a pretty good clue whether the version can be added offline.

- Show version dependencies. This should help the user understand, track down and
  debug constraint solver failures.

- Do not show version architectures except in —ejson mode.

- Allow an ‘—ejson’ flag to get the output in EJSON format. That should make scripting
  easier. (As a bonus, for release versions, the EJSON output acts as a nice template
  for the release configuration file.)

The search command now does the following:

- Interacts with local package versions. Specifically, local versions override equivalent
  server versions. Also, ‘search’ works on local packages (so, for example,
  ‘meteor search troposphere’ inside the package server app will give you the troposphere
  package).

- Allows an ‘—ejson’ flag to get the outout in EJSON format.

Minor changes to some minor testing infrastructure:

 - A new skeleton package, package-for-show. Its versions contain different
   values for various metadata, so we can test that metadata comes from
   the right version.

 - In several places, replace the pattern of copying around
   package.js files with using the replace function on a placeholder
   string. (Mostly, as applied to package versions).

This is based on these hackpads: https://mdg.hackpad.com/Showing-Package-Metadata-HdGo3Lzx3hR
and https://mdg.hackpad.com/Meteor-Search-Output-1xxEzrAK9YU.
2015-01-13 13:53:20 -08:00
Ben Newman
8e0bbec6f7 Simplify gzip/tar dance in generate-dev-bundle.sh.
Summary:
I recently learned that `curl <url> | tar zx` works just as well as
`curl <url> | gzip -d | tar x`.

I'm also hoping to test out the new Phabricator.

Test Plan: Regenerating the dev bundle on Jenkins.

Reviewers: glasser

Reviewed By: glasser

Differential Revision: https://phabricator.meteor.io/D7
2015-01-13 14:23:08 -05:00
Ben Newman
0514be4689 Revert back to Node v0.10.33 to fix regression in meteor debug.
Inspecting local variables in node-inspector is impossible in v0.10.35 due
to a known issue in Node: https://github.com/joyent/node/issues/8948
2015-01-02 00:21:37 -05:00
Ben Newman
e93f8bbc2a Update generate-dev-bundle.sh to use prebuilt Node v0.10.35. 2014-12-29 20:41:57 -05:00
Slava Kim
2b72e12266 Use a new build of ios-sim
linked against xcode6
2014-12-22 13:43:33 -08:00
David Glasser
f5f136adc9 Don't crash on pathwatcher failures
Instead, increase polling interval for that file/dir to 500ms from 5s.

Fixes #3336.

The most common case where this was occuring is when you're on Linux and
your inotify max_user_watches is too low.  A wiki page will explain how
to increase this.  In debug mode, a message will tell you to go to the
wiki page if you hit the limit (we may later expose this message by
default, but it is part of the new user experience).
2014-12-22 12:19:59 -08:00
ekatek
24a4ed9bdc Automatically line-wrap output
Includes the following changes to Console.js:

- Console.info, Console.warn, Console.debug and Console.error now automatically
  line-wrap the output to 80 characters, or the width of the terminal screen (if
  known). This is in line with our current style guide on how things should be wrapped!

- Sometimes, there are parts of text that we don't want to line-wrap. For example, if we are
  telling the user to run 'meteor long-command --with --options' we don't want to
  have a newline in the middle of that! Wrap those commands in Console.command, like
  this:
     Console.info("something and then run", Console.command(command), "and then");
  This also makes them bold if chalk is on, as a nice bonus. So, if we ever turn
  chalk back on, the bolding of commands will be more consistent.

- Sometimes, there is bulkier output that we don't want to format at all, including
  line-wrapping: log snippets, stack traces, JSON output, etc. In that case, we can use
  Console.rawInfo, Console.rawError, Console.rawWarn and Console.rawDebug. Don't use
  Console.command inside the raw* functions! It won't be processed (at all).

- There are fancier things that we can do, other than just simply wrapping things.
  We can indent:
  "  Start here and then when wrapping
     continue over here".

  We frequently do this for commands, for example. In the past, we did this manually --
  but we can't do this for long messages that might get wrapped, and anyway, it is
  good to codify this instead of counting spaces. Allows us to be better about consistency,
  for example.

- We can also add a bulletPoint, which is a small notice in the beginning that looks like
  this:
  " => Start here and then when wrapping
       continue below the bulletPoint".

  Since it is a elss intuitive option, I have wrapped most of the time that we use a
  bulletPoint into helper functions on the Console.js.

- Some common bulletpoints that we use are:
    ASCII Checkboxes (Console.success)
    ASCII X-s (Console.failWarn and Console.failInfo)
    =>  (Console.arrowError, Console.arrowWarn, Console.arrowInfo)
    WARNING (Console.labelWarn)

  The => are sometimes indented, so they take an optional indent argument, showing how
  many spaces to indent by.

The wrapper interface would be less complicated, if there was a more unified conceit behind our
terminal messages. If there is one, it is not documented. My hope is that, in many cases,
moving these to Console will make it easier for someone with great product sense to
clean up our terminal messages. It will also make it easier to write such messages, since
it will be easier to follow an accepted standard.

In the codebase outside of Console:

- Went through and looked at our use of Console.error/info/etc, replacing with rawError/etc
  whenever approporiate.

- Went through and modified most of 'stdout' and 'stderr' calls to use the new functions.
  I made an exception for stuff that doesn't want a new line at the end, or otherwise does
  weird things (ex: print user logs directly), on the basis that, at this juncture, it is
  better to be safe than to be sorry.

- Long messages no longer need to break the code style guide by ignoring indentation rules.
  Fixed that where approporiate.

- Fixed the tests! A number of our stock messages are actually longer than 80 chars.

- Personal favourite: The Android license agreement is now line wrapped! Much better experience.

- There is some more work to do on:
  - longform help (currently comes with built-in linebreaks, would have to change the entire
    mechanism for how that works)
  - Buildmessage sometimes has headers that start with =>, but they are short. I didn't want to
    pass wrapper options all the way to main.captureOrExit before merging the rest of this and
    making sure that we like it. Since these messages are fairly short, I don't think that's
    likely to be a serious problem.

I hope that this makes life easier for us in the future! No more counting chars, no more breaking
the style guide. Better experience for users with wider terminals (or even shorter terminals!).
Let's give this a try.
2014-12-04 17:56:04 -08:00
Ben Newman
187b0e00f2 Make a note of future aspirations about installing pathwatcher. 2014-11-26 14:23:18 -05:00
Ben Newman
4403a5bf7e Install pathwatcher from NPM instead of GitHub. 2014-11-26 13:52:50 -05:00
David Glasser
f403b06799 switch unmatched pushd to cd 2014-11-26 10:22:27 -08:00
David Glasser
1487d824be move tool deps to package.json to run npm dedupe 2014-11-26 10:19:37 -08:00
David Glasser
289d92f2ec separate server deps from tool deps
move package.json to a JS file so it can have comments.
2014-11-26 09:45:49 -08:00
David Glasser
bfffb986cb generate-dev-bundle: use local node/mongo tarballs
(kind of like the dev bundle itself)
2014-11-26 09:24:35 -08:00
Ben Newman
01a19bf182 Don't remove the rimraf dependency from pathwatcher/node_modules/.
One of the actual dependencies (as opposed to devDependencies) of
pathwatcher (fs-plus) depends on rimraf, but it doesn't get installed in
pathwatcher/node_modules/fs-plus/node-modules/ because it's already
installed in pathwatcher/node_modules/, so we should avoid deleting it.
2014-11-26 00:45:08 -05:00
Ben Newman
ad03de15fc Download pre-built node and mongo build artifacts from S3. 2014-11-26 00:01:49 -05:00
Ben Newman
fff79abea8 Source build-dev-bundle-common.sh in generate-dev-bundle.sh. 2014-11-25 20:56:59 -05:00
Ben Newman
48f8d7f89c Install node-pathwatcher from our branch. 2014-11-25 15:58:13 -05:00
Ben Newman
f15f56fff7 Upgrade pathwatcher to prevent tests from hanging.
I fixed https://github.com/atom/node-pathwatcher/issues/47 with
https://github.com/atom/node-pathwatcher/pull/48, and @kevinsawicki
published my changes to NPM as pathwatcher@2.3.3.

These changes make it so pathwatcher no longer keeps our test processes
alive when they would otherwise naturally exit.
2014-11-21 17:37:15 -08:00
Ben Newman
88477358ac Add node-pathwatcher NPM package to dev bundle. 2014-11-17 20:27:29 -05:00