How do you downgrade the meteor tool from 1.4 to 1.3?

I want to publish a new version of a package with binary dependencies to use in a few apps I’m still running on 1.3, but I can’t publish (getting errors) because meteor publish uses the 1.4 tool and node 4 and all.

Anyone know how to run the 1.3 version of the meteor tool?

Note: I’m not trying to downgrade the meteor version I’m using for an app (that’s still at 1.3.5.1) – this is for the purposes of publishing a package to Atmosphere using the 1.3 tool and the build farm.

Have you tried

cd $HOME/.meteor
ln -s packages/meteor-tool/1.3.5_1/mt-os.osx.x86_64/meteor meteor1351

and then invoking $HOME/.meteor/meteor1351 in your project?

I’ll give it a go and post back here. Thanks for the tip.

EDIT:

No, same error. Looks like it’s still going for the 1.4 tool. This is the first of a long list of errors:

babrahams:accounts-ldap: updating npm dependencies -- ldapjs, connect...
=> Errors while initializing project:         
                                              
While loading package npm-bcrypt@0.7.8_2:
error: Command failed:
/Users/babrahams/.meteor/packages/meteor-tool/.1.4.1_1.i4ow0g++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/npm
rebuild --no-bin-links --update-binary
../src/bcrypt_node.cc:54:18: error: no member named 'Dispose' in
'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraits<v8::Function>
>'
callback.Dispose();

If you want to publish a package with an old tool, use “meteor --release X publish …”

That actually loads up the old tool code and does the publish.

2 Likes

Thanks so much @sashko. That’s what I was after. I didn’t realize you could use the --release flag to run any of the meteor commands (I thought it was just for running projects on different releases).

All published and working again. Joy has returned to my life. :slight_smile:

2 Likes

@sashko Will I need to publish the package for 1.3 in order to run it locally? I get this:

 $ TEST_WATCH=1 ~/.meteor/packages/meteor-tool/1.3.5_1/mt-os.osx.x86_64/meteor test-packages --driver-package dispatch:mocha --port 6000 ./
[[[[[ Tests ]]]]]

=> Started proxy.
=> Started MongoDB.
=> Errors prevented startup:

   While loading package npm-bcrypt@0.7.7:
   error: Command failed:
   /Users/Johan/.meteor/packages/meteor-tool/.1.4.1_1.8maxzh++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/npm
   rebuild --no-bin-links --update-binary
   ../src/bcrypt_node.cc:118:18: error: no member named 'Dispose' in
   'v8::Persistent<v8::Function,
   v8::NonCopyablePersistentTraits<v8::Function> >'
   callback.Dispose();
   ~~~~~~~~ ^
   ...

I don’t depend explicitly on bcrypt in package.js, and I’m having api.versionsFrom('1.2.0.2').

I’m seeing many references to the 1.4 version of the tool:

/Users/Johan/.meteor/packages/meteor-tool/.1.4.1_1.8maxzh++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/node

It works when I’m creating a test app (1.4.1.1) in the package, symlinking in the package into the app’s packages dir, and run (from the app root):

TEST_WATCH=1 ~/.meteor/packages/meteor-tool/1.3.5_1/mt-os.osx.x86_64/meteor test-packages --driver-package dispatch:mocha --port 6010 package:name

But still not when standing in the package root:

meteor test-packages --driver-package dispatch:mocha ./

Have you tried:

meteor --release 1.3.5.1 test-packages --driver-package dispatch:mocha ./

and

TEST_WATCH=1 meteor --release 1.3.5.1 test-packages --driver-package dispatch:mocha --port 6000 ./

That’s what Sashko recommended to me and it works perfectly. The commands get run using the 1.3.5.1 version of the tool.

3 Likes

Worked better now, thanks!

1 Like