Commit Graph

104 Commits

Author SHA1 Message Date
David Glasser
0562466ad4 Rename upgraders file to .finished-upgraders
The idea is that dotfiles in .meteor (like .id and .finished-upgraders)
aren't intended to be human-editable, whereas packages, release,
and versions are (although there are commands to edit them too).
2014-08-25 21:21:43 -07:00
David Glasser
08f0a3bab0 Fixes to unforced update to not-quite-last release
Make sure that project._ensureDepsUpToDate does not get run mid-update,
since it might decide that various things are not compatible with the
packages in the current release. When the update command runs the
constraint solver explicitly, it passes ignoreProjectDeps, but implicit
calls can lead to an unhappy process.exit.
2014-08-25 17:25:08 -07:00
David Glasser
5b92dfd85f "better" error handling for compiler constraints
This before was just an uncaught exception. Now it's exit(1), which is
bad too.  This should just use buildmessage, but for some reason that
doesn't work here.
2014-08-25 11:17:57 -07:00
David Glasser
d4280a22eb make "no compatibile build" error not bracketed
this function needs to be rewritten, but not today
2014-08-24 20:18:43 -07:00
David Glasser
a8e8995c91 Support comments in .meteor/.id file
Make project.rootDir be absolute in 'meteor create'
2014-08-22 18:04:24 -07:00
David Glasser
412033f7c4 Support comments in .meteor/.id 2014-08-22 17:54:44 -07:00
David Glasser
c4948d8dff rename .meteor/identifier -> .meteor/.id 2014-08-22 17:31:21 -07:00
David Glasser
f1a50bbc93 show stack if error is unexpected 2014-08-21 10:48:20 -07:00
David Glasser
e98cd49b3b A more specific error for nonexistent package
This helps with #2410 though that particular case doesn't work since
paths are explored in a bad order.
2014-08-20 23:21:30 -07:00
ekatek
b29a4cc439 more detaled wip on name coming from package.js 2014-08-19 12:32:16 -07:00
David Glasser
b6955a3899 Move towards non-singleton catalog.complete
We're going to make uniload use a different flavor of "complete" catalog
soon.  So we need to reduce the number of singleton-ish references to
it.

Also, we need one PackageCache per catalog, so stop it from being a
singleton too.
2014-08-13 18:11:46 -07:00
David Glasser
66f21a64a2 add newline to identifier file 2014-08-12 14:57:36 -07:00
David Glasser
64d939acb2 Add a lot more buildmessage captures
Many of these (mostly in top level commands in commands-packages.js) are
not super well thought out: they use a new "doOrDie" helper to run some
function in a capture and exit if there are any messages.  We really
need to get a little more thoughtful about the big picture of error
handling (combining "build" errors, network errors, catalog errors,
etc). But this at least allows the addition of more buildmessage
assertions.

At the very least, this ensures that if you edit a package.js in a local
package while "meteor run" is running, that instead of crashing the tool
it properly shows the buildmessage and lets you fix the issue.
2014-08-11 17:06:28 -04:00
David Glasser
6dd5dc84f5 project._ensurePackagesExistOnDisk -> trophouse
Now called downloadMissingPackages. The function did not actually do
anything project-related.
2014-08-07 22:57:49 -07:00
David Glasser
671c82e618 Print package downloads except background updater
Before, there were some random contexts (like 'test-packages') which
didn't print downloads. Now, the default is printing, and the exception
is the automatic background updater.

(Some of these bulk contexts should probably set silent and print their
own progress bar.  And maybe even do paralellism...)

Generally clean up the tropohouse.maybeDownloadPackageForArchitectures
interface. Change it to take options, remove the vestigial return
value (though really, there needs to be better error handling...)
2014-08-07 16:27:23 -07:00
ekatek
bcf85a42b9 don't print out add messages when no versions file present 2014-08-05 13:10:56 -07:00
Matthew Arbesfeld
8bcbd65344 Separate "browser" target into web.browser/cordova
Cordova projects often have a different set of files than web targets,
so we would like to be able to target different client architectures in
our bundles. Ideally, we allow the user to use arbitrary client
architectures - but this patch is a step in the right direction by
abstracting out more of the hard coded "browser"/"os" lines.

We accomplish this separation in a backwards compatible way by allowing
api.___ commands to target a "client" architecture. For example,
api.addFiles('a.js', 'client') adds 'a.js' to both the 'client.browser'
and 'client.cordova' targets.

Effects on 0.9 packaging stuff: packages don't have to change, but the
"data.json" file in ".meteor0" has "browser" in some places. We think we
have to fix the troposphere code where this data.json is created.

Some plugins will also be backwards-incompatible with this change, since
many have a "clientArch.matches("browser")" line in the plugin
code. Ideally, we fix plugins so that this stops being an issue, but for
now package authors can just patch that line.

At the compiled (unipackage) level the new names are 'web.browser' and
'web.cordova', replacing 'browser'. In package.js, the new names are
'client.browser' and 'client.cordova', serving as an adjunct to 'client'.
2014-07-31 14:12:15 -07:00
David Glasser
06a7dc90b5 Add many buildmessage.capture/assertInCapture
Moving towards a world where all things that might invoke buildmessage.error are
encouraged to be in a buildmessage.capture.

This commit is the answer to the question "how many small changes need to be
made to add buildmessage.assertInCapture to PackageCache.loadPackageAtPath?"

Next steps include:
 - Making catalog.resolveConstraints ALWAYS buildmessage.assertInCapture
   (not just when ignoreProjectDeps isn't passed)
 - Then changing resolveConstraints to complain using buildmessage
 - Removing the process.exit(1) in _ensureDepsUpToDate
 - Adding a more structured way to ensure that most commands
   call _ensureDepsUpToDate at an unsurprising location
2014-07-30 22:16:21 -07:00
ekatek
a58f2c3bb2 mark some mroe tests as net with comments; first pass on making it ... exit, instead of craash in ensureDeps. Next up, maybe it can do something better than process.exit 2014-07-25 15:34:54 -07:00
David Glasser
a7cbc3bd87 minor remove improvements 2014-07-24 16:49:12 -07:00
David Glasser
21b8e452a7 get rid of skipPackages
- in add, we actually do want to know the added version
- in remove, there's a distinction between truly dropping the package
  and just dropping the top level constraint
2014-07-24 16:41:35 -07:00
David Glasser
ea7afca05f use skipPackages consistently 2014-07-24 16:31:59 -07:00
David Glasser
1591e076e9 spell onDiskPackages consistently
(Have not checked to see that the feature actually works)
2014-07-24 16:31:38 -07:00
David Glasser
6850b679e9 fix bug in 'meteor add x@=1.0.0'
Used to print a "avoid conflicting dependencies" message. Now doesn't.

Start moving some uses of splitConstraint to parseConstraint
2014-07-24 16:21:25 -07:00
ekatek
127e1f5a79 fix the update with --release behavior 2014-07-14 17:50:22 -07:00
ekatek
4ff1452452 download packages for publish-release and ability to mute output 2014-07-07 17:26:23 -07:00
David Glasser
f980ceb685 don't crash on addPackages/removePackages 2014-06-30 16:53:43 -07:00
David Glasser
6d4767d471 fix minor bugs 2014-06-26 13:52:26 -07:00
ekatek
822f8fa2da more error handling and reporting on package changes & downloads 2014-06-25 23:36:03 -07:00
ekatek
7d9a2ff6f3 put some try/catch blocks around maybeDownloadPackageForArchitectures. Not sure that this is the best plan? 2014-06-25 22:44:13 -07:00
Emily Stark
ecff10c23e 'springboard' selftest passes. 2014-06-25 22:16:55 -07:00
ekatek
8d6ffd57f2 don't use both explicit & forced; actually merge correctly 2014-06-25 11:50:38 -07:00
ekatek
aef7993c85 don't write versions when running with --release, forgot to commit last night 2014-06-25 11:42:49 -07:00
Emily Stark
4b58ba4d99 A steaming pile of hacks to get report-stats test passing. 2014-06-25 11:12:12 -07:00
David Glasser
a8676061e5 whenever bundling, ensure packages downloaded
specifically... for the bundling arch!

also, whenever running the project constraint solver, make sure
that (host) packages exist even if the versions haven't changed!
2014-06-24 20:13:07 -07:00
David Glasser
e0852a5928 make references to packageloader consistent 2014-06-23 22:24:44 -07:00
ekatek
73e737d30f some buildmessages around things and also actually fixing the programs require versions bug 2014-06-18 18:54:00 -07:00
David Glasser
0a66d06dbf project and selftest 2014-06-17 17:33:56 -07:00
David Glasser
2e5adc2659 fix autoupdate test
also fixes a bunch of other stuff like:

- parseStack markTop works again (so you get the right line numbers in
  self-test)

- you can (with appropriate env var) run apps with NO PACKAGES at
  all (even ctl)

- more consistently refer to METEOR-CORE@ releases as "Meteor 1.2.3"
2014-06-17 14:26:29 -07:00
ekatek
e41f2238a4 amended comment to explain that we use this weird design pattern 2014-06-11 18:06:38 -07:00
ekatek
bb0dfc112f better messages around add&remove&upgrade 2014-06-11 16:13:41 -07:00
David Glasser
d3ca5b0497 print when downloading packages in foreground
would rather have a progress bar but that involves restructuring the
download code and that should wait until we rename builds or something
2014-06-11 14:41:46 -07:00
David Glasser
6d3257909d test-bundler-assets passes 2014-06-10 19:13:48 -07:00
David Glasser
286023adfe move getLines from utils to files 2014-06-10 18:09:56 -07:00
David Glasser
a1b3014e36 Implement upgraders and notices
They are the same!
2014-06-10 18:08:50 -07:00
ekatek
ab839d4520 merging changelog changes 2014-06-10 16:57:06 -07:00
ekatek
2b424e96e5 patch releases and update packages 2014-06-05 22:07:24 -07:00
David Glasser
0ca66e0761 some minor fixes we noticed 2014-06-03 14:37:11 -07:00
ekatek
2ddc63e538 project safeToUse to solve infinite loops in tests 2014-05-28 18:16:12 -07:00
ekatek
831967dd60 cleanup of merge 2014-05-28 16:10:29 -07:00