Repository: kedro-org/kedro
Pull request: Allow plural and singular tool naming for test, log, doc
## Description
Fixes #3339 

## Development notes
Updated the mapping from shorthand tool name to number to include plural as well as singular naming for the testing, logging and documentation options. Data, lint, pyspark, and viz don't make sense in other forms. 


## Developer Certificate of Origin
We need all contributions to comply with the [Developer Certificate of Origin (DCO)](https://developercertificate.org/). All commits must be signed off by including a `Signed-off-by` line in the commit message. [See our wiki for guidance](https://github.com/kedro-org/kedro/wiki/Guidelines-for-contributing-developers/).

If your PR is blocked due to unsigned commits, then you must follow the instructions under "Rebase the branch" on the GitHub Checks page for your PR. This will retroactively add the sign-off to all unsigned commits and allow the DCO check to pass.

## Checklist

- [ ] Read the [contributing](https://github.com/kedro-org/kedro/blob/main/CONTRIBUTING.md) guidelines
- [ ] Signed off each commit with a [Developer Certificate of Origin (DCO)](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-commit-signoff-policy-for-your-repository)
- [ ] Opened this PR as a 'Draft Pull Request' if it is work-in-progress
- [ ] Updated the documentation to reflect the code changes
- [ ] Added a description of this change in the [`RELEASE.md`](https://github.com/kedro-org/kedro/blob/main/RELEASE.md) file
- [ ] Added tests to cover my changes
- [ ] Checked if this change will affect Kedro-Viz, and if so, communicated that with the Viz team


Problem statement:
Improving shortname handling of --addons flag 
## Description

The shortnames we've allocated for the add ons fluctuate on whether they are plural or not. log vs logs, test vs tests. 

At the moment the short names are: `log,test,lint,data,docs,viz`. But many engineers instinctively think of `logs` rather than `log` and `tests` rather than `test`. However, `lints` doesn't work. etc 

Having discussed with @AhdraMeraliQB @noklam  we weren't able to find a consistent rule to apply across all the options. 

Proposal: 
either 
1. accept both options i.e. both `--addons=log` and `--addons=logs` will work to select the logging addon
2. implement smarter error messages i.e. if the user types `logs` but its meant to be `log` we error `Did you mean --addons=log` to help them realise their mistake. Same for `tests` and `test`

Hints from issue discussion:

Commit message: Merge branch 'develop' into flexible-plural-singular-tools

Patch to review:
diff --git a/kedro/framework/cli/starters.py b/kedro/framework/cli/starters.py
index 6c976d5817..4384ebc1fb 100644
--- a/kedro/framework/cli/starters.py
+++ b/kedro/framework/cli/starters.py
@@ -110,8 +110,11 @@ class KedroStarterSpec:  # noqa: too-few-public-methods
 TOOLS_SHORTNAME_TO_NUMBER = {
     "lint": "1",
     "test": "2",
+    "tests": "2",
     "log": "3",
+    "logs": "3",
     "docs": "4",
+    "doc": "4",
     "data": "5",
     "pyspark": "6",
     "viz": "7",
diff --git a/tests/framework/cli/test_starters.py b/tests/framework/cli/test_starters.py
index ff79531fc6..170499570a 100644
--- a/tests/framework/cli/test_starters.py
+++ b/tests/framework/cli/test_starters.py
@@ -1222,13 +1222,16 @@ class TestToolsAndExampleFromCLI:
         [
             "lint",
             "test",
+            "tests",
             "log",
+            "logs",
             "docs",
+            "doc",
             "data",
             "pyspark",
             "viz",
             "none",
-            "test,log,docs",
+            "tests,logs,docs",
             "test,data,lint",
             "log,docs,data,test,lint",
             "log, docs, data, test, lint",


Code review comments:
diff_hunk: @@ -1222,13 +1222,16 @@ class TestToolsAndExampleFromCLI:
         [
             "lint",
             "test",
+            "tests",
             "log",
+            "logs",
             "docs",
+            "doc",
             "data",
             "pyspark",
             "viz",
             "none",
-            "test,log,docs",
+            "tests,logs,docs",
path: tests/framework/cli/test_starters.py
text: @user1:
```suggestion
            "tests,logs,doc",
```
Just so we're testing all options? `docs` is tested in other test cases