Repository: PrefectHQ/prefect

Issue:
make user config should create default
User configurability may be unclear to the user, so I think `prefect make-user-config` should give the user more guidance about their options than an empty file

I propose that it should copy the defaults to the user config location

However, I could just as easily see doing both of the following, instead of this PR--
1) adding a note to the `prefect make-user-config` part of the docs (docs/guide/core_concepts) about where to find the default file 
2) adding "the default configuration is located at src/prefect/config.toml" to the auto-generated settings file


Discussion:
I'm not sure what this is saying. You want to put those two options in to overwrite the prefect config by default?
Sorry.  It's not just those two options.  It copies the default config from src/prefect/config.toml to the user config location
Why does it need to copy the default config? This is only for overriding config options.
Hey @TylerWanner for posterity / documentation purposes, would you mind reformatting the statement of this issue and include some additional details:
- what is the current issue (in this case, I think you don't know the structure of a Prefect user config file and you think `prefect make-user-config` should give you more guidance than an empty file, which I agree with)
- what is your proposal to fix it (e.g., it should copy all defaults to your user config location)
I personally prefer copying the default to the user's location because it requires less back-and-forth on the user's end.  It's also the way I have my user config setup.  There's very little cost to copying the whole file.
Option 2 is just adding the LOCATION of the file (like "the default file is located at src/prefect/config.toml") AND to the configuration.md
Option 1 is what is in this PR now
comment: _updated_
Per the conversation in https://github.com/PrefectHQ/prefect/pull/905 + a short conversation offline, we have reached consensus to delete the `make-user-config` endpoint all together and host the most up-to-date `config` file in the API reference docs.

Resolving patch:
diff --git a/src/prefect/cli/__init__.py b/src/prefect/cli/__init__.py
--- a/src/prefect/cli/__init__.py
+++ b/src/prefect/cli/__init__.py
@@ -18,27 +18,6 @@ def cli():
     pass
 
 
-@cli.command()
-def make_user_config():
-    """
-    Generates a user configuration file
-    """
-    user_config_path = prefect.config.get("user_config_path")
-    if not user_config_path:
-        raise ValueError("No user config path set!")
-    elif os.path.isfile(user_config_path):
-        raise ValueError("A file already exists at {}".format(user_config_path))
-
-    os.makedirs(os.path.dirname(user_config_path), exist_ok=True)
-    with open(user_config_path, "w") as user_config:
-        user_config.write(
-            "# This is a user configuration file.\n"
-            "# Settings placed here will overwrite Prefect's defaults."
-        )
-
-    click.secho("Config created at {}".format(user_config_path), fg="green")
-
-
 @cli.command()
 @click.argument("environment_file", type=click.Path(exists=True))
 @click.option("--runner_kwargs", default={})


Test patch:
diff --git a/tests/cli/test_cli.py b/tests/cli/test_cli.py
--- a/tests/cli/test_cli.py
+++ b/tests/cli/test_cli.py
@@ -14,17 +14,6 @@ def test_cli_is_installed():
     assert b"The Prefect CLI" in output
 
 
-def test_make_user_config():
-    with tempfile.TemporaryDirectory() as td:
-        path = os.path.join(td, "test-config.toml")
-        with prefect.utilities.configuration.set_temporary_config(
-            {"user_config_path": path}
-        ):
-            CliRunner().invoke(prefect.cli.make_user_config)
-        with open(path, "r") as f:
-            assert f.read().startswith("# This is a user configuration file")
-
-
 def error_flow():
     @prefect.task
     def zero_error():