Commit Graph

12589 Commits

Author SHA1 Message Date
ekatek
38e0e344c4 prepare for 1.0.3.1
- increment the release number in banners.json
- increment version number for meteor-tool
- increment release number in the release configuration
release/METEOR@1.0.3.1
2015-01-20 13:50:34 -08:00
ekatek
afb0915e68 be slightly more efficient in checking if dir exists
Cache the result of the stat call, rather than repeating it.
Also, while at it, rename the function.
2015-01-20 13:37:18 -08:00
ekatek
73a2f50d7d error handling in mkdir_p
Summary:
According to its contract, mkdir -p returns true if the directory
exists (and creates it if needed) and false if the item exists and isn't
a directory (so we couldn't make one). Because directory creation can
be concurrent, we need to wrap the actual mkdir call in a try/catch to handle
this issue (rather than just checking once).

This issue was always here. Previously, the race was against other apps editing
the same directory (which didn't come up that often). As of 1.0.3, files.js is a lot
more yieldy and this becomes a race condition on Meteor itself.

Test Plan: self-test

Reviewers: glasser

Differential Revision: https://phabricator.meteor.io/D15
2015-01-20 13:23:45 -08:00
ekatek
99124d881a increment package versions release/METEOR@1.0.3 2015-01-20 10:25:22 -08:00
ekatek
87a9c59c64 fix History.md and banners.json 2015-01-20 10:13:36 -08:00
ekatek
3a3ba62736 set the banner 2015-01-20 09:53:29 -08:00
ekatek
b5628f4b23 minor test fixes
This mostly fixes tests:
- removes the 'restarted' check from some tests. We don't need it in those cases
  (printing the other banner is enough). We can no longer rely on that executing
  after the code in the package (in fact it seems to execute before, and then
  get overwritten), and the test still tests what it is intended to (that the new
  package code executes).

- minor fixes to essentially syntax errors -- the skeleton now uses double quotes
  instead of single quotes, so a regex failed to work, for example. We changed a
  version number in one part of the test, but not another.

- fixes selftest.js, sort of, to actually print out what test we are testing. This
  is an unfortunate interaction of Console.js changes in 1.0.2 and a progress bar
  (that came later). The progress bar erases the message telling you what test is
  running when you use a standard terminal. That's awkward, fixed.
2015-01-16 16:50:51 -08:00
ekatek
fe88795ef9 fixing some tests
Literally, just fixing a test to account for the fact that we now use " instead of
' in the package.js skeleton.
2015-01-15 13:20:14 -08:00
ekatek
c123b89c4e history.md update 2015-01-15 11:22:56 -08:00
ekatek
3eba43a42b do not tell publish-release to call a nonexistent command 2015-01-15 10:56:58 -08:00
ekatek
fbfd5c4664 increment version numbers release/METEOR@1.0.3-rc.1 2015-01-15 10:50:09 -08:00
David Glasser
a1f8394750 Fix double execution of Session.close
In Session.close, `self.socket.close` could trigger this event handler:

    socket.on('close', function () {
      if (socket._meteorSession) {
        Fiber(function () {
          socket._meteorSession.close();
        }).run();
      }
    });

which could trigger a reentrant call to Session.close.  The self.inQueue
guard was not sufficient to stop multiple execution, because it was too
low.

Symptoms included:

- The "sessions" server fact would be decremented twice and become
  inaccurate (and even negative!)
- Connection.onClose callbacks could be called twice

Fixes #3331.
2015-01-14 18:37:24 -08:00
ekatek
d663d846c0 remove the deprecated set-latest-readme command 2015-01-14 18:36:41 -08:00
ekatek
4957ba34bb updated mailmap 2015-01-14 13:21:02 -08:00
ekatek
066e4fb435 update History.md 2015-01-14 12:21:18 -08:00
David Glasser
2e43b2bac9 mailmap: mention --email 2015-01-14 12:06:46 -08:00
David Glasser
e5130bdcea History: rough draft of changes since 1.0.3 2015-01-14 12:06:34 -08:00
Willson Mock
75dac55ad3 update license with up-to-date year 2015-01-14 12:06:26 -08:00
David Glasser
4ba315d2f6 Semi-expose password hashing
See #3410.
2015-01-14 12:05:05 -08:00
ekatek
f446fbc292 fixing existing-version
This was broken as part of the merge.
2015-01-13 20:15:15 -08:00
ekatek
c2de48c909 show build architectures correctly
Part of the merge that has gone wrong: we forgot to show build arches
in --ejson. Fixing.
2015-01-13 20:00:44 -08:00
ekatek
4c42a87721 increment versions release/METEOR@1.0.3-rc.0 2015-01-13 19:32:42 -08:00
ekatek
40fa95830f increment version numbers 2015-01-13 19:30:27 -08:00
ekatek
8243ba4ac1 update docs 2015-01-13 19:21:46 -08:00
ekatek
60883bc4d8 release script and bump tool version 2015-01-13 19:20:33 -08:00
ekatek
f8d6be9f96 increment to the dev bundle that includes moment 2015-01-13 18:16:50 -08:00
Avital Oliver
547e8f6111 Add spacebars->tracker package dependency
Fixes #3395
2015-01-13 18:00:06 -08:00
Avital Oliver
cb4f69a4df Use Spacebars comment instead of HTML comment in accounts-ui
Fixes #3384
2015-01-13 17:40:46 -08:00
Rodrigo Estebanez
87e3c6499d add tokenId to google response
Signed-off-by: Rodrigo Estebanez <restebanez@mdsol.com>
2015-01-13 16:57:24 -08:00
David Glasser
76a38e0100 Merge branch 'pr/3330' into devel
This adds "test-packages --velocity", which is like "run --test", but
"test-packages --test" would look silly.

Fixes #3330.
2015-01-13 16:36:12 -08:00
David Glasser
2aba1dce35 style cleanup 2015-01-13 16:35:39 -08:00
rissem
909cd7a99f document --velocity flag 2015-01-13 16:33:56 -08:00
rissem
bfdad18487 support velocity when using test-packages command 2015-01-13 16:33:56 -08:00
David Glasser
1c6856722c Fix some minor docs issues
Fixes #3319.
2015-01-13 16:28:14 -08:00
Small Helm LLC
97d4dc54df using Meteor._relativeToSiteRootUrl for CSS reload 2015-01-13 16:07:38 -08:00
David Glasser
9ab74b60d4 Only load moment when needed
Good for performance, and also for the fact that devel is currently semi
broken due to dev bundle issues (will fix soon)
2015-01-13 16:05:18 -08:00
ekatek
061c176f1d reverting to old dev bundle for a bit 2015-01-13 15:56:44 -08:00
David Glasser
44f2305c8e remove excess console.log 2015-01-13 15:40:51 -08:00
ekatek
e4bd9b7a07 merging 'meteor show' changes
This is mostly cleaning up some syntax errrors that have resulted from
merging the previous commits.
2015-01-13 13:53:22 -08:00
ekatek
798c1635fc show version number in package view
Summary:
When running 'meteor show <packageName>' show

Package: <packageName>@<defaultVersion>

(instead of  "Package: <packageName>" )

The default version is the version number of the version record
that acts as the source for exports, implies, long description, etc.
It is the local record (in which case, we will show "@local" to be
more clear); if there is no local record, it is the highest semver mainline
record (ie: not a pre-release) and if *that* doesn't exist, it is just
the highest semver record that we have.

Test Plan: self-test show --slow

Reviewers: glasser

Differential Revision: https://phabricator.meteor.io/D8
2015-01-13 13:53:22 -08:00
ekatek
c2228e669d In 'meteor show', display the list of packages implied by a package/version.
Implied exports are part of the package's exports, especially for an umbrealla
package like 'meteor-platform' or 'cfs:standard-packages'. However, we can't
tell you the exact exports (ex: "Mongo") without running the constraint solver
(because we don't know what version of the implied package you will end up with).

Showing implies also makes umbrella packages like 'meteor-platform' and
'cfs:standard-packages' more obvious -- the user can tell what is going on with the
package much better.

This change also includes:
  - rewrite of the 'meteor-platform' README.md. Don't list the implied packages in this
  README.md, since we won't keep (and haven't kept) it up to date reliably. Tell the user
  to run 'meteor show' instead. (Also the listing doesn't look good with 'show', but that's
  tangential)

  - some refactor of commands-packages-query.js. Introduce a base class of PkgDatum which can
  store data that needs more processing, such as exports, implies, etc. Get other classes
  to inherit from it, and use it to store package dependencies.

Reviewed here: https://phabricator.meteor.io/D5
2015-01-13 13:53:22 -08:00
ekatek
035e95d154 remove the packages from the README
After some consideration, we decided that the extra package list in the README
is not up to date, will never be kept up to date and as such, is actively
unhelpful.
2015-01-13 13:53:22 -08:00
ekatek
2d98e1e195 move list of packages out of the top section of the meteor-platform README.md
Move the list of packages out of the top section of the `meteor-platform` README.md,
because it doesn't play well with `meteor show`. Leave it in the section below for
people that run into the README in some other context (for example, Atmosphere).
2015-01-13 13:53:22 -08:00
ekatek
a43af02152 add help to mention the source of Exports in package show
Specifically, we want to avoid the situation where you run
'meteor show iron:router'
and then spend hours trying to figure out why Meteor can't process
your calls to, for example, BetterRouteController. The answer, of course,
might be that you are several versions behind and your version doesn't have
that export. We do not want to run the constraint solver to figure out what version
you are using; we played around with how to display this data and decided to just
be explicit about it.

My wording is intentionally vague. In reality, we take:
- the local version if one exists OR
- the latest mainline version, which a non-pre-release non-unmigrated(?) version.
- the latest version that we are showing iff there is no mainline version.
- for releases, we take the latest recommended version

This set of rules is much more complicated than the reality. The reality is pretty
intuitive. We don't want to dwell on what these rules are, just get the general idea across.
2015-01-13 13:53:21 -08:00
ekatek
171b2c4eaf cosmetic changes to package skeleton
Some cosmetic changes to the package skeleton:
- Move version to the top
- Move git up and write a comment explaining it. Now the
  comment for documentation no longer dominates the stanza!

These are arranges from most to least optional (in some sense).
The documentation is considered the most optional because removing that
line doesn't remove the documentation: the line is mostly there for
an override. I think this makes sense.
2015-01-13 13:53:21 -08:00
ekatek
4f5fdbfac2 minor edits to the output of 'meteor show'
- Package: <name>@<version> rather than
  Package: <name>
  Version: <version>
  in the version output

- Remove the summary line from version output.
  Move 'Published by' to the bottom as a separate line.

- Move git up.

The impetus behind these changes is to reduce the size of the header on 'meteor show'.
We thought that the long paragraph of "Foo: Bar" type things was too overwhelming.

Some more changes:

- Clean up an extra line that comes up when printing the description sometimes.

- Add 'This package version is built locally from source' to the message about versions
  available on the server.

- For releases, process the "non-recommended versions have been hidden message" for the single-hidden-version
  case, in the same way that we do for packages.
2015-01-13 13:53:21 -08:00
ekatek
064580b553 show implied packages
In 'meteor show', display the list of packages implied by a package/version.

Implied exports are part of the package's exports, especially for an umbrealla
package like 'meteor-platform' or 'cfs:standard-packages'. However, we can't
tell you the exact exports (ex: "Mongo") without running the constraint solver
(because we don't know what version of the implied package you will end up with).

Showing implies also makes umbrella packages like 'meteor-platform' and
'cfs:standard-packages' more obvious -- the user can tell what is going on with the
package much better.
2015-01-13 13:53:21 -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
5bba62e1f2 display exports for packages in ‘meteor show’
Contains:
- method to aggregate exports for a package in packageSource (exports are per-architecture).

- get this data from packageSource in PackageQuery for ‘meteor show’. Don’t store it in the
local catalog — while it is not a particularly expensive operation, it is still more expensive
than a simple lookup. We really do care about minimizing any sort of computation when we
are initializing packages, since we want the tool to be fast.

- display the data in ‘meteor show’. It makes sense to line wrap this with the ‘Exports:’ label as a
bulletPoint (just look at the test to see an example where this improves user experience). Since we
are doing that, we might as well use that bulletPoint functionality on the other labels as well.

- There is also a test. Run ‘meteor self-test show’ to test, or run ‘meteor show’ on a local package
with exports.

The Troposphere counterpoint to this is: meteor/troposphere#5
2015-01-13 13:53:21 -08:00
ekatek
a66bb6b10d enable meteor show w/o arguments
This is a thing that I wanted to try -- running 'meteor show' in a
package directory shows you that version's data.
- You might want to run 'meteor show' to get export or dependency
  information on a local package, instead of looking through the
  package.js file.

- Before publishing your package, or updating its metadata, you might
  want to make really sure that its longform description looks good
  in 'meteor show'. Hopefully it does! I would want to check.

Running 'meteor show <name>@local' from a package directory feels
slightly janky to me.
- Other commands in the publiction workflow read 'package.js' to figure
  out your package name. It feels weird to type it out.
- Many package names don't correspond to the directory name. It is good
  to help the user spend less time inspecting package.js files for
  obvious information.

This has bothered me a lot during testing, which is not a normal workflow.
I might be somewhat biased here, in a way that normal users would not be.

There is a minor inefficiency around retrieving a local version record twice,
but I think that it is worth it for code simplicity/readability/etc.
2015-01-13 13:53:21 -08:00