Repository: probabl-ai/skore

Issue:
Force user to pass a project name. 
### Is your feature request related to a problem? Please describe.

When I launced `python -m skore launch` I saw an error that a project did not exist because of the default behavior. The help text confirmed:

```
usage: skore launch [-h] [--port PORT] [--open-browser | --no-open-browser]
                    [project_name]

positional arguments:
  project_name          the name or path of the project to open (default:
                        project.skore)

options:
  -h, --help            show this help message and exit
  --port PORT           the port at which to bind the UI server (default:
                        22140)
  --open-browser, --no-open-browser
                        whether to automatically open a browser tab showing
                        the web UI (default: True)
```

Why do we even assume `project.skore` to exist? Would it not be more friendly to force the user to pass a project name?

### Describe the solution you'd like

If no name is given we might show a list of detected projects instead.

### Describe alternatives you've considered, if relevant

_No response_

### Additional context

_No response_

Discussion:

Patch:
diff --git a/skore-ui/src/ShareApp.vue b/skore-ui/src/ShareApp.vue
index 749e288..42323c1 100644
--- a/skore-ui/src/ShareApp.vue
+++ b/skore-ui/src/ShareApp.vue
@@ -38,7 +38,7 @@ function getItemSubtitle(created_at: Date, updated_at: Date) {
             :columns="data.columns"
             :data="data.data"
             :index="data.index"
-            :indexNames="data.indexNames"
+            :index-names="data.index_names"
           />
           <ImageWidget
             v-if="['image/svg+xml', 'image/png', 'image/jpeg', 'image/webp'].includes(mediaType)"
diff --git a/skore-ui/src/views/project/ProjectView.vue b/skore-ui/src/views/project/ProjectView.vue
index 2056f95..01d3a36 100644
--- a/skore-ui/src/views/project/ProjectView.vue
+++ b/skore-ui/src/views/project/ProjectView.vue
@@ -126,7 +126,7 @@ onBeforeUnmount(() => {
                   :columns="data.columns"
                   :data="data.data"
                   :index="data.index"
-                  :indexNames="data.indexNames"
+                  :index-names="data.index_names"
                 />
                 <ImageWidget
                   v-if="
diff --git a/skore/src/skore/cli/cli.py b/skore/src/skore/cli/cli.py
index 72c8f0b..013f722 100644
--- a/skore/src/skore/cli/cli.py
+++ b/skore/src/skore/cli/cli.py
@@ -22,9 +22,7 @@ def cli(args: list[str]):
     parser_launch = subparsers.add_parser("launch", help="Launch the web UI")
     parser_launch.add_argument(
         "project_name",
-        nargs="?",
-        help="the name or path of the project to open (default: %(default)s)",
-        default="project.skore",
+        help="the name or path of the project to open",
     )
     parser_launch.add_argument(
         "--port",


Test patch:
diff --git a/skore/tests/unit/cli/test_cli.py b/skore/tests/unit/cli/test_cli.py
index 0533477..8ad5a97 100644
--- a/skore/tests/unit/cli/test_cli.py
+++ b/skore/tests/unit/cli/test_cli.py
@@ -1,5 +1,6 @@
 """Test CLI properly calls the app."""
 
+import pytest
 from skore.cli.cli import cli
 
 
@@ -24,3 +25,8 @@ def test_cli_launch(monkeypatch):
     assert launch_project_name == "project.skore"
     assert launch_port == 0
     assert not launch_open_browser
+
+
+def test_cli_launch_no_project_name(monkeypatch):
+    with pytest.raises(SystemExit):
+        cli(["launch", "--port", 0, "--no-open-browser"])