chore(6.0): remove @bazel/create
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index 4c2fc60..1819535 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -15,8 +15,6 @@
     platform: ubuntu1804
     run_targets:
     - "@yarn//:yarn"
-    # Regression test for #1493
-    - "//packages/create:npm_package.pack"
     - "//internal/node/test:no_deps"
     - "//internal/node/test:has_deps_legacy"
     - "//internal/node/test:has_deps"
@@ -111,7 +109,6 @@
   #   run_targets:
   #   - "@yarn//:yarn"
   #   # Regression test for #1493
-  #   - "//packages/create:npm_package.pack"
   #   - "//internal/node/test:no_deps"
   #   - "//internal/node/test:has_deps_legacy"
   #   - "//internal/node/test:has_deps"
diff --git a/README.md b/README.md
index f4e163e..34c6d52 100644
--- a/README.md
+++ b/README.md
@@ -38,20 +38,6 @@
 Comprehensive documentation for installing and using the rules, including generated API docs:
 https://bazelbuild.github.io/rules_nodejs/
 
-## Quickstart
-
-This is the fastest way to get started.
-See the [installation documentation](https://bazelbuild.github.io/rules_nodejs/install.html) for details and alternative methods, or if you already have a Bazel project and you're adding Node/JavaScript support to it.
-
-```sh
-$ npx @bazel/create my_workspace
-$ cd my_workspace
-```
-
-> The `npx` tool is distributed with node. If you prefer, you can run equivalent commands `npm init @bazel` or `yarn create @bazel`.
-> If you've used `@bazel/create` before, you may want to use `npx @bazel/create@latest` to get the most recent version.
-> Run without any arguments to see available command-line flags.
-
 ## Adopters
 
 Thanks to the following active users!
diff --git a/docs/index.md b/docs/index.md
index 4d5862f..375eac3 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -63,131 +63,6 @@
 This is understandable, since most JS tooling is forced to provide a single turn-key experience with an isolated ecosystem of plugins, and humans love a head-to-head competition.
 Instead Bazel just orchestrates calling these tools.
 
-## Quickstart
-
-First we create a new workspace, which will be in a new directory.
-We can use the `@bazel/create` npm package to do this in one command.
-This is the fastest way to get started for most use cases.
-
-> See [the installation page](install.html) for details and alternative methods.
-
-```sh
-$ npm init @bazel my_workspace
-$ cd my_workspace
-```
-
-> You could do the same thing with yarn:
-> ```sh
-> $ yarn create @bazel my_workspace
-> $ cd my_workspace
-> ```
-> Both of these commands are equivalent to `npx @bazel/create` which downloads the latest version of the `@bazel/create` package from npm and runs the program it contains.
-> Run the tool with no arguments for command-line options and next steps.
-
-Next we install some development tools.
-For this example, we'll use Babel to transpile our JavaScript, Mocha for running tests, and http-server to serve our app.
-These are arbitrary choices, you may use whatever are your favorites.  
-
-```sh
-$ npm install @babel/core @babel/cli @babel/preset-env http-server mocha domino
-```
-
-Let's run these tools with Bazel. There are two ways to run tools:
-
-- Use an auto-generated Bazel rule by importing from an `index.bzl` file in the npm package
-- Use a custom rule in rules_nodejs or write one yourself
-
-In this example we use the auto-generated rules.
-First we need to import them, using a load statement.
-So edit `BUILD.bazel` and add:
-
-```python
-load("@npm//@babel/cli:index.bzl", "babel")
-load("@npm//mocha:index.bzl", "mocha_test")
-load("@npm//http-server:index.bzl", "http_server")
-```
-
-> This shows us that rules_nodejs has told Bazel that a workspace named @npm is available
-> (think of the at-sign like a scoped package for Bazel).
-> rules_nodejs will add `index.bzl` files exposing all the binaries the package manager installed
-> (the same as the content of the `node_modules/.bin folder`).
-> The three tools we installed are in this @npm scope and each has an index file with a .bzl extension.
-
-Next we teach Bazel how to transform our JavaScript inputs into transpiled outputs.
-Here we assume that you have `app.js` and `es5.babelrc` in your project. See [our example webapp](https://github.com/bazelbuild/rules_nodejs/tree/1.4.0/examples/webapp) for an example of what those files might look like.
-Now we want Babel to produce `app.es5.js` so we add to `BUILD.bazel`:
-
-```python
-babel(
-    name = "compile",
-    data = [
-        "app.js",
-        "es5.babelrc",
-        "@npm//@babel/preset-env",
-    ],
-    outs = ["app.es5.js"],
-    args = [
-        "app.js",
-        "--config-file",
-        "./$(execpath es5.babelrc)",
-        "--out-file",
-        "$(execpath app.es5.js)",
-    ],
-)
-```
-
-> This just calls the Babel CLI, so you can see [their documentation](https://babeljs.io/docs/en/babel-cli) for what arguments to pass.
-> We use the $(execpath) helper in Bazel so we don't need to hardcode paths to the inputs or outputs.
-
-We can now build the application: `npm run build`
-
-and we see the .js outputs from babel appear in the `dist/bin` folder.
-
-Let's serve the app to see how it looks, by adding to `BUILD.bazel`:
-
-```
-http_server(
-    name = "server",
-    data = [
-        "index.html",
-        "app.es5.js",
-    ],
-    args = ["."],
-)
-```
-
-Add a `serve` entry to the scripts in `package.json`:
-
-```json
-{
-  "scripts": {
-    "serve": "ibazel run :server"
-  }
-}
-```
-
-> ibazel is the watch mode for bazel.
->
-> Note that on Windows, you need to pass `--enable_runfiles` flag to Bazel.
-> That's because Bazel creates a directory where inputs and outputs both conveniently appear together.
-
-Now we can serve the app: `npm run serve`
-
-Finally we'll add a test using Mocha, and the domino package so we don't need a browser. Add to `BUILD.bazel`:
-
-```python
-mocha_test(
-    name = "unit_tests",
-    args = ["*.spec.js"],
-    data = glob(["*.spec.js"]) + [
-        "@npm//domino",
-        "app.es5.js",
-    ],
-)
-```
-
-Run the tests: `npm test`
-
 ## Next steps
 
 Look through the `/examples` directory in this repo for many examples of running tools under Bazel.
diff --git a/packages/create/BUILD.bazel b/packages/create/BUILD.bazel
deleted file mode 100644
index b3a213b..0000000
--- a/packages/create/BUILD.bazel
+++ /dev/null
@@ -1,43 +0,0 @@
-load("@build_bazel_rules_nodejs//:tools/defaults.bzl", "nodejs_test", "pkg_npm")
-load("//third_party/github.com/bazelbuild/bazel-skylib:rules/copy_file.bzl", "copy_file")
-
-# Copy common bazelrc file to be included in this package
-copy_file(
-    name = "copy_bazelrc",
-    src = "//:common.bazelrc",
-    out = "common.bazelrc",
-)
-
-copy_file(
-    name = "copy_bazelversion",
-    src = "//:.bazelversion",
-    out = ".bazelversion",
-)
-
-pkg_npm(
-    name = "npm_package",
-    package_name = "@bazel/create",
-    srcs = [
-        "README.md",
-        "index.js",
-        "package.json",
-    ],
-    deps = [
-        ":copy_bazelrc",
-        ":copy_bazelversion",
-    ],
-)
-
-nodejs_test(
-    name = "test",
-    data = [
-        "test.js",
-        ":npm_package",
-        "@npm//minimist",
-    ],
-    entry_point = ":test.js",
-)
-
-# TODO(alexeagle): add e2e testing by running bazel in a newly created project
-# load("@build_bazel_integration_testing//tools:common.bzl", "GET_LATEST_BAZEL_VERSIONS")
-# some_nodejs_bazel_integration_test or use Java/Go existing libraries
diff --git a/packages/create/README.md b/packages/create/README.md
deleted file mode 100644
index 2434952..0000000
--- a/packages/create/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# @bazel/create
-
-This package allows users to have a very simple quickstart to get up and running with Bazel via npm or yarn.
-
-```bash
-$ npx @bazel/create
-# or
-$ yarn create @bazel
-# or
-$ npm init @bazel
-```
-
-See https://yarnpkg.com/en/docs/cli/create and https://docs.npmjs.com/cli/init
-
-# Design
-
-We version @bazel/create along with the other packages in this monorepo.
-
-yarn and npm will download this package globally. For this reason we take no dependencies here to minimize the risk of version conflicts in the global install space.
diff --git a/packages/create/index.js b/packages/create/index.js
deleted file mode 100644
index 2b0c83b..0000000
--- a/packages/create/index.js
+++ /dev/null
@@ -1,256 +0,0 @@
-#!/usr/bin/env node
-
-const fs = require('fs');
-const path = require('path');
-const VERBOSE_LOGS = !!process.env['VERBOSE_LOGS'];
-
-function log_verbose(...m) {
-  if (VERBOSE_LOGS) console.error('[@bazel/create]', ...m);
-}
-
-/**
- * Detect if the user ran `yarn create @bazel` so we can default
- * to using yarn in the new workspace.
- *
- * TODO: check whether it detects properly on Windows
- */
-function detectRunningUnderYarn() {
-  const executable = process.argv[1];
-  if (!!executable && executable.indexOf('yarn/bin') >= 0) {
-    return true;
-  }
-  if (process.env['_'] && process.env['_'].endsWith('yarn')) {
-    return true;
-  }
-  return false;
-}
-
-function validateWorkspaceName(name, error) {
-  if (/^[_a-zA-Z0-9]+$/.test(name)) {
-    return true;
-  }
-  error(`ERROR: ${name} is not a valid Bazel workspace name.
-
-  A workspace name must start with a letter and can contain letters, numbers, and underscores
-  (this is to maximize the number of languages for which this string can be a valid package/module name).
-  It should describe the project in reverse-DNS form, with elements separated by underscores.
-  For example, if a project is hosted at example.com/some-project,
-  you might use com_example_some_project as the workspace name.
-  From https://docs.bazel.build/versions/main/be/functions.html#workspace`);
-
-  return false;
-}
-
-function usage(error) {
-  error(`@bazel/create usage:
-
-  Invoke it with any of these equivalent commands:
-    npx  @bazel/create [workspace name] [options...]
-    npm  init   @bazel [workspace name] [options...]
-    yarn create @bazel [workspace name] [options...]
-
-  Options:
-    --packageManager=[yarn|npm]   Select npm or yarn to install packages
-                                  (default: npm if you ran npm/npx, yarn if you ran yarn create)
-    --typescript                  Set up the workspace for TypeScript development
-    --workspaceDir                Set a name for the directory containing the workspace
-                                  (default: workspace name)
-
-  Run @bazel/create --help to see all options
-  `);
-}
-
-function main(argv, error = console.error, log = console.log) {
-  const args = require('minimist')(argv, {
-    boolean: ['typescript'],
-  });
-
-  if (args['help']) {
-    usage(error);
-    return 0;
-  }
-
-  if (!args['_'] || args['_'].length < 1) {
-    error('Please specify the workspace directory\n');
-    usage(error);
-    return 1;
-  }
-
-  // Which package manager will be used in the new project
-  let pkgMgr = args['packageManager'];
-
-  if (!pkgMgr) {
-    pkgMgr = detectRunningUnderYarn() ? 'yarn' : 'npm';
-  } else if(pkgMgr !== 'yarn' && pkgMgr !== 'npm') {
-    error('Please select between \'yarn\' and \'npm\' when providing --packageManager');
-    usage(error);
-    return 1;
-  }
-
-  log_verbose('Running with', process.argv);
-  log_verbose('Environment', process.env);
-
-  const [wkspName] = args['_'];
-  const wkspDir = args['workspaceDir'] || wkspName;
-
-  if (!validateWorkspaceName(wkspName, error)) {
-    return 1;
-  }
-
-  log(`Creating Bazel workspace ${wkspName}...`);
-  if (!fs.existsSync(wkspDir)) {
-    fs.mkdirSync(wkspDir);
-  }
-  fs.mkdirSync(path.join(wkspDir, 'tools'));
-
-  function write(workspaceRelativePath, content) {
-    fs.writeFileSync(
-        path.join(wkspDir, workspaceRelativePath), content + require('os').EOL,
-        {encoding: 'utf-8'});
-  }
-
-  const devDependencies = {
-    '@bazel/bazelisk': 'latest',
-    '@bazel/ibazel': 'latest',
-    '@bazel/buildifier': 'latest',
-  };
-  let rootBuildContent = '# Add rules here to build your software\n' +
-      '# See https://docs.bazel.build/versions/main/build-ref.html#BUILD_files\n\n';
-
-  if (args['typescript']) {
-    devDependencies['typescript'] = 'latest';
-    write('tsconfig.json', `\
-{
-    // If building without sandboxing, we need to prevent TypeScript from descending into
-    // Bazel's external folder which contains third-party Bazel dependencies.
-    "exclude": ["external/*"]
-}`);
-    rootBuildContent += '# Allow any ts_project rules in this workspace to reference the config\n' +
-        '# Note: if you move the tsconfig.json file to a subdirectory, you can add an alias() here instead\n' +
-        '#   so that ts_project rules still use it by default.\n' +
-        '#   See https://www.npmjs.com/package/@bazel/typescript#installation\n' +
-        'exports_files(["tsconfig.json"], visibility = ["//:__subpackages__"])\n';
-  }
-
-  write('BUILD.bazel', rootBuildContent);
-
-  const yarnInstallCmd =
-      `# The yarn_install rule runs yarn anytime the package.json or yarn.lock file changes.
-# It also extracts and installs any Bazel rules distributed in an npm package.
-load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
-yarn_install(
-    # Name this npm so that Bazel Label references look like @npm//package
-    name = "npm",
-    package_json = "//:package.json",
-    yarn_lock = "//:yarn.lock",
-)`;
-
-  const npmInstallCmd =
-      `# The npm_install rule runs yarn anytime the package.json or package-lock.json file changes.
-# It also extracts any Bazel rules distributed in an npm package.
-load("@build_bazel_rules_nodejs//:index.bzl", "npm_install")
-
-npm_install(
-    # Name this npm so that Bazel Label references look like @npm//package
-    name = "npm",
-    package_json = "//:package.json",
-    package_lock_json = "//:package-lock.json",
-)`;
-
-  let bazelDepsContent = `# Third-party dependencies fetched by Bazel
-# Unlike WORKSPACE, the content of this file is unordered.
-# We keep them separate to make the WORKSPACE file more maintainable.
-
-# Install the nodejs "bootstrap" package
-# This provides the basic tools for running and packaging nodejs programs in Bazel
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-def fetch_dependencies():
-    http_archive(
-        name = "build_bazel_rules_nodejs",
-        sha256 = "94070eff79305be05b7699207fbac5d2608054dd53e6109f7d00d923919ff45a",
-        urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.8.2/rules_nodejs-5.8.2.tar.gz"],
-    )`
-  let workspaceContent = `# Bazel workspace created by @bazel/create 0.0.0-PLACEHOLDER
-
-# Declares that this directory is the root of a Bazel workspace.
-# See https://docs.bazel.build/versions/main/build-ref.html#workspace
-workspace(
-    # How this workspace would be referenced with absolute labels from another workspace
-    name = "${wkspName}",
-)
-
-load("//tools:bazel_deps.bzl", "fetch_dependencies")
-
-fetch_dependencies()
-
-load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies")
-
-build_bazel_rules_nodejs_dependencies()
-
-${pkgMgr === 'yarn' ? yarnInstallCmd : npmInstallCmd}`;
-
-  write('tools/BUILD.bazel', '# Currently there are no targets in this Bazel package')
-  write('tools/bazel_deps.bzl', bazelDepsContent);
-  // Don't name it WORKSPACE.bazel since there's a bug with managed_directories
-  write('WORKSPACE', workspaceContent);
-  write('.bazelignore', `\
-# NB: semantics here are not the same as .gitignore
-# see https://github.com/bazelbuild/bazel/issues/8106
-# For example, every nested node_modules directory needs to be listed here.
-node_modules
-dist
-bazel-out`);
-  write(
-      'package.json',
-      JSON.stringify(
-          {
-            name: wkspName,
-            version: '0.1.0',
-            private: true,
-            devDependencies,
-            scripts: {
-              'build': 'bazel build //...',
-              'test': 'bazel test //...',
-            }
-          },
-          null, 4));
-  write('.gitignore', `\
-.bazelrc.user
-dist
-bazel-out
-node_modules`);
-  // in the published distribution, this file will appear in the same folder as this file
-  try {
-    const rc = require.resolve('./common.bazelrc');
-    write('.bazelrc', fs.readFileSync(rc));
-    const version = require.resolve('./.bazelversion');
-    write('.bazelversion', fs.readFileSync(version));
-  } catch (_) {
-    // but running locally against sources, it's in the root of the repo two directories up
-    if (fs.existsSync('../../common.bazelrc')) {
-      write('.bazelrc', fs.readFileSync('../../common.bazelrc'));
-    } else {
-      error('ERROR: missing common.bazelrc file, continuing with no bazel settings...');
-    }
-    write('.bazelversion', 'latest');
-  }
-
-  log(`Successfully created new Bazel workspace at ${path.resolve(wkspDir)}`);
-  // TODO: we should probably run the package manager install now
-
-  log(`Next steps:
-  1. cd ${wkspDir}
-  2. ${pkgMgr} install
-  3. ${pkgMgr === 'yarn' ? 'yarn build' : 'npm run build'}
-     Note that there is nothing to build, so this trivially succeeds.
-  4. Add contents to the BUILD.bazel file or create a new BUILD.bazel in a subdirectory.
-  `);
-
-  return 0;
-}
-
-module.exports = {main};
-
-if (require.main === module) {
-  process.exitCode = main(process.argv.slice(2));
-}
diff --git a/packages/create/package.json b/packages/create/package.json
deleted file mode 100644
index ac4e63e..0000000
--- a/packages/create/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-    "name": "@bazel/create",
-    "description": "Create a new Bazel workspace",
-    "license": "Apache-2.0",
-    "version": "0.0.0-PLACEHOLDER",
-    "repository": {
-        "type" : "git",
-        "url" : "https://github.com/bazelbuild/rules_nodejs.git",
-        "directory": "packages/create"
-    },
-    "bugs": {
-        "url": "https://github.com/bazelbuild/rules_nodejs/issues"
-    },
-    "keywords": [
-        "bazel"
-    ],
-    "bin": "index.js",
-    "dependencies": {
-        "minimist": "1.2.0"
-    }
-}
\ No newline at end of file
diff --git a/packages/create/test.js b/packages/create/test.js
deleted file mode 100644
index 98c5d63..0000000
--- a/packages/create/test.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * Simple node program to test that workspace creation works.
- * We don't use a test framework here since dependencies are awkward.
- */
-const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']);
-const pkg = runfiles.resolve('build_bazel_rules_nodejs/packages/create/npm_package');
-const fs = require('fs');
-const {main} = require(pkg);
-
-function fail(...msg) {
-  console.error(...msg);
-  throw new Error('test failed');
-}
-
-function read(path) {
-  return fs.readFileSync(path, {encoding: 'utf-8'});
-}
-
-let error, exitCode;
-function captureError(...msg) {
-  error = error + '\n' + msg.join(' ');
-}
-
-exitCode = main([], captureError);
-if (error.indexOf('specify the workspace directory') < 0) {
-  fail('expected', error, 'to tell the user they missed an argument');
-}
-if (exitCode != 1) {
-  fail('should exit 1 on error')
-}
-
-error = '';
-exitCode = main(['has-hyphen'], captureError);
-if (error.indexOf('not a valid Bazel workspace') < 0) {
-  fail('should error when invalid workspace name');
-}
-if (exitCode != 1) {
-  fail('should exit 1 on error')
-}
-
-process.chdir(process.env['TEST_TMPDIR']);
-exitCode = main(['some_project'], captureError);
-if (exitCode != 0) {
-  fail('should exit 0 on success')
-}
-const projFiles = fs.readdirSync('some_project');
-if (projFiles.indexOf('.bazelrc') < 0) {
-  fail('project should have .bazelrc');
-}
-if (projFiles.indexOf('.bazelversion') < 0) {
-  fail('project should have .bazelversion');
-}
-let wkspContent = read('some_project/WORKSPACE');
-if (wkspContent.indexOf('npm_install(') < 0) {
-  fail('should use npm by default');
-}
-// TODO: run bazel in the new directory to verify a build works
-
-exitCode = main(['configure_pkgMgr', '--packageManager=yarn'], captureError);
-if (exitCode != 0) fail('should be success');
-wkspContent = read('configure_pkgMgr/WORKSPACE');
-if (wkspContent.indexOf('yarn_install(') < 0) {
-  fail('should use yarn when requested');
-}
-
-process.env['_'] = '/usr/bin/yarn';
-exitCode = main(['default_to_yarn']);
-if (exitCode != 0) fail('should be success');
-wkspContent = read('default_to_yarn/WORKSPACE');
-if (wkspContent.indexOf('yarn_install(') < 0) {
-  fail('should use yarn by default');
-}
-
-exitCode = main(['use_npm_with_yarn', '--packageManager=npm']);
-if (exitCode != 0) fail('should be success');
-wkspContent = read('use_npm_with_yarn/WORKSPACE');
-if (wkspContent.indexOf('npm_install(') < 0) {
-  fail('should use npm as selected');
-}
-
-exitCode = main(['neither_yarn_nor_npm', '--packageManager=foo']);
-if (exitCode != 1) fail('should exit 1 when selecting neither \'yarn\' nor \'npm\'');
-// TODO: run bazel in the new directory to verify a build works
-
-exitCode = main(['--typescript', 'with_ts'], captureError);
-if (exitCode != 0) fail('should be success');
-let pkgContent = read('with_ts/package.json');
-
-exitCode = main(['different_workspace_dir', '--workspaceDir=some-other-dir'])
-if (exitCode != 0) fail('should be success');
-if (!fs.existsSync('some-other-dir')) fail('should create directory');
-
-exitCode = main(['workspace_in_current_dir', '--workspaceDir=.'])
-if (exitCode != 0) fail('should be success');
-if (!fs.existsSync('./WORKSPACE')) fail('should create WORKSPACE file in current directory');
-
-exitCode = main(['--help'], captureError);
-if (exitCode != 0) fail('should be success');
diff --git a/scripts/on-release.js b/scripts/on-release.js
index 8c2e4f2..c10bdc2 100644
--- a/scripts/on-release.js
+++ b/scripts/on-release.js
@@ -23,7 +23,7 @@
 const sha256 = computeSha256(artifact);
 
 if (starlarkModule == 'build_bazel_rules_nodejs') {
-  for (const f of ['docs/install.md', 'packages/create/index.js']) {
+  for (const f of ['docs/install.md']) {
     shell.sed(
         '-i', 'download/[0-9\.]*(-(beta|rc).[0-9]+)?/rules_nodejs-[0-9\.]*(-(beta|rc).[0-9]+)?.tar.gz',
         `download/${version}/rules_nodejs-${version}.tar.gz`, f);