iron-router with Meteor 0.9 packaging system - meteor

The readme file of iron-router states
IMPORTANT: Do not install versions 0.9.0 or 0.9.1 from Atmosphere. These versions are intended for the new Meteor packaging system available in Meteor v0.9.0. iron-router 0.9.x was released by mistake to Atmosphere.
Does this mean I can't install iron-router with the new packaging system at all? Do I have to use Meteorite for this?
meteor add iron:router
... will install the the wrong version from Atmosphere, am I right?

This was for the old packaging system - Atmosphere was the unofficial package system prior to Meteor 0.9. The command you typed will install the newest version of Iron Router to your Meteor 0.9.x app.

Related

Meteor Atmosphere/Core Package Dependency Resolution Override (jquery, iron-router, blaze)

I have a meteor application with the following packages:
$ meteor list
accounts-password 1.5.3 Password support for accounts
accounts-ui 1.3.1 Simple templates to add login widget...
blaze-html-templates 1.1.2 Compile HTML templates into reactive...
ecmascript 0.14.2 Compiler plugin that supports ES201...
es5-shim 4.8.0 Shims and polyfills to improve ECMAS...
fourseven:scss 4.12.0 Style with attitude. Sass and SCSS ...
iron:router 1.1.2 Routing specifically designed for Me...
jquery 1.11.11* Manipulate the DOM using CSS selec...
meteor-base 1.4.0 Packages that every Meteor app needs
mobile-experience 1.0.5 Packages for a great mobile user exp...
mongo 1.8.1 Adaptor for using MongoDB and Minimo...
reactive-var 1.0.11 Reactive variable
shell-server 0.4.0 Server-side component of the `meteor...
standard-minifier-css 1.6.0 Standard css minifier used with Mete...
standard-minifier-js 2.6.0 Standard javascript minifiers used w...
tracker 1.2.0 Dependency tracker to allow reactive...
typescript 3.7.5 Compiler plugin that compiles TypeSc...
* New versions of these packages are available! Run 'meteor update'
to try to update those packages to their latest versions. If your
packages cannot be updated further, try typing
`meteor add <package>#<newVersion>` to see more information.
The atmosphere package jquery is available with version 3.0.0. I had that until installing iron-router. I was able to successfully get iron-router installed by following this advice: https://forums.meteor.com/t/iron-router-jquery-dependency/51374 (specifically meteor add iron:router --allow-incompatible-update).
I'd like to use the newer 3.0.0. I don't get the impression there is any true incompatibility within iron-router.
However, if I try to add it, I get:
$ meteor add jquery#3.0.0
-error: Conflict: Constraint jquery#1.0.0 is not satisfied by jquery
3.0.0.
Constraints on package "jquery":
* jquery#3.0.0 <- top level
* jquery#1.11.9 || 3.0.0 <- blaze 2.3.4 <- accounts-base 1.5.0 <-
accounts-password 1.5.3
* jquery#1.11.9 || 3.0.0 <- blaze 2.3.4 <- blaze-html-templates
1.1.2
* jquery#1.0.0 <- iron:dynamic-template 1.0.12 <- iron:controller
1.0.12 <- iron:router 1.1.2
* jquery#1.0.0 <- iron:location 1.0.11 <- iron:router 1.1.2
Initially, I had a hard time seeing where it was getting 1.0.0 from for the iron:* dependencies since there was no explicit version listed:
https://github.com/iron-meteor/iron-dynamic-template/blob/devel/package.js#L14
https://github.com/iron-meteor/iron-location/blob/master/package.js#L13
Then I found this in the documentation for api.versionsFrom(meteorRelease):
Use versions of core packages from a release. Unless provided, all packages will default to the versions released along with meteorRelease. This will save you from having to figure out the exact versions of the core packages you want to use. For example, if the newest release of meteor is `METEOR#0.9.0 and it includes jquery#1.0.0, you can write api.versionsFrom('METEOR#0.9.0') in your package, and when you later write api.use('jquery'), it will be equivalent to api.use('jquery#1.0.0').
So that seems to be what is happening -- jquery#1.0.0 was tied to METEOR#0.9.2.
So... aside from the option of checking out the iron-* packages into my local project as custom packages to override the api.versionsFrom(meteorRelease) in a custom fork to a modern release (or rather specify a specific jquery version since I believe it is no longer a core package)... is there any way forcefully update to jquery#3.0.0 despite what it thinks is a conflict?
Unfortunately --allow-incompatible-update does not seem to work in this instance.
This a bit of opinionated but if you want to have a router without dependencies to outdated packages you should go with ostrio:flow-router-extra which allows you even to omit jQuery or install jQuery using the npm package.
Since Meteor 1.8.3 there is also no hard dependency between Blaze and jQuery, allowing to install the latest jQuery from npm registry, which is important from a security perspective.
Check out:
https://github.com/VeliovGroup/flow-router
https://github.com/meteor/meteor/blob/devel/History.md
Use #= to install a specific pkg version. You'll need to remove the npm jquery pkg if you downgrade.
meteor add jquery#=1.11.11
meteor npm remove jquery
meteor add iron:router

chocolatey: meteor v0.0.2 is the latest version available based on your source(s)

I follow the instructions to install meteor 1.6 on Windows(10) as stated on Meteor.com (choco install meteor) and it's installed a meteor v0.0.2 ?
When I try to run any meteor command I get: bash: meteor: command not found
and when I try choco upgrade meteor I get:
$ choco upgrade meteor
Chocolatey v0.10.8
Upgrading the following packages:
meteor
By upgrading you accept licenses for the packages.
meteor v0.0.2 is the latest version available based on your source(s).
Chocolatey upgraded 0/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
I tried choco uninstall meteor and then reinstall choco instlal meteor but same issue. Searching around online a little I found this page:
https://chocolatey.org/packages/meteor
I do have meteor installed and running on version 1.6.0.1 on Window 10's Ubuntu bash which was installed via curl https://install.meteor.com/ | sh
Following on from above post https://stackoverflow.com/a/47967277/642729 by Gary Ewan Park. The below comment on https://chocolatey.org/packages/meteor clarifies the Chocolately/Meteor versioning
The current version of Meteor is 1.6;
is this the version in the 0.0.2 Chocolatey package?
[Garrie Powers • 2 months ago]
The version number of the Chocolatey package is the version of the installer.
Meteor is unique in the way it works in that all versions
are capable of springboarding to other versions.
Therefore, in the same way as the Unix installer installs the latest version,
the Chocolatey installer will always install the latest version.
So at this exact moment, the answer to your question is "yes"!
[Jesse Rosenberger Garrie Powers • 2 months ago]
The best advice would be to reach out to the maintainers of that package of chocolatey.org. This can be done by clicking on the "Contact Maintainers" link of this page:
https://chocolatey.org/packages/meteor
It would seem that the creators of the application, also own the Chocolatey package, so hopefully they will get back to you.
From the official installer github:
The version of this Meteor installer is not to be confused with Meteor itself. Meteor, once installed, will always "springboard" to (download, install and run) the correct version of Meteor necessary for the application being executed.
...
When necessary, specific versions of Meteor can be installed using
Chocoloatey's --params argument which will download that specific
version from Meteor's installation server. For example, to install
Meteor 1.5.4.4:
C:> choco install meteor --params="'/RELEASE:1.6.0.1'"
Note: Prior to
Meteor 1.6, 64-bit versions were not available. Therefore, in order to
install versions prior to Meteor 1.6, you'll also need to pass
Chocolatey's --x86 option when running choco install on 64-bit Windows
platforms. For example:
C:> choco install meteor --x86 --params="'/RELEASE:1.5.4.4'"

Meteor check available versions available for atmosphere js package

Is it possible to check all available versions of an atmospherejs package?
For example, I am trying to install the twbs:bootstrap#=4.0.0-alpha.4 following their github page
But this does not install giving error:
no such version twbs:bootstrap#=4.0.0-alpha.4
Hence I am looking to find a way to check which versions are available for any given atmospherejs meteor package.
You can use
meteor show twbs:bootstrap
or
meteor show --show-all twbs:bootstrap
for older or pre-released versions. Latest available version is 4.0.0-alpha2

Meteor: GraphicsMagick not installing, probably a very simple issue

I'm wanting to try out the "gm" node package. I've currently got node-gd installed and want to see what gm offers.
I'm using Meteor 0.9.0.1 and this is my packages.json file:
{
"node-gd":"0.2.3",
"gm" :"1.16.0"
}
I ran "meteor update" .... It didn't install, so I guess I've done something wrong.
me#ubuntu:~/myapp$ meteor update
Refreshing package metadata. This may take a moment.
Refreshing package metadata. This may take a moment.
upgraded autoupdate from version 1.0.4 to version 1.0.5
upgraded less from version 1.0.5 to version 1.0.6
myapp: updated to Meteor 0.9.0.1.
All your package dependencies are already up to date.
Can anyone advise how to install this?
I think you need meteorhacks:npm
meteor add meteorhacks:npm
meteor
This should trigger the installation of the npm modules. Of note may be the new notation is Meteor.npmRequire and no longer Meteor.require

meteorjs packages not visible

I'm new to meteor. I just created an app and install bootstrap and iron-router via mrt.
When I look at the file structure, I can see iron-router but not bootstrap (I don't see all the other pre-installed packages either).
When I run the app, everything works fine though. But I need to see these packages to understand what's happening.
Thanks,
There are two types of packages in Meteor projects. 'official' packages and unsupported community packages (from atmospherejs.com)
The mrt package manager wasn't built by the Meteor Core development team (as of v0.8.1). The packages from atmosphere will be installed in /packages
The other packages which are officially part of Meteor are not visible here but they are used from ~/.meteor/packages. Alternatively you can browse the source of them here: https://github.com/meteor/meteor/tree/devel/packages.
Eventually meteorite and meteor will be merged. Even though Meteorite installs these community packages for you, it looks like when it is folded into meteor it will remain this way (installing into /packages).
So in short, the 'official' packages aren't installed in /packages because they are available in all meteor distributions, whereas the unsupported ones from atmosphere need to be downloaded for the project in question into /packages.

Resources