Upgrading to Meteor 1.3 on Ubuntu 14.04


This post is more than 5 years old. While math doesn't age, code and operating systems do. Please use the code/ideas with caution and expect some issues due to the age of the content. I am keeping these posts up for archival purposes because I still find them useful for reference, even when they are out of date!

In a recent post, Install Meteor on Ubuntu 14.04 , I documented the install process for Meteor -- at that time the current version was 1.2.1. Well, the new version -- 1.3 -- is out and I will briefly document the upgrade process and provide some links to new guides and tutorials that the MDG (Meteor Development Group) has released.

New Install

If you are installing Meteor for the first time, the process has not changed:

$ curl https://install.meteor.com/ | sh

You can check Meteor install instructions for the latest. As you'd expect, checking the version now gets you

$ meteor --version
Meteor 1.3

Upgrading from 1.2.1 to 1.3

The upgrade is even easier than the install! Amazingly, a simple (do this in a directory that is not a Meteor project):

$ meteor update

That's it -- you don't even have to use curl! If you already running version 1.3 (and didn't know it) you'll be told you're running the latest version. So, no worries about running the update command.

If you have already been working with Meteor, old projects can be updated by running meteor update in the project directory; something like this:

$ cd project-directory
$ meteor update

I have not tried this yet and do not know what types of changes happen when you update a project -- so, be careful! I would suggest a backup of the project -- as always -- before trying!

Changes in version 1.3

This new version has quite a few changes in the way Meteor projects work -- I won't attempt to describe them here -- check out the Meteor 1.3 announcement for more details.

Briefly, for beginner Meteor developers like myself, the changes are quite dramatic and will take some getting used to. For example, the start project setup is more complex -- this change makes sense to me because the directory structure is similar to the one would create as a project developed. To see this, create a test-project:

$ meteor create test-project
Created a new Meteor app in 'test-project'.

To run your new app:
cd test-project

If you are new to Meteor, try some of the learning resources here:

This is the same as before. However, looking at the files created, we see the following:

$ cd test-project/
$ tree .
├── client
│ ├── main.css
│ ├── main.html
│ └── main.js
├── package.json
└── server
└── main.js

2 directories, 5 files

The project structure already has client and server directories -- things that were previously created by the developer. In addition, there is also a package.json file, reflecting the much tight integration with npm. Finally, for this post, if we look at the one of the files-- server/main.js in this case -- we see more modern, ES2015 code:

import { Meteor } from 'meteor/meteor';

Meteor.startup(() => {
// code to run on server at startup

In particular, notice the explicit import of Meteor and the use of an arrow function.

Further information on this version of Meteor is pretty limited at this point. Resources like the Discover Meteor book and the Coursera Meteor specialization will be referencing the previous version of Meteor -- however, that might change quickly! For now, check out the nice tutorials (choose blaze-, angular- or react-flavored):

If you don't know the difference I'd suggest starting with default Blaze templates, as they are pretty straightforward. Also, the Official Meteor Guide has been expanded and looks really useful; you should check it out.

Okay, that's it. As always, comments and corrections are welcome -- just be nice.