How to add spiderable 1.0.8 to my meteor project? - meteor

Currently the latest public version of the Spiderable package is 1.0.7 (atmosphere link). However on Github the version has been bumped to 1.0.8 (4 days ago).
I need the features from the 1.0.8 update. What's the best way for me to use the 1.0.8 version? I've tried:
meteor add spiderable#1.0.8
But it didn't work, the output was: error: no such version spiderable#1.0.8 .

This version of spiderable has not yet been published by MDG. This is why it says no such version.
While a package is being developed the version may be higher than the version available for use. When it has been tested its usually published along the next meteor version.
There may still be more changes to the package until its published.
If you want to use the package anyway you can copy the spiderable directory from github into a packages/spiderable directory. This may not work with certain dependency errors depending on whether another package using spiderable is required.
The second is to use the github version of meteor. Which is to clone the meteor project using git clone https://github.com/meteor/meteor then use the meteor binary (with the full absolute path) to run your project instead of meteor on its own.

Related

Install a Nuget package ignoring ONE dependency

I'm sure this has been asked before, but I spent almost an hour searchin Stackoverflow and haven't found any answer. Sorry if I missed it.
I need to install a Nuget package without one (just one) of its dependencies.
In particular, I'm adding SignalR to an ASP.NET MVC app and I need to skip jQuery-dependency because I already have it added manually, from a CDN-hosting. Don't need it in my project.
But I need all the other dependencies, and I need them managed by Nuget, not manually. So if the author adds some new dependency to the next version, - like Owin or something, - it will be pulled in automatically.
The only solution I came up with is to install the package with all the dependencies and then run
Uninstall-Package jQuery -Force
Is this ok? It seems a bit "hacky" to me, or is it fine? Are there any other options?
I need to install a Nuget package without one (just one) of its
dependencies.
Not possible currently through Command Line, because Install-Package doesn't have any parameter to skip a particular dependency (as visible in the latest microsoft docs reference).
Use the below command if you want to avoid all of the Dependencies (as you can't skip a particular dependency because it is nowhere quoted in Microsoft Docs):
Install-Package Microsoft.AspNet.SignalR -IgnoreDependencies
Detail about the parameter from Install-Package document from Microsoft:
Install-Package [-Id] <string> [-Version <string>] [-IgnoreDependencies]
[-ProjectName <string>] [-Source <string>] [-IncludePrerelease] [-FileConflictAction]
[-DependencyVersion <dependencyVersion>] [-WhatIf]
IgnoreDependencies : Installs only this package and not its dependencies
Is this ok? It seems a bit "hacky" to me, or is it fine? Are there any other options?
The simple answer is "It depends on the version of jQuery-dependency which you have added manually ".
You will notice that the dependency restrictions of Microsoft.AspNet.SignalR is: jQuery (>= 1.6.4):
So if the version of jQuery which you have installed manually is higher than the version of dependency restrictions of Microsoft.AspNet.SignalR, you can uninstall the jQuery, then install the package Microsoft.AspNet.SignalR. Therefore, your method is feasible.
Note: After install the package Microsoft.AspNet.SignalR, you can update the version of the package jQuery, if you want.
In contrast, the version of jQuery which you have installed manually is lower than 1.6.4 and you do not want to use the high version of that package, you can not do it with your method, otherwise, NuGet will install the jQuery with version 1.6.4 after install the package Microsoft.AspNet.SignalR.
What I ended up doing is install jQuery nuget package and then simply remove files from the /Scripts directory
Now all the jQuery-dependent packages are happy and my project is not bloated with unneeded files

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

Why the Meteor package ian:accounts-ui-bootstrap-3 is behaving differently if is installed as a dependency?

I'm trying to create a Meteor package, which has, as a dependency the package ian:accounts-ui-bootstrap-3. I added the dependency in my package.js like this:
Package.onUse(function(api) {
api.versionsFrom('1.1.0.2');
api.use(['ian:accounts-ui-bootstrap-3'], 'client');
api.addFiles('package-name.js');
});
After I add my package in the console, the following packages are added to the project:
accounts-base added, version 1.2.0
me:my-package-name added, version 0.0.1
handlebars added, version 1.0.3
ian:accounts-ui-bootstrap-3 added, version 1.0.7
localstorage added, version 1.0.3
service-configuration added, version 1.0.4
stylus added, version 1.0.7
The issue is that the accounts system is not working. In the browser I get this error:
Uncaught TypeError: Cannot read property 'push' of undefined
'push' being the property of
Template.__body__.__contentParts
If I add the ian:accounts-ui-bootstrap-3 manually it works fine, I don't get the error. But when I do that, the packages which are installed on the project are a little different:
accounts-base added, version 1.2.0
anti:i18n added, version 0.4.3
ian:accounts-ui-bootstrap-3 added, version 1.2.59
localstorage added, version 1.0.3
service-configuration added, version 1.0.4
stylus added, version 1.0.7
As you can see I don't have handlebars anymore but instead anti:i18n. I tried to install the anti:i18n as a dependency in my package but I got the same browser error.
Can anyone say, what I'm doing wrong and why the package behaves like that when is installed differently (manual vs dependency).
To give you this example I just created an empty package, with only this dependency, so nothing else can affect the number of packages being installed.
Try using 'imply' instead of 'use'. This exposes the package to the global scope. Without much more in details of your problem this is probably most likely to solve the issue (I hope):
api.imply(['ian:accounts-ui-bootstrap-3']);
Instead of
api.use(['ian:accounts-ui-bootstrap-3'], 'client');
I found the issue. When installed as a dependency the package: ian:accounts-ui-bootstrap-3 will install version 1.0.7 which is an old one.
When it is installed manually, it installs version 1.2.59 and this one has the features I want.
So to solve the issue I just specified the needed version in the dependency using '#'.
I think this have to be changed, like when you install a package via a dependency, it should install the latest version and an older one only if is specified by #.

Meteor version solver: why does "meteor update" downgrade packages?

I have this in a package:
api.use([
'kestanous:herald#1.1.3',
'kestanous:herald-email',
]);
As expected, Meteor uses version 1.1.3 of the Herald package.
If I remove the #1.1.3 version, the package's versions.json doesn't change.
But now if I run meteor update kestanous:herald, here's what I get:
$ meteor update kestanous:herald
Changes to your project's package version selections from updating package versions:
kestanous:herald downgraded from 1.1.3 to 1.0.1
It doesn't make sense to me that upgrading a package would actually downgrade it. Especially since kestanous:herald is used nowhere else in the app. Even stranger, there are still no changes to the package's versions.json file despite the message.
So it seems either I don't understand how package versioning works, or else something is not working correctly?
I'm not sure if i'm right on this 100% because the system used is quite weird & has changed so many times until very recently.
Meteor's new package system works on a constraint solver. Each package declares the version of Meteor its designed for, e.g if you designed it for Meteor 0.9.2 and you run it on Meteor 0.1.0 there is a slight difference in the blaze package.
So if a package one of your other packages is dependent on has uses this older version of blaze then the other packages will be downgraded so that it can match this constraint, such that the latest versions of all included packages are used as long as the constraint is matched.
So this can happen if herald has a constraint on it of some older Meteor package or version, or has a dependency on some older package.
While the package doesn't have to be defined explicitly it can be defined implicitly from api.versionsFrom("XXX") too.
Meteor then upgrades or downgrades the packages accordingly.
Additionally there is a "leeway" allowed with the packages allowed depending on the semver spec, minor package version updates are okay, but the major ones force a downgrade, since the new version is deemed incompatible. There's a bit of a discussion on this too.
This is the package.js file for the package for kestanous:herald:
api.versionsFrom('METEOR#0.9.2');
api.use(['check', 'underscore', 'tracker','accounts-base', 'blaze', 'artwells:queue#0.0.3']);
This means that all packages in your meteor project will attempt to be downgraded so that all of them can be compatible with these other dependencies.
If you upgraded the versionsFrom, then meteor would be more accepting to newer versions in other packages.
https://github.com/Meteor-Reaction/Herald/blob/master/package.js#L9

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

Resources