Commit Graph

28 Commits

Author SHA1 Message Date
David Glasser
dba5933651 Change package/slice separator in various places to colon from dot.
Allow dots in package names.

Change the internal representation of "package specs" inside Slice to be a
{package,slice} object instead of a "spec" string.

library.getSlices now can take EITHER a "spec" string or a {package,slice}
object.

Linker-created slice files also separate the slice name with a colon (so eg, you
get URLs like "/packages/livedata:tests.js" when running package tests).  (Maybe
this should use a subdirectory instead?)
2013-08-12 18:05:34 -07:00
Nick Martin
a9a99ceafd followon to previous commit: actually use whitelist instead of blacklist for package name contents. 2013-08-06 15:55:06 -07:00
Nick Martin
e7bb166a02 Check for invalid package names early in the codepath.
We already don't work with packages that contain '.' in the name, this just moves the error up and makes it clearer.
2013-08-06 15:24:06 -07:00
David Glasser
c1f8c7f0e5 Don't crash if we lack permission to write out .build. 2013-08-02 17:09:43 -07:00
David Glasser
5bd85ccc37 Make support for unipackages in local package dirs explicit, but scary. 2013-08-02 16:53:55 -07:00
David Glasser
17699eb399 Rebuild a package when its dependencies resolve to a different path.
Also simplify a bunch of library code that thought it might have to rebuild
warehouse packages, now that the warehouse contains unipackages.
2013-08-01 12:17:58 -07:00
David Glasser
ecd94142c8 Save to buildinfo the library resolution of all "use"d package.
We call these the pluginProviderPackages because these are the packages that, if
they change, could affect the set of plugins available to this package (and thus
require it to be rebuilt).
2013-08-01 12:17:58 -07:00
David Glasser
1a5d695ee4 fix minor bugs. bundler-test passes! 2013-07-31 22:56:57 -07:00
David Glasser
1b82376b4b in theory, this might work 2013-07-31 22:56:57 -07:00
David Glasser
19012cf58a "meteor list": completely ignore internal packages 2013-07-26 19:33:25 -07:00
David Glasser
4e222d8e26 The standard app packages are brought in explicitly now.
.meteor/packages in new apps now contains "standard-app-packages", which implies
the standard set of packages like mongo-livedata. There is no special-casing in
initFromAppDir.  This line has been added to all the examples, etc.

There's a new concept of "upgraders".  "meteor run-upgrader app-packages" will
add standard-app-packages to the app, as well as all of the package in the app's
packages/ directory (an unrelated change since 0.6.4). This will be integrated
soon with "meteor update"; run-upgrader is essentially for testing.

project.add_package no longer adds packages that are already there.
2013-07-26 19:02:12 -07:00
David Glasser
2f6a5b2193 "meteor rebuild-all" should not try to rebuild warehouse packages.
That's because warehouse packages are now pre-built and have no source tree.

(The existing code didn't work anyway. It iterated over self.releaseManifest
instead of self.releaseManifest.packages, and the "name" and "version" arguments
to the each were reversed. So it was trying to delete directories named ".build"
inside "/Users/glasser/.meteor/packages/de0d7206ad/tools" and
"/Users/glasser/.meteor/packages/packages". Since those directories never
existed, it didn't manage to try to rebuild any packages anyway.)
2013-07-18 11:40:13 -07:00
Geoff Schmidt
058f883a35 Be more conservative about soft library reload.
Only reuse a package if we still intend to be loading
it from the same packageDir.
2013-07-17 00:30:48 -07:00
Geoff Schmidt
b3130558d2 During development, don't reload packages that didn't change.
Saves about 150ms off development reload.
2013-07-16 23:48:10 -07:00
David Glasser
e61c64e26b the path is packages/foo, not package/foo 2013-07-12 10:11:29 -07:00
Geoff Schmidt
b76de57830 The 'programs' directory in an app can be used to
add additional programs to the star. Combine with
an empty 'no-default-targets' file in the root
of the app for total control over the programs
in your star.
2013-05-13 11:56:51 -07:00
Geoff Schmidt
ed18c6ffb5 Comprehensive build-time error reporting system. In particular: if an error occurs, the build will try to continue to identify any other potential problems so that they can be flagged too. Syntax errors are captured and dealt with programmatically, rather than just being echoed to stderr by node. Stack traces are parsed to pull out file and line information, and a distinction is made between the 'user' and 'internal' portions of the stack. All of this is at build time only -- it has not been extended to (run-time) server or browser yet. Also, no source maps yet, though line numbers are computed correctly for units within the linker. 2013-05-13 11:52:43 -07:00
Geoff Schmidt
ec0f3ff595 Port 'meteor' package to use new Plugin API. When a package or an app uses a plugin, include the plugin source files among that target's dependencies. 2013-05-13 11:52:43 -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
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
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
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
aaa0e9be5d change inchworm_style to camelCase in a few files 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