Commit Graph

42 Commits

Author SHA1 Message Date
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
fa38facc83 Specify explicit dependency on npm to avoid installing earlier version
The cordova dependency pulled in npm 1.3.4, which apparently has a bug
reading npm-shrinkwrap.json with tarball dependencies.
2015-07-23 15:25:46 -07:00
Ben Newman
bf353fc66e Upgrade escope and use the new API in js-analyze.js. 2015-07-23 16:45:14 -04:00
Ben Newman
78d8afc861 Remove esprima from dev bundle. 2015-07-23 16:45:14 -04:00
Ben Newman
3b99659986 Upgrade dev bundle meteor-{promise,babel} to latest versions.
The breaking change in the latest version is that the Fiber constructor is
no longer included as a meteor-promise dependency, but must be supplied by
assigning to Promise.Fiber.
2015-07-20 22:47:34 -04:00
David Glasser
2e34ec1933 Merge branch 'devel' into batch-plugins 2015-07-16 00:47:15 -07:00
Ben Newman
1702e8a164 Globally polyfill ES2015-compliant Map and Set constructors for tool code.
Using these collections with for-of loops also requires a global Symbol
polyfill.
2015-07-15 18:57:20 -04:00
David Glasser
0514518e60 move escope into dev bundle
Preparation for removing the JSAnalyze special case.
2015-07-15 13:49:48 -07:00
David Glasser
b75064f689 Merge branch 'devel' into batch-plugins 2015-07-09 10:48:30 -07:00
Ben Newman
31da200260 Upgrade meteor-babel to support ES6 for-of loops. 2015-07-01 14:16:02 -04:00
Ben Newman
07c804af02 Upgrade meteor-babel to version 0.3.3. 2015-06-30 23:29:41 -04:00
Ben Newman
46b33db903 Update meteor-babel and meteor-promise dependencies to latest versions. 2015-06-30 19:37:54 -04:00
David Glasser
917c10f2b6 add lru-cache to dev bundle 2015-06-29 12:39:22 -07:00
David Glasser
e2b6ba060e oops, missed this merge conflict 2015-06-26 23:32:58 -07:00
David Glasser
919be97b6f Merge branch 'devel' into batch-plugins
Resolves these conflicts:
	meteor
	scripts/dev-bundle-server-package.js
	scripts/dev-bundle-tool-package.js
	tools/files.js

This requires building a new dev bundle, and moving the wrapCallSite
thing to source-map-retriever-stack.js.
2015-06-26 23:24:56 -07:00
Slava Kim
d8e26bd272 Use fork of source-map-support in tool, too
In addition to apps
2015-06-25 16:59:17 -07:00
Ben Newman
e29d287d8e Bump meteor-babel and meteor-promise dependency versions.
https://github.com/meteor/babel/issues/1
https://github.com/meteor/babel/issues/2
https://github.com/meteor/promise/commit/a056baf5b4
2015-06-24 20:15:50 -04:00
Ben Newman
9b5ffcabde Upgrade meteor-babel and install meteor-promise to polyfill Promise. 2015-06-24 16:35:04 -04:00
Ben Newman
38ce0d1f3c Bump meteor-babel version to 0.1.12. 2015-06-23 16:36:22 -04:00
Sashko Stubailo
312663db67 Transpile the Meteor command line tool with Babel
- Uses Ben's meteor-babel npm package that has a default config
- From a checkout, uses the meteor-babel/register module and compiles at runtime
- When meteor-tool is published, precompiles the files
- Adds tests to make sure source maps work everywhere
2015-06-23 14:32:49 -04:00
Ben Newman
5190b5f730 Upgrade meteor-promise NPM dependency to v0.2.2.
Promise callback functions (and Promise.async functions) now share a pool
of recyclable Fibers.
2015-06-12 17:47:31 -04:00
Ben Newman
f95ecd18de Upgrade meteor-promise NPM dependency to v0.2.0.
This ensures that all Promise callback functions run in a Fiber, as if
Meteor.bindEnvironment were called when the Promise was created.

Not bumping the dev bundle version with this commit, because these changes
will get rolled into the dev bundle updates for the es6-tool branch.
2015-06-11 13:37:20 -04:00
Kelly
641cc4c333 update cordova to 5.0.0 2015-05-19 17:02:12 -07:00
Ben Newman
3720e7d75f Add meteor-promise to the tool bundle, and upgrade to v0.1.0. 2015-05-07 17:38:50 -07:00
Ben Newman
19683041f7 Upgrade http-proxy to v1.11.1 in dev bundle. 2015-05-06 17:09:49 -07:00
Avital Oliver
79f7f162f1 Fix long file paths passed to files.createTarball
The fix is actually in https://github.com/npm/fstream/pull/42,
but now we also remove our explicit path length check
that used to throw an error instead of silently losing files.

This commit also adds a self-test to test the entire flow
through `files.createTarball` and `files.extractTarGz`.
2015-03-23 19:56:19 -07: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
eed629b503 Upgrade the cordova-cli dependency 2015-02-11 12:24:17 -08:00
Sashko Stubailo
466559a8c4 Switch to using a fork of fibers on Windows 2015-02-09 12:10:44 -08:00
Sashko Stubailo
02d6b020a7 Upgrade fibers to 1.0.5, which has the fixes
Also, there are some bug fixes for Windows which is really
what I wanted
2015-02-05 22:40:44 -08:00
Sashko Stubailo
ea2a8bc468 Add rimraf to dev bundle 2015-01-28 13:26:41 -08:00
Slava Kim
c7675a0da3 Corrections to Windows-specific removals 2015-01-20 22:06:58 -08:00
Slava Kim
83dd44bdd6 exclude some npm modules from windows version of dev bundle 2015-01-20 22:06:57 -08:00
ekatek
0f6c31cab7 upload README.md files to the server and view the excerpt in meteor show
This commit is based on the following design document:
https://mdg.hackpad.com/Creating-and-Updating-Docs-0ZyyDcSZDxp,
and some other stuff from here: https://mdg.hackpad.com/Meteor-Long-Description-wGZ1vIOwVlF
and was code reviewed here: https://github.com/meteor/meteor/pull/3375

It does the following:

- Allow the user to specify package documentation in Package.Describe.
  We will take the README.md file by default, to make the transition easier.
  Users can specify ‘documentation: null’ to not submit a README.md

- From that documentation, extract the section between the first and second header
  to use as the long form description for the package.

- Upload the documentation to the server at publish-time. Allow metadata changes with ‘publish —update’.

- Change the default package skeleton to include the README.md file.
  Also, changes the skeleton to have fewer useless placeholders in Package.describe values.

- Fix a minor bug where Git did not show up when running ‘meteor show’ on local packages.

A note on ‘documentation: null’ and blank documentation — we don’t let maintainers upload
blank README.md files, because we want to encourage people to fill them out. (Instead,
we allow a ‘documentation: null’ as an override) This is a UX issue! It is not a technical thing.

There is more discussion and code review in: https://github.com/meteor/meteor/pull/3375
2015-01-13 13:53:21 -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
e6499b2304 Remove unused 'promise' NPM package.
Bumping the dev bundle version to 0.3.81 because .79 and .81 have already
been built and copied to S3, but not merged into devel.
2014-12-29 20:41:57 -05:00
Slava Kim
d155e46627 Use latest Cordova 4.1.2
We used to use our own fork that pointed at our fork of cordova-android with
this patch applied:

445ddd89fb

The latest cordova-android has the patch applied.
2014-12-22 13:42:39 -08:00
Ben Newman
43037f7c37 Add the promise NPM package to the dev bundle. 2014-12-12 17:40:11 -05: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
David Glasser
1487d824be move tool deps to package.json to run npm dedupe 2014-11-26 10:19:37 -08:00