Now users can put _id into their documents prior to insert, and insert() will
respect that. This is useful if you want to write any Meteor Method that inserts
documents -- it allows you to have the same ID on both client and server, so you
don't get flicker when the server document wins
The use of path.sep is incorrect because req.url is a URL, not a file
path, and so always contains forward slashes.
I verified that the original code does not work on Windows and that
the new code does.
This branch:
- Updates fibers to 1.0.0, which hopefully fixes crash/stack overflow
issues. This version stops exporting a global 'Fiber' object which
means some server code needs to do some more requires.
- Updates uglify-js to (a Meteor bugfix fork) off of 2.2.3. This is a complete
rewrite of Uglify and appears to fix infinite recursion bugs that were
discovered on the engine branch and while investigating lodash. We also now
are able to minify all code in one pass instead of as separate pieces.
- Stops using a Meteor bugfix fork of fstream, because they have taken our
fork. This also affects the nested copy used by tar.
This definitely won't "work" because both have API changes.
UglifyJS 1 was having issues minifying certain code (eg lodash). But UglifyJS 2
was occasionally segfaulting (as was other code using large regexps). See the
bottom of https://github.com/laverdet/node-fibers/issues/89
Hopefully this will fix it.
Instead of a general client-side sub de-duping mechanism (which mostly existed
for the sake of autosubscribe, and causes issues with server-driven
unsubscribes), make Meteor.subscribe explicitly aware of reactivity.
Expose an "invalidated" flag on Meteor.deps.Context.
Guarantee that invalidation callbacks from different contexts will not be
interleaved at flush time. This has the implication that if you do
context1.onInvalidate(function () {
context2.invalidate();
});
and this is the only way to invalidate context2, then context2's invalidation
callbacks will not be called until after *ALL* of context1's callbacks are
called. This allows us to be sure that the "unsubscribe, unless autorun tried to
re-create an identical sub" logic runs after the autorun function is rerun.
The previous version only killed the wrapper bash script, not the child. We now
work around the broken (socketpair) stdin presented to Node's child processes by
using a bash heredoc rather than "cat |"; this means we can use exec, which only
gives us one process to clean up.
While we're at it, simplify code by switching from child_process.spawn to
child_process.execFile, which does the work of capturing stdout and setting a
timeout for us automatically.
Originally from https://github.com/meteor/meteor/pull/569
Reworked to:
- apply to soma.png, not soma.jpeg (file was previously misnamed).
- don't touch bootstrap's glyph image. It would cause conflicts later, and is not neighborly.
Taken from the Bootstrap homepage: "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
Nitpick. There's no such thing as a "UX framework", and Bootstrap also provides more than just UI widgets, so I figured it would probably be best to just use the same description Twitter chose.