Geoff Schmidt
20efd73f98
New plugin API. Reimplement old add_extension API on top of new API for backcompat.
2013-05-13 11:52:43 -07:00
Geoff Schmidt
c599601ccf
Refactor to create a concept of a serializable Plugin that can be loaded into a host nodejs process, and can be used for both general-purpose unipackage loading (eg, for DDP) and for bundler plugins.
2013-05-13 11:52:43 -07:00
Geoff Schmidt
193adbea59
Break local build info (eg, file dependencies) out into separate file, so that it will be easier to strip when publishing packages
2013-05-13 11:52:43 -07:00
Geoff Schmidt
a61fd1bf14
small cosmetic change
2013-05-13 11:52:42 -07:00
Geoff Schmidt
11819d4344
Detect npm dependencies that contain non-portable binary modules, and set the package arch appropriately (ultimately resulting in the generation of a star with a non-portable target)
2013-05-13 11:52:42 -07:00
Geoff Schmidt
8f42ce1434
Implement a real architecture system ('native.linux.x86_64' rather than 'server'). Add 'meteor rebuild-all' command.
2013-05-13 11:52:42 -07:00
Geoff Schmidt
675027fe93
Rebuild packages if they are moved, even if nothing else has changed (to pick up changes to the absolute paths encoded in the file dependency info)
2013-05-13 11:51:53 -07:00
Geoff Schmidt
d5e0313ff7
Replicate error message improvement from devel
2013-05-13 11:51:53 -07:00
Geoff Schmidt
9931898d22
Patches to make livedata load from non-server nodejs
2013-05-13 11:51:53 -07:00
Geoff Schmidt
54ca2a4463
Fix typos in bundler that prevented normal bundling
2013-05-13 11:51:53 -07:00
Geoff Schmidt
2c1b297dc1
Facility for including unipackages from non-Meteor-built command-line nodejs programs (eg, 'meteor'). Does not fully duplicate the server environment (specifically, does not provide a HTTP server) so livedata does not yet load.
2013-05-13 11:51:53 -07:00
Geoff Schmidt
78212bff0e
Eliminate dead code
2013-05-13 11:51:53 -07:00
Geoff Schmidt
4eec2ec057
Make watch.stop() kill timers.
2013-05-13 11:51:53 -07:00
Geoff Schmidt
f102598c6f
For faster startup, don't let run.js flush the package cache until first reload.
2013-05-13 11:51:53 -07:00
Geoff Schmidt
503a84a3aa
Compile and save packages to Unipackage format for faster startup. Move npm processing to package build time. Let npm dependencies vary per-slice (eg, don't include npm packages used only by tests in non-test builds) -- implemented on disk but not yet exposed via API.
2013-05-13 11:51:53 -07:00
Geoff Schmidt
e26732d3dd
Factor out bundle file-handling logic into new Builder class
2013-05-13 11:51:52 -07:00
Geoff Schmidt
4a92dff8da
Get rid of roles completely and replace them with named slices. A package can have any number of slices and can define a default set of slices to include on each architecture, as well as a set of slices to use to set each architecture.
...
Also regularize how we handle file extensions -- no leading dots anywhere.
2013-05-13 11:51:52 -07:00
Geoff Schmidt
b2b8e4c2f4
make compile/link logic self-contained inside Slice
2013-05-13 11:51:52 -07:00
Geoff Schmidt
6fc6bf1dca
Packages are modeled as a set of separately-compilable Slices
2013-05-13 11:51:52 -07:00
Geoff Schmidt
cb064eca31
Rewrite bundler and redesign bundle format to support multiple targets. When doing Npm.require on the server, don't infer the node_modules path from the path to the file; read that information out of bundle metadata.
2013-05-13 11:51:52 -07:00
Geoff Schmidt
9d8354b429
Library cleanups/simplifications
2013-05-13 11:51:52 -07:00
Geoff Schmidt
78a31231cd
rename Library.flush -> Library.refresh because the old name was confusing
2013-05-13 11:51:52 -07:00
Geoff Schmidt
24682fd7f4
New Watcher implementation (for watching for changed files and determining when to rebundle the app.) Unlike the old DependencyWatcher, it uses absolute paths and contains no Meteor-specific knowledge. Also unlike the old DependencyWatcher, it has comprehensive unit tests (scripts/watch-test.sh).
2013-05-13 11:51:52 -07:00
Geoff Schmidt
7477cd48fd
Unbreak bundler tests
2013-05-13 11:51:52 -07:00
Geoff Schmidt
aaa0e9be5d
change inchworm_style to camelCase in a few files
2013-05-13 11:51:52 -07:00
Geoff Schmidt
1266e5278e
Don't write bundle dependencies (files to monitor) to disk. Just plumb them through in memory from the bundler to the runner.
2013-05-13 11:51:52 -07:00
Geoff Schmidt
57db17dde0
Only create one Library. Flush it when the runner detects changes, not at bundle time, because that makes more sense.
2013-05-13 11:51:52 -07:00
Geoff Schmidt
54e43f511e
Library refactorings. preload becomes override. flush() reloads preloaded/overridden packages along with everything else.
2013-05-13 11:51:51 -07:00
Geoff Schmidt
43c29fbd0b
move Library into its own file
2013-05-13 11:51:51 -07:00
Geoff Schmidt
0823323cbe
Packages have a Library. This simplifies things considerably
2013-05-13 11:51:51 -07:00
Geoff Schmidt
64a01102da
factor more logic into Library
2013-05-13 11:51:51 -07:00
Geoff Schmidt
67356c0988
continue factoring out Library
2013-05-13 11:51:51 -07:00
Geoff Schmidt
562490b776
bundler takes a library
2013-05-13 11:51:51 -07:00
Geoff Schmidt
a7eae9eb71
further refactor toward Library
2013-05-13 11:51:51 -07:00
Geoff Schmidt
bb07daa25e
continue refactor toward Library
2013-05-13 11:51:51 -07:00
Geoff Schmidt
5b2523aa18
refactoring toward Library
2013-05-13 11:51:51 -07:00
David Glasser
ede68cd027
bundle NPM modules correctly.
...
tests mostly pass.
2013-05-13 11:51:51 -07:00
David Glasser
c628854bc8
hashes
2013-05-13 11:51:51 -07:00
David Glasser
3fcde01908
don't update NPM in warehouse
2013-05-13 11:51:51 -07:00
David Glasser
bff6101ad5
fix a bug
2013-05-13 11:51:50 -07:00
David Glasser
5b6bc3f29c
update bundler.bundle API to use packageSearchOptions and releaseStamp
2013-05-13 11:51:50 -07:00
David Glasser
1ed8392a31
we don't think we need .call
2013-05-13 11:51:50 -07:00
David Glasser
28cf05e2d7
noMinify -> minify
2013-05-13 11:51:50 -07:00
David Glasser
c9b988cc62
export sha1
2013-05-13 11:51:50 -07:00
David Glasser
471ffd430b
check in geoff's version of bundler.js
2013-05-13 11:51:50 -07:00
David Glasser
4838e5a365
resolved conflicts in packages.js.
...
we merged dependencies and metadataFileHashes as dependencyFileShas
2013-05-13 11:51:50 -07:00
David Glasser
6b48e8bd8a
stuff that doesn't have conflicts
2013-05-13 11:51:50 -07:00
David Glasser
6f05a29f0b
Revert the contents of the avital-client-compatibility branch.
...
We will rebase linker on top of this commit, and then re-apply.
2013-05-13 11:49:45 -07:00
Avital Oliver
4284a5ed1d
fix npm tests
2013-05-10 15:00:29 -07:00
Vyacheslav Kim
0893b8258c
Include environment info in every web request.
...
Pass available environment info (Meteor version, OS, etc) in every web
request in User-Agent http header. OS platfrom, release, arch, type
available from node api and Meteor release number.
2013-05-09 11:59:02 -07:00