diff --git a/docs/content/1.docs/5.community/5.roadmap.md b/docs/content/1.docs/5.community/5.roadmap.md index cef6bede8f0..3d9f7470161 100644 --- a/docs/content/1.docs/5.community/5.roadmap.md +++ b/docs/content/1.docs/5.community/5.roadmap.md @@ -20,22 +20,15 @@ This page lists the current status and schedule of our planned releases. - [Rendering Optimizations: Today and Tomorrow](https://github.com/nuxt/framework/discussions/5856) - [Nuxt Image: Performance and Status](https://github.com/nuxt/image/discussions/563) -## 📅 Release Schedule - -Release | Expected date | Description ---------------------|------------------------|--------------------------------------------------- -`nuxt@2.16` | Autumn, 2022 | Nuxt v2 cumulative updates for future compatibility with Bridge -`nuxt@3.0.0` | 16th November, 2022 | Nuxt v3 final release - ### Current Releases -[Nuxt 3](https://v3.nuxtjs.org) is **in release candidate stage** and available as the `nuxt@rc` npm tag. +[Nuxt 3](https://v3.nuxtjs.org) is *stable** and available as the `nuxt` npm tag with `latest` tag. -The latest updates on Nuxt 2.x are available via the `nuxt-edge` npm package and are expected to be released soon for forward compatibility. +The latest updates on Nuxt 2.x are available via the `nuxt-edge` npm package and are expected to be released soon for forward compatibility. A minor version is expected during Autumn, 2022 as `nuxt@2.16` with cumulative updates for future compatibility with Bridge. Release | npm | Status | Last Release | Docs | Repository ---------|----|---------|--------------|------|----------------- -Nuxt 3.x | [`nuxt`](https://npmjs.com/package/nuxt) | Release Candidate | | [3.x docs](https://v3.nuxtjs.org/) | [nuxt/framework](https://github.com/nuxt/framework) +Nuxt 3.x | [`nuxt`](https://npmjs.com/package/nuxt) | Stable | | [3.x docs](https://v3.nuxtjs.org/) | [nuxt/framework](https://github.com/nuxt/framework) Nuxt 3.x (edge*) | [`nuxt3`](https://npmjs.com/package/nuxt3) | Development | | [3.x docs](https://v3.nuxtjs.org/) | [nuxt/framework](https://github.com/nuxt/framework) Nuxt 2.x | [`nuxt`](https://npmjs.com/package/nuxt) | Maintenance | | [2.x docs](https://nuxtjs.org/docs) | [nuxt/nuxt.js#2.x](https://github.com/nuxt/nuxt.js/tree/2.x) Nuxt 2.x (edge*) | [`nuxt-edge`](https://npmjs.com/package/nuxt) | Maintenance | | [2.x docs](https://nuxtjs.org/docs) | [nuxt/nuxt.js](https://github.com/nuxt/nuxt.js) diff --git a/docs/content/v3.md b/docs/content/v3.md new file mode 100644 index 00000000000..62a22028243 --- /dev/null +++ b/docs/content/v3.md @@ -0,0 +1,50 @@ +--- +title: Announcing 3.0 +description: 'We are thrilled to announce the first stable version of Nuxt 3.0.0' +navigation: false +--- + +::blog-article +--- +authors: + - name: Pooya Parsa + avatarUrl: https://github.com/pi0.png + link: https://twitter.com/_pi0_ +date: "Nov 16, 2022" +--- +#title +# Announcing Nuxt 3.0 stable +#description +We are thrilled to announce the first stable version of Nuxt 3.0.0 :sparkles: +#body + +Nuxt 3 is a modern rewrite of the Nuxt framework based on [Vite](https://vitejs.dev/), [Vue3](https://vuejs.org/), and [Nitro](https://nitro.unjs.io/) with first-class Typescript support and the result of more than two years of research, community feedback, innovation, and experiment to make a pleasant full-stack Developer Experience for Vue development to everyone. + + [[Read More In the Documentation]](/docs) + +## API Stability + +Nuxt 3.0.0 comes with a stable, production-ready API and 50+ [supported modules](.com/modules) built using [Nuxt Kit](/docs/guide/going-further/modules) by the community and Nuxt team. + +All composables, filesystem conventions, and configurations are guaranteed to be backward compatible with Nuxt 3.0.0. Due to the nature of the meta-frameworks, some changes happen when we upgrade the underlying dependencies (vite, rollup, and nitropack). Thanks to the new Nuxt Kit and Schema tools, such upgrades will be backward compatible as long as you are using documented features. Kit and Schema also guarantee better future compatibility. This makes it faster for us to iterate and plan the next major versions of Nuxt. + +## The browser and Node.js support + +Nuxt 3 officially supports evergreen browsers only. The "core browser set" is what we (And [web.dev](http://web.dev) team) believe most developers need to support most of the time in the absence of specific constraints. It takes into account [usage numbers](https://caniuse.com/usage-table), developer expectations, and [existing support in](https://make.wordpress.org/core/handbook/best-practices/browser-support/) [the ecosystem](https://angular.io/guide/browser-support). The core browser set targets the **2 most recent major versions** of Chrome, Firefox, and Edge on a monthly basis and Safari on a yearly basis. + +On the server side, Nuxt 3 supports Node.js 14, 16, 18, and 19 at the moment. We encourage everyone to use the latest LTS releases of Node.js, we push them once **widely adopted by major deployment platforms**. This means we keep supporting Node.js versions as long as they are supported by the Node.js team on a rolling basis in non-major releases of Nuxt. Since 14.x is being end-of-life soon, we highly encourage you to update to the latest 18.x whenever possible. + +## We Love Community + +Nuxt wouldn’t be possible today without an amazing community making amazing modules, feedback, and contributions every day. Check our [Community Documentation](https://nuxt.com/docs/community/getting-help) to be involved! + +## To the Future + +Releasing Nuxt 3 is a big milestone for us and opens a future-proof basis for new ideas and trust for the users to build their enterprise projects with Nuxt 3. + +Server Component Islands, Websocket layer, new Deployment presets, improved CLI and Devtools and Testing infra are a few to mention. Keep an eye on the [roadmap page](https://nuxt.com/docs/community/roadmap) and [GitHub discussions](https://github.com/nuxt/framework/discussions) for updates. + +NuxtLabs is working on [new product](https://nuxt.studio) and solutions on top of Nuxt 3 at the time of writing this article. + +Stay tuned for more exciting news and Happy Nuxting 💚 +:: diff --git a/docs/package.json b/docs/package.json index 6beb5342b3c..d37d1a12272 100644 --- a/docs/package.json +++ b/docs/package.json @@ -10,7 +10,7 @@ "devDependencies": { "jiti": "^1.16.0", "nuxt": "npm:nuxt3@latest", - "nuxt-website-theme": "^0.1.2", + "nuxt-website-theme": "^0.1.3", "pathe": "^1.0.0", "scule": "^1.0.0", "untyped": "^1.0.0" diff --git a/docs/yarn.lock b/docs/yarn.lock index 182c866a4cb..b083c3905f8 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -4166,7 +4166,7 @@ __metadata: dependencies: jiti: ^1.16.0 nuxt: "npm:nuxt3@latest" - nuxt-website-theme: ^0.1.2 + nuxt-website-theme: ^0.1.3 pathe: ^1.0.0 scule: ^1.0.0 untyped: ^1.0.0 @@ -8960,9 +8960,9 @@ __metadata: languageName: node linkType: hard -"nuxt-website-theme@npm:^0.1.2": - version: 0.1.2 - resolution: "nuxt-website-theme@npm:0.1.2" +"nuxt-website-theme@npm:^0.1.3": + version: 0.1.3 + resolution: "nuxt-website-theme@npm:0.1.3" dependencies: "@docsearch/css": ^3.3.0 "@docsearch/js": ^3.3.0 @@ -8985,7 +8985,7 @@ __metadata: tailwindcss-border-gradient-radius: ^3.0.1 three: ^0.146.0 vue-lite-youtube-embed: ^1.0.4 - checksum: 02843250a4fd929b79b104ffe34bf7378fc76e8e8e716a5f0bd9f7f8d838cdf7b3bdf2ea997ba3efd9f9a4e2347d57aa655a07d95836ddff3fbe3d74fadaf0a0 + checksum: bae2eacf4b6488625a881527015b052c14d1d40982a72283443b05afef2b33c281f4ba4bebb868f6dcc48ff2c4e329564aabe26b4a343c6850c404cabd954ed6 languageName: node linkType: hard diff --git a/packages/kit/package.json b/packages/kit/package.json index 4d22ec0852e..cd1ea370037 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.0.0-rc.14", + "version": "3.0.0", "repository": "nuxt/framework", "license": "MIT", "type": "module", @@ -13,7 +13,7 @@ "prepack": "unbuild" }, "dependencies": { - "@nuxt/schema": "3.0.0-rc.14", + "@nuxt/schema": "3.0.0", "c12": "^1.0.1", "consola": "^2.15.3", "defu": "^6.1.1", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index b2913ee0672..a50de26f565 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.0.0-rc.14", + "version": "3.0.0", "repository": "nuxt/framework", "license": "MIT", "type": "module", @@ -18,8 +18,8 @@ "prepack": "unbuild" }, "devDependencies": { - "@nuxt/kit": "3.0.0-rc.14", - "@nuxt/schema": "3.0.0-rc.14", + "@nuxt/kit": "3.0.0", + "@nuxt/schema": "3.0.0", "@types/clear": "^0", "@types/flat": "^5.0.2", "@types/mri": "^1.1.1", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 2d2f0028526..e4fac0f01c6 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.0.0-rc.14", + "version": "3.0.0", "repository": "nuxt/framework", "license": "MIT", "type": "module", @@ -37,11 +37,11 @@ }, "dependencies": { "@nuxt/devalue": "^2.0.0", - "@nuxt/kit": "3.0.0-rc.14", - "@nuxt/schema": "3.0.0-rc.14", + "@nuxt/kit": "3.0.0", + "@nuxt/schema": "3.0.0", "@nuxt/telemetry": "^2.1.8", "@nuxt/ui-templates": "^1.0.0", - "@nuxt/vite-builder": "3.0.0-rc.14", + "@nuxt/vite-builder": "3.0.0", "@vue/reactivity": "^3.2.45", "@vue/shared": "^3.2.45", "@vueuse/head": "^1.0.15", @@ -62,7 +62,7 @@ "magic-string": "^0.26.7", "mlly": "^1.0.0", "nitropack": "^1.0.0", - "nuxi": "3.0.0-rc.14", + "nuxi": "3.0.0", "ohash": "^1.0.0", "ofetch": "^1.0.0", "pathe": "^1.0.0", diff --git a/packages/schema/package.json b/packages/schema/package.json index 49fbd021f60..ff949979507 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.0.0-rc.14", + "version": "3.0.0", "repository": "nuxt/framework", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index e2bb0368bef..114b576bd73 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.0.0-rc.14", + "version": "3.0.0", "repository": "nuxt/framework", "license": "MIT", "type": "module", @@ -13,8 +13,8 @@ "prepack": "unbuild" }, "dependencies": { - "@nuxt/kit": "3.0.0-rc.14", - "@nuxt/schema": "3.0.0-rc.14", + "@nuxt/kit": "3.0.0", + "@nuxt/schema": "3.0.0", "consola": "^2.15.3", "defu": "^6.1.1", "execa": "^6.1.0", diff --git a/packages/vite/package.json b/packages/vite/package.json index fda787502ed..9518fba0486 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.0.0-rc.14", + "version": "3.0.0", "repository": "nuxt/framework", "license": "MIT", "type": "module", @@ -13,13 +13,13 @@ "prepack": "unbuild" }, "devDependencies": { - "@nuxt/schema": "3.0.0-rc.14", + "@nuxt/schema": "3.0.0", "@types/cssnano": "^5", "unbuild": "latest", "vue": "3.2.45" }, "dependencies": { - "@nuxt/kit": "3.0.0-rc.14", + "@nuxt/kit": "3.0.0", "@rollup/plugin-replace": "^5.0.1", "@vitejs/plugin-vue": "^3.2.0", "@vitejs/plugin-vue-jsx": "^2.1.1", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 01662bf8433..276e8221516 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.0.0-rc.14", + "version": "3.0.0", "repository": "nuxt/framework", "license": "MIT", "type": "module", @@ -18,7 +18,7 @@ "dependencies": { "@babel/core": "^7.20.2", "@nuxt/friendly-errors-webpack-plugin": "^2.5.2", - "@nuxt/kit": "3.0.0-rc.14", + "@nuxt/kit": "3.0.0", "autoprefixer": "^10.4.13", "css-loader": "^6.7.2", "css-minimizer-webpack-plugin": "^4.2.2", @@ -57,7 +57,7 @@ "webpackbar": "^5.0.2" }, "devDependencies": { - "@nuxt/schema": "3.0.0-rc.14", + "@nuxt/schema": "3.0.0", "@types/lodash-es": "^4.17.6", "@types/pify": "^5.0.1", "@types/webpack-bundle-analyzer": "^4.6.0", diff --git a/scripts/bump.ts b/scripts/bump.ts new file mode 100644 index 00000000000..6a8a32d16f9 --- /dev/null +++ b/scripts/bump.ts @@ -0,0 +1,21 @@ +import { loadWorkspace } from './_utils' + +async function main () { + const workspace = await loadWorkspace(process.cwd()) + + const newVersion = process.argv[2] + if (!newVersion) { + throw new Error('Please provide version!') + } + + for (const pkg of workspace.packages.filter(p => !p.data.private)) { + workspace.setVersion(pkg.data.name, newVersion!) + } + + await workspace.save() +} + +main().catch((err) => { + console.error(err) + process.exit(1) +}) diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 00000000000..299c0f414e4 --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +# Restore all git changes +git restore -s@ -SW -- packages examples + +# Build all once to ensure things are nice +pnpm build + +# Release packages +for PKG in packages/* ; do + pushd $PKG + TAG="latest" + echo "⚡ Publishing $PKG with tag $TAG" + pnpm publish --access public --no-git-checks --tag $TAG + popd > /dev/null +done