Skip to content

Commit

Permalink
Merge branch 'release-3.0' into feature/fix-oauth-ui-methods
Browse files Browse the repository at this point in the history
  • Loading branch information
StorytellerCZ committed Mar 25, 2024
2 parents 4715e56 + e6caf9c commit 91aaa79
Show file tree
Hide file tree
Showing 239 changed files with 1,604 additions and 2,043 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ jobs:
command: |
eval $PRE_TEST_COMMANDS;
cd dev_bundle/lib
../../meteor npm install @types/node@20.9.0 --save-dev
../../meteor npm install @types/node@20.10.5 --save-dev
# Ensure that meteor/tools has no TypeScript errors.
../../meteor npm install -g typescript
cd ../../
Expand Down Expand Up @@ -390,7 +390,7 @@ jobs:
./meteor self-test \
"$TEST_GROUP" \
--retries ${METEOR_SELF_TEST_RETRIES} \
--exclude "${SELF_TEST_EXCLUDE}|--svelte|--vue|--typescript|--apollo|--solid|--full" \
--exclude "${SELF_TEST_EXCLUDE}" \
--headless \
--junit ./tmp/results/junit/3.xml \
--without-tag "custom-warehouse"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/check-code-style.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 14.x
node-version: 20.x
- run: npm ci
- name: Run ESLint@8
run: npx eslint@8 "./npm-packages/meteor-installer/**/*.js"
6 changes: 3 additions & 3 deletions .github/workflows/check-syntax.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 18.x
node-version: 20.x
- run: cd scripts/admin/check-legacy-syntax && npm ci
- name: Check syntax
run: cd scripts/admin/check-legacy-syntax && node check-syntax.js
run: cd scripts/admin/check-legacy-syntax && node check-syntax.js
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
working-directory: docs/
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 12.x
- name: Build the Docs
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/guide.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
working-directory: guide/
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 12.x
- name: Build the Guide
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/npm-eslint-plugin-meteor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ jobs:
working-directory: npm-packages/eslint-plugin-meteor
strategy:
matrix:
node-version: [16.x, 18.x]
node-version: 20.x
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/npm-meteor-babel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ jobs:
working-directory: npm-packages/meteor-babel
strategy:
matrix:
node-version: [16.x, 18.x]
node-version: 20.x
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/npm-meteor-promise.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ jobs:
working-directory: npm-packages/meteor-promise
strategy:
matrix:
node-version: [12.x, 14.x]
node-version: [14.x, 20.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ dist: jammy
sudo: required
services: xvfb
node_js:
- "18.16.0"
- "20.10.0"
cache:
directories:
- ".meteor"
Expand Down
5 changes: 5 additions & 0 deletions docs/generators/changelog/versions/3.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@
if the cursor is ready and if the callbacks are have been called.
If you only use it in the `Client` or as a `LocalCollection` things have not
changed.
- `cursor.observeChangesAsync` and `cursor.observeAsync` are added and resolve as promises, returning results similar to their synchronous counterparts.

- `mobile-experience@2.0.0`:

Expand Down Expand Up @@ -431,6 +432,7 @@
- Updated to unify methods, `update`,`insert`,`remove`, `fetch` are now async, they are
the same as their `*Async` counterpart.
- `ensureIndex` and `createIndex` are now async.
- `observeChangesAsync` and `observeAsync` are added and resolve as promises, returning results similar to their synchronous counterparts.

- `npm-mongo@5.0.0`:

Expand Down Expand Up @@ -665,6 +667,9 @@

- `Meteor.callAsync()`

- `meteor`:
- Added `Meteor.isDebug` to execute code in debug builds, activated with the --inspect mode.

- `minifier-css`: (2.9+)

- `CssTools.minifyCssAsync()`
Expand Down
6 changes: 3 additions & 3 deletions docs/source/api/assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ assets, which are located in the `private` subdirectory of an application's
tree. Assets are not processed as source files and are copied directly
into your application's bundle.

{% apibox "Assets.getText" %}
{% apibox "Assets.getBinary" %}
{% apibox "Assets.getTextAsync" %}
{% apibox "Assets.getBinaryAsync" %}
{% apibox "Assets.absoluteFilePath" %}

Static server assets are included by placing them in the application's `private`
Expand All @@ -20,7 +20,7 @@ directory called `nested` with a file called `data.txt` inside it, then server
code can read `data.txt` by running:

```js
const data = Assets.getText('nested/data.txt');
const data = await Assets.getTextAsync('nested/data.txt');
```

Note: Packages can only access their own assets. If you need to read the assets of a different package, or of the enclosing app, you need to get a reference to that package's `Assets` object.
6 changes: 3 additions & 3 deletions docs/source/api/packagejs.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ package) so that Meteor will pick up the local dependency.
> In a lifecycle of a package there might come time to end the development for various reasons, or
it gets superseded. In either case Meteor allows you to easily notify the users of the package by
setting the deprecated flag to true: `deprecated: true` in the package description. In addition, you
replace it with a string that tells the users where to find replacement or what to do.
replace it with a string that tells the users where to find replacement or what to do.

Provide basic package information with `Package.describe(options)`. To publish a
package, you must define `summary` and `version`.
Expand All @@ -97,7 +97,7 @@ package is exported to.
{% apibox "PackageAPI#versionsFrom" %}

> Choose Meteor versions carefully. First determine the minimum version of Meteor you need for the API you use in your package.
This should be based on specific needs of your package like needed the *Async calls, which would require minimum version to be
This should be based on specific needs of your package like needed the *Async calls, which would require minimum version to be
at least 2.8. Another example are where packages had a major version bump, for example this has happened with the accounts packages
in Meteor 2.3. If you want to be backward and forward compatible it is good to include Meteor version before 2.3 and then 2.3.6 in the array.
A general recommendation for most compatibility for accounts packages (unless you need API that was affected in Meteor 2.3) is to have the following
Expand Down Expand Up @@ -315,7 +315,7 @@ methods are available:
- `addAsset` - Add a file to serve as-is to the browser or to include on the
browser, depending on the target. On the web, it will be served at the exact
path requested. For server targets, it can be retrieved using
`Assets.getText` or `Assets.getBinary`.
`Assets.getTextAsync` or `Assets.getBinaryAsync`.
- `addHtml` - Works in web targets only. Add markup to the `head` or `body`
section of the document.
- `hmrAvailable` - Returns true if the file can be updated with HMR. Among other things,
Expand Down
4 changes: 2 additions & 2 deletions docs/source/api/passwords.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ id.

On the client, you must pass `password` and at least one of `username` or `email` — enough information for the user to be able to log in again later. If there are existing users with a username or email only differing in case, `createUser` will fail. The callback's `error.reason` will be `'Username already exists.'` or `'Email already exists.'` In the latter case, the user can then either [login](accounts.html#Meteor-loginWithPassword) or [reset their password](#Accounts-resetPassword).

On the server, you do not need to specify `password`, but the user will not be able to log in until it has a password (eg, set with [`Accounts.setPassword`](#accounts_setpassword)). To create an account without a password on the server and still let the user pick their own password, call `createUser` with the `email` option and then call [`Accounts.sendEnrollmentEmail`](#accounts_sendenrollmentemail). This will send the user an email with a link to set their initial password.
On the server, you do not need to specify `password`, but the user will not be able to log in until it has a password (eg, set with [`Accounts.setPasswordAsync`](#accounts_setpasswordasync)). To create an account without a password on the server and still let the user pick their own password, call `createUser` with the `email` option and then call [`Accounts.sendEnrollmentEmail`](#accounts_sendenrollmentemail). This will send the user an email with a link to set their initial password.

By default the `profile` option is added directly to the new user document. To
override this behavior, use [`Accounts.onCreateUser`](#accounts_oncreateuser).
Expand Down Expand Up @@ -100,7 +100,7 @@ This function accepts tokens passed into the callbacks registered with
If the user trying to reset the password has 2FA enabled, this error will be thrown:
* "Changed password, but user not logged in because 2FA is enabled [2fa-enabled]": No longer signing in the user automatically if the user has 2FA enabled.

{% apibox "Accounts.setPassword" %}
{% apibox "Accounts.setPasswordAsync" %}

{% apibox "Accounts.sendResetPasswordEmail" %}

Expand Down
14 changes: 0 additions & 14 deletions docs/source/commandline.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,20 +285,6 @@ You can also use Vue 3 with Vite by using the [jorgenvatle:meteor-vite](https://
package. You can see an example on the [meteor-vite](https://github.com/JorgenVatle/meteor-vite/tree/release/examples/vue)
repository.


<h3 id="vue-2">--vue-2</h3>

The command `meteor create --vue-2 app-name` creates a Meteor app with [Vue 2](https://v2.vuejs.org/) and
[MongoDB](https://www.mongodb.com/). To create a complete app, including testing and deployment, follow the
[Vue 2 tutorial](https://vue-tutorial.meteor.com/).

Npm packages included: `@babel/runtime`, `meteor-node-stubs`, `vue`, `vue-meteor-tracker`.

Meteor packages included: `meteor-base`, `mobile-experience`, `mongo`, `reactive-var`, `standard-minifier-css`,
`standard-minifier-js`, `es5-shim`, `ecmascript`, `typescript`, `shell-server`, `tracker`, `static-html`, `akryum:vue-component`,
`meteortesting:mocha`, `johanbrook:publication-collector`.


<h2 id="meteorgenerate"> meteor generate </h2>

``meteor generate`` is a command for generating scaffolds for your current project. When ran without arguments, it will ask
Expand Down
5 changes: 2 additions & 3 deletions docs/source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
title: Docs
---

> Meteor 2.x runs on a deprecated Node.js version (14). Meteor 3.0 is in progress, and it will run on the latest Node.js version. For more information, please consult our [migration guide](https://guide.meteor.com/3.0-migration.html).

<!-- XXX: note that this content is somewhat duplicated on the guide, and should be updated in parallel -->
<h2 id="what-is-meteor">What is Meteor?</h2>
Expand All @@ -24,11 +23,11 @@ Meteor is a full-stack JavaScript platform for developing modern web and mobile
1. The place to get started with Meteor is the [tutorials page](https://www.meteor.com/developers/tutorials).

1. [Meteor Examples](https://github.com/meteor/examples) is a list of examples using Meteor. You can also include your example with Meteor.

1. Once you are familiar with the basics, the [Meteor Guide](http://guide.meteor.com) covers intermediate material on how to use Meteor in a larger scale app.

1. Visit the [Meteor discussion forums](https://forums.meteor.com) to announce projects, get help, talk about the community, or discuss changes to core.

1. [Meteor Slack Community](https://join.slack.com/t/meteor-community/shared_invite/enQtODA0NTU2Nzk5MTA3LWY5NGMxMWRjZDgzYWMyMTEyYTQ3MTcwZmU2YjM5MTY3MjJkZjQ0NWRjOGZlYmIxZjFlYTA5Mjg4OTk3ODRiOTc) is the best place to ask (and answer!) technical questions and also meet Meteor developers.

1. [Atmosphere](https://atmospherejs.com) is the repository of community packages designed especially for Meteor.
Expand Down
1 change: 0 additions & 1 deletion docs/source/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ You need to install the Meteor command line tool to create, run, and manage your

<h3 id="prereqs-node">Node.js version</h3>

> Meteor 2.x runs on a deprecated Node.js version (14). Meteor 3.0 is in progress, and it will run on the latest Node.js version. For more information, please consult our [migration guide](https://guide.meteor.com/3.0-migration.html).

- Node.js version >= 10 and <= 14 is required.
- We recommend you using [nvm](https://github.com/nvm-sh/nvm) or [Volta](https://volta.sh/) for managing Node.js versions.
Expand Down
32 changes: 22 additions & 10 deletions guide/source/3.0-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,27 @@ title: Migrating to Meteor 3.0
description: How to migrate your application to Meteor 3.0.
---

> **This guide will be created as we get closer to the Meteor 3.0 beta release.** We are also evaluating new documentation platforms to improve our users' experience.
> This guide will be created as we approach the Meteor 3.0 release.
> We're in the process of moving our documentation to Vitepress,
> and updating the Meteor API docs for version 3.0. For the latest updates,
> visit https://v3-docs.meteor.com/.
## What's the status of version 3.0?

**Latest version:** `3.0-beta.0` <br/>
**Node.js version:** `20.9.0 LTS`
**Latest version:** `3.0-beta.6` <br/>
**Node.js version:** `20.11.1 LTS` <br />
**NPM version:** `10.2.4`

Meteor 3.0 is in alpha and not recommended for production. You can check the "[Release 3.0 Pull Request](https://github.com/meteor/meteor/pull/12359)" to see what is being changed.
Meteor 3.0 is in beta and not recommended for production. You can check the "[Release 3.0 Pull Request](https://github.com/meteor/meteor/pull/12359)" to see what is being changed.

## How to prepare for version 3.0?

You can follow the guide "[How to migrate to Meteor Async in Meteor 2.x](/prepare-meteor-3.0.html)" to help you prepare your application for the new version by starting to use async methods.

## How to follow the progress on version 3?

The best way to follow the progress is by checking the "[What's left until an official Meteor 3.0?](https://github.com/meteor/meteor/discussions/12865)" discussion. We have also been sharing constant updates on [this topic](https://forums.meteor.com/t/fibers-public-roadmap-and-meteor-3-0/59627/84) in our forum.

## Frequently Asked Questions

### What is Fibers?
Expand Down Expand Up @@ -112,20 +120,24 @@ findOne is not available on the server. Please use findOneAsync instead.
You can create a new Meteor 3.0 project by running the command below:

```bash
meteor create my-new-project --release 3.0-beta.0
meteor create my-new-project --release 3.0-beta.6
```

### How to update from version 2?
or alternatively, you can use `npx`

You can update your Meteor 2.x project by running the command below inside your project folder:
If you want to test Meteor v3, you can use the following command to install it:

```bash
meteor update --release 3.0-beta.0
npx meteor@beta
```

### How to follow the progress on version 3?
### How to update from version 2?

The best way to follow the progress is by checking the "[What's left until an official Meteor 3.0?](https://github.com/meteor/meteor/discussions/12865)" discussion. We have also been sharing constant updates on [this topic](https://forums.meteor.com/t/fibers-public-roadmap-and-meteor-3-0/59627/84) in our forum.
You can update your Meteor 2.x project by running the command below inside your project folder:

```bash
meteor update --release 3.0-beta.6
```

### When will Meteor 3.0 be ready?

Expand Down
5 changes: 2 additions & 3 deletions guide/source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ title: Introduction
description: This is the guide for using Meteor, a full-stack JavaScript platform for developing modern web and mobile applications.
---

> Meteor 2.x runs on a deprecated Node.js version (14). Meteor 3.0 is in progress, and it will run on the latest Node.js version. For more information, please consult our [migration guide](https://guide.meteor.com/3.0-migration.html).

<!-- XXX: note that this content is somewhat duplicated on the docs, and should be updated in parallel -->
<h2 id="what-is-meteor">What is Meteor?</h2>
Expand Down Expand Up @@ -44,11 +43,11 @@ meteor
1. The place to get started with Meteor is the [tutorials page](https://www.meteor.com/developers/tutorials).

1. [Meteor Examples](https://github.com/meteor/examples) is a list of examples using Meteor. You can also include your example with Meteor.

1. Once you are familiar with the basics, the [Meteor Guide](http://guide.meteor.com) covers intermediate material on how to use Meteor in a larger scale app.

1. Visit the [Meteor discussion forums](https://forums.meteor.com) to announce projects, get help, talk about the community, or discuss changes to core.

1. [Meteor Slack Community](https://join.slack.com/t/meteor-community/shared_invite/enQtODA0NTU2Nzk5MTA3LWY5NGMxMWRjZDgzYWMyMTEyYTQ3MTcwZmU2YjM5MTY3MjJkZjQ0NWRjOGZlYmIxZjFlYTA5Mjg4OTk3ODRiOTc) is the best place to ask (and answer!) technical questions and also meet Meteor developers.

1. [Atmosphere](https://atmospherejs.com) is the repository of community packages designed especially for Meteor.
Expand Down
2 changes: 1 addition & 1 deletion meteor
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash

BUNDLE_VERSION=20.11.1.1
BUNDLE_VERSION=20.11.1.2


# OS Check. Put here because here is where we download the precompiled
Expand Down
12 changes: 6 additions & 6 deletions npm-packages/meteor-babel/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 91aaa79

Please sign in to comment.