How Do I Completely Remove collection-fs from Meteor? - meteor

I'm trying to remove all collection-fs completely. I manually remove them from versions, but when I run meteor, it throws them all back in again:
=> Started proxy.
=> Started MongoDB.
Changes to your project's package version selections:
cfs:access-point added, version 0.1.49
cfs:base-package added, version 0.0.30
cfs:collection added, version 0.5.5
cfs:collection-filters added, version 0.2.4
cfs:data-man added, version 0.0.6
cfs:file added, version 0.1.17
cfs:gridfs added, version 0.0.33
cfs:http-methods added, version 0.0.32
cfs:http-publish added, version 0.0.13
cfs:power-queue added, version 0.9.11
cfs:reactive-list added, version 0.0.9
cfs:reactive-property added, version 0.0.4
cfs:s3 added, version 0.1.3
cfs:standard-packages added, version 0.5.9
cfs:storage-adapter added, version 0.2.3
cfs:tempstore added, version 0.1.5
cfs:upload-http added, version 0.0.20
cfs:worker added, version 0.1.4
Is there a better way to get rid of collection-fs completely. It is preventing me from updating to Meteor 1.4.1.1. Specifically cfs:gridfs.
I tried meteor remove cfs:gridfsbut got cfs:gridfs is not a direct dependency in this project.
Thanks.

Removing entries from versions won't remove packages.
Another package has a dependency on collection-fs, and you'll need to work that out to solve this.

You have to remove from all cfs packages from .meteor/packages file not from versions.

Related

How to do a recovery release using semantic-release?

Say the package was on 1.0.0,
it subsequently releases 1.0.1, and 1.0.2.
But then realize that 1.0.1 contains breaking changes.
So we need to release a 2.0.0 from 1.0.2 doing an empty commit. No problem there.
Then, we need to make a 1.0.3 release that is actually 1.0.0 so that people on 1.0.x will not be affected by the breaking change.
How to do it using semantic-release?
When managing the version manually, it is simple:
checkout 1.0.0, manually update the version to 1.0.3, and publish.
How to do the same using semantic-release?
There is currently no way to do that in an automated fashion. This would be covered once https://github.com/semantic-release/semantic-release/issues/563 is implemented.
Currently the best solution is to do what you described: checkout 1.0.0, manually update the version to 1.0.3, and publish.

Error while upgrading from 1.4.4.2 to 1.4.4.3 or higher

I faced below error when I ran below commands;
meteor update --patch
ran command meteor
ERROR
D:\test>meteor update --patch
Changes to your project's package version selections from updating the
release:
accounts-base upgraded from 1.2.17 to 1.3.0
babel-compiler upgraded from 6.18.2 to 6.19.1
boilerplate-generator upgraded from 1.0.11 to 1.1.0
dynamic-import added, version 0.1.0
ecmascript upgraded from 0.7.3 to 0.8.0
ecmascript-runtime upgraded from 0.3.15 to 0.4.1
ecmascript-runtime-client added, version 0.4.1
ecmascript-runtime-server added, version 0.4.1
localstorage upgraded from 1.0.12 to 1.1.0
meteor-base upgraded from 1.0.4 to 1.1.0
minifier-js upgraded from 2.0.0 to 2.1.0
minimongo upgraded from 1.0.23 to 1.2.0
modules upgraded from 0.8.2 to 0.9.0
modules-runtime upgraded from 0.7.10 to 0.8.0
mongo upgraded from 1.1.17 to 1.1.18
promise upgraded from 0.8.8 to 0.8.9
reactive-dict upgraded from 1.1.8 to 1.1.9
standard-minifier-js upgraded from 2.0.0 to 2.1.0
webapp upgraded from 1.3.15 to 1.3.16
test: updated to Meteor 1.4.4.3.
D:\test>meteor
[[[[[ ~\D\test ]]]]]
=> Started proxy.
=> Meteor 1.5 is available. Update this project with 'meteor update'.
=> Started MongoDB.
=> Errors prevented startup:
While selecting package versions:
error: Potentially incompatible change required to top-level
dependency: meteor-base 1.0.4, was 1.1.0.
Constraints on package "meteor-base":
* meteor-base#1.0.4 <- top level
* meteor-base#1.0.4 <- top level
Potentially incompatible change required to top-level dependency:
dynamic-import 0.1.0-beta.20, was 0.1.0.
Constraints on package "dynamic-import":
To allow potentially incompatible changes to top-level dependencies,
you must pass --allow-incompatible-update on the command line.
=> Your application has errors. Waiting for file change.
if you update to meteor 1.5 with meteor update Everything will work as expected with 0 conflict.
Dont touch any files!
Worked for me, first update that actually does not break anything.
I have noticed that the update included package "dynamic-import".
Just taking it out solved the issue. Then run with:
meteor --allow-incompatible-update
Maybe it is just a coincidence I have made this patch just a bit after the new Meteor 1.5 is launched. I wonder if this package should not be in this release.

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 #.

How to add spiderable 1.0.8 to my meteor project?

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.

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

Resources