Repository: kedro-org/kedro
Pull request: Rename instances of `extra_params` and `_extra_params` to `runtime_params`
## Description

Resolves #4525 

## Development notes

- Renamed all instances of `extra_params` in `KedroSession` and `PipelineSpecs` to `runtime_params`
- Renamed all instances of `_extra_params` to `runtime_params` in `KedroContext`
- Updated tests
- Updated release note and migration guide


## 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

- [x] Read the [contributing](https://github.com/kedro-org/kedro/blob/main/CONTRIBUTING.md) guidelines
- [x] 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)
- [x] Opened this PR as a 'Draft Pull Request' if it is work-in-progress
- [x] 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
- [x] 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:
Kedro: Rename all params (extra_params, _extra_params) to runtime_params
## Description

To be consistent with naming `params`, we will rename instances of `extra_params`, `_extra_params` to `runtime_params` across the codebase

**NOTE:** This ticket is planned as part of kedro 1.0. It needs to go in `develop` branch

## Context

We have the below terminology and we would like to be consistent across modules

```
runtime_params - CLI, resolver
extra_params - Session
_extra_params - Context
```

## Possible Implementation

- Rename `extra_params` in Session and `_extra_params` in Context with `runtime_params`
- Update docs

Hints from issue discussion:
This ticket is on hold for - https://github.com/kedro-org/kedro/issues/4475 to complete
@ravi-kumar-pilla why is it blocked by #4475? I'm expecting that to be quite a big refactoring and this rename shouldn't be so complex right?
> [@ravi-kumar-pilla](https://github.com/ravi-kumar-pilla) why is it blocked by [#4475](https://github.com/kedro-org/kedro/issues/4475)? I'm expecting that to be quite a big refactoring and this rename shouldn't be so complex right?

During backlog grooming, I remember @ElenaKhaustova mentioning this. Since the #4475 will be moving things, renaming can be done after #4475 . 

> > [@ravi-kumar-pilla](https://github.com/ravi-kumar-pilla) why is it blocked by [#4475](https://github.com/kedro-org/kedro/issues/4475)? I'm expecting that to be quite a big refactoring and this rename shouldn't be so complex right?
> 
> During backlog grooming, I remember [@ElenaKhaustova](https://github.com/ElenaKhaustova) mentioning this. Since the [#4475](https://github.com/kedro-org/kedro/issues/4475) will be moving things, renaming can be done after [#4475](https://github.com/kedro-org/kedro/issues/4475) .

I just looked into the params that are going to be renamed and this is not blocked by https://github.com/kedro-org/kedro/issues/4475. At the backlog grooming, I probably got it wrong cause I was thinking of `runtime patterns` but not `runtime parameters`. So we can go ahead with this ticket.
Thank you @ElenaKhaustova . I should have reached you earlier, I was reading on the ticket #4475 and the runner docs. Thanks for confirming

Commit message: Merge branch 'develop' into chore/rename-params

Patch to review:
diff --git a/RELEASE.md b/RELEASE.md
index b051d085c3..d82bc15050 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -7,6 +7,7 @@
 
 ## Breaking changes to the API
 * Private methods `_is_project` and `_find_kedro_project` are changed to `is_kedro_project` and `find_kedro_project`.
+* Renamed instances of `extra_params` and `_extra_params` to `runtime_params`.
 
 ## Migration guide from Kedro 0.19.* to 1.*
 [See the migration guide for 1.0.0 in the Kedro documentation](https://docs.kedro.org/en/latest/resources/migration.html).
diff --git a/docs/source/deployment/aws_batch.md b/docs/source/deployment/aws_batch.md
index fbe752f220..37d9ac8f1b 100644
--- a/docs/source/deployment/aws_batch.md
+++ b/docs/source/deployment/aws_batch.md
@@ -318,7 +318,7 @@ def run(tag, env, ...):
     tag = _get_values_as_tuple(tag) if tag else tag
     node_names = _get_values_as_tuple(node_names) if node_names else node_names
 
-    with KedroSession.create(env=env, extra_params=params) as session:
+    with KedroSession.create(env=env, runtime_params=params) as session:
         context = session.load_context()
         runner_instance = _instantiate_runner(runner, is_async, context)
         session.run(
diff --git a/docs/source/deployment/dask.md b/docs/source/deployment/dask.md
index 56707ec14d..427121b23d 100644
--- a/docs/source/deployment/dask.md
+++ b/docs/source/deployment/dask.md
@@ -256,7 +256,7 @@ def run(tag, env, ...):
     tag = _get_values_as_tuple(tag) if tag else tag
     node_names = _get_values_as_tuple(node_names) if node_names else node_names
 
-    with KedroSession.create(env=env, extra_params=params) as session:
+    with KedroSession.create(env=env, runtime_params=params) as session:
         context = session.load_context()
         runner_instance = _instantiate_runner(runner, is_async, context)
         session.run(
diff --git a/docs/source/deployment/vertexai.md b/docs/source/deployment/vertexai.md
index 97e2f7bfda..92c3ee1d25 100644
--- a/docs/source/deployment/vertexai.md
+++ b/docs/source/deployment/vertexai.md
@@ -3,4 +3,4 @@
 Vertex AI pipelines is a Google Cloud Platform service that aims to deliver Kubeflow Pipelines functionality in a fully managed fashion.
 
 ## The `kedro-vertexai` plugin
-The `kedro-vertexai` plugin from GetInData | Part of Xebia enables you to run a Kedro pipeline on Vertex AI Pipelines. Consult the [GitHub repository for `kedro-vertexai`](https://github.com/getindata/kedro-vertexai) for further details, or take a look at the [documentation](https://kedro-vertexai.readthedocs.io/).
+The `kedro-vertexai` plugin from GetInData | Part of Xebia enables you to run a Kedro pipeline on Vertex AI Pipelines. Consult the [GitHub repository for `kedro-vertexai`](https://github.com/getindata/kedro-vertexai) for further details, or take a look at the [documentation](https://kedro-vertexai.readthedocs.io/en/stable/).
diff --git a/docs/source/development/commands_reference.md b/docs/source/development/commands_reference.md
index 753415b762..c8bf573586 100644
--- a/docs/source/development/commands_reference.md
+++ b/docs/source/development/commands_reference.md
@@ -247,7 +247,7 @@ def run(
     node_names = tuple(node_names)
 
     with KedroSession.create(
-        env=env, conf_source=conf_source, extra_params=params
+        env=env, conf_source=conf_source, runtime_params=params
     ) as session:
         session.run(
             tags=tags,
diff --git a/docs/source/kedro_project_setup/session.md b/docs/source/kedro_project_setup/session.md
index 8b22b276ed..f39508f5ee 100644
--- a/docs/source/kedro_project_setup/session.md
+++ b/docs/source/kedro_project_setup/session.md
@@ -35,7 +35,7 @@ You can provide the following optional arguments in `KedroSession.create()`:
 - `project_path`: Path to the project root directory
 - `save_on_close`: A boolean value to indicate whether or not to save the session to disk when it's closed
 - `env`: Environment for the `KedroContext`
-- `extra_params`: Optional dictionary containing extra project parameters
+- `runtime_params`: Optional dictionary containing runtime project parameters
 for the underlying **`KedroContext`**; if specified, this will update (and therefore take precedence over) parameters retrieved from the project configuration
 
 ## `bootstrap_project` and `configure_project`
diff --git a/docs/source/resources/migration.md b/docs/source/resources/migration.md
index 41b8ff6a6f..54b1bcd5f4 100644
--- a/docs/source/resources/migration.md
+++ b/docs/source/resources/migration.md
@@ -5,7 +5,8 @@
 ## Migrate an existing project that uses Kedro 0.19.* to use 1.*
 
 ### Polishing API Surface
-Kedro 1.0.0 made the following private methods `_is_project` and `_find_kedro_project` public. To update, you need to use `is_kedro_project` and `find_kedro_project` respectively.
+- Kedro 1.0.0 made the following private methods `_is_project` and `_find_kedro_project` public. To update, you need to use `is_kedro_project` and `find_kedro_project` respectively.
+- Renamed instances of `extra_params` and `_extra_params` to `runtime_params` in `KedroSession`, `KedroContext` and `PipelineSpecs`. To update, start using `runtime_params` while creating a `KedroSession`, `KedroContext` or while using pipeline hooks like `before_pipeline_run`, `after_pipeline_run` and `on_pipeline_error`.
 
 ## Migrate an existing project that uses Kedro 0.18.* to use 0.19.*
 
diff --git a/kedro/framework/cli/project.py b/kedro/framework/cli/project.py
index 7dc2ecef3b..19e746ac6c 100644
--- a/kedro/framework/cli/project.py
+++ b/kedro/framework/cli/project.py
@@ -223,7 +223,7 @@ def run(  # noqa: PLR0913
     tuple_node_names = tuple(node_names)
 
     with KedroSession.create(
-        env=env, conf_source=conf_source, extra_params=params
+        env=env, conf_source=conf_source, runtime_params=params
     ) as session:
         return session.run(
             tags=tuple_tags,
diff --git a/kedro/framework/context/context.py b/kedro/framework/context/context.py
index 0b44056374..09687fe123 100644
--- a/kedro/framework/context/context.py
+++ b/kedro/framework/context/context.py
@@ -162,7 +162,7 @@ class KedroContext:
         package_name: Package name for the Kedro project the context is
             created for.
         hook_manager: The ``PluginManager`` to activate hooks, supplied by the session.
-        extra_params: Optional dictionary containing extra project parameters.
+        runtime_params: Optional dictionary containing runtime project parameters.
             If specified, will update (and therefore take precedence over)
             the parameters retrieved from the project configuration.
 
@@ -173,7 +173,7 @@ class KedroContext:
     env: str | None = field(init=True)
     _package_name: str = field(init=True)
     _hook_manager: PluginManager = field(init=True)
-    _extra_params: dict[str, Any] | None = field(
+    runtime_params: dict[str, Any] | None = field(
         init=True, default=None, converter=deepcopy
     )
 
@@ -203,9 +203,9 @@ def params(self) -> dict[str, Any]:
             warn(f"Parameters not found in your Kedro project config.\n{exc!s}")
             params = {}
 
-        if self._extra_params:
+        if self.runtime_params:
             # Merge nested structures
-            params = OmegaConf.merge(params, self._extra_params)
+            params = OmegaConf.merge(params, self.runtime_params)
 
         return OmegaConf.to_container(params) if OmegaConf.is_config(params) else params  # type: ignore[return-value]
 
diff --git a/kedro/framework/hooks/specs.py b/kedro/framework/hooks/specs.py
index 3b32eb294c..2907bc8b96 100644
--- a/kedro/framework/hooks/specs.py
+++ b/kedro/framework/hooks/specs.py
@@ -157,7 +157,7 @@ def before_pipeline_run(
                      "from_inputs": Optional[List[str]],
                      "to_outputs": Optional[List[str]],
                      "load_versions": Optional[List[str]],
-                     "extra_params": Optional[Dict[str, Any]]
+                     "runtime_params": Optional[Dict[str, Any]]
                      "pipeline_name": str,
                      "namespace": Optional[str],
                      "runner": str,
@@ -194,7 +194,7 @@ def after_pipeline_run(
                      "from_inputs": Optional[List[str]],
                      "to_outputs": Optional[List[str]],
                      "load_versions": Optional[List[str]],
-                     "extra_params": Optional[Dict[str, Any]]
+                     "runtime_params": Optional[Dict[str, Any]]
                      "pipeline_name": str,
                      "namespace": Optional[str],
                      "runner": str,
@@ -235,7 +235,7 @@ def on_pipeline_error(
                      "from_inputs": Optional[List[str]],
                      "to_outputs": Optional[List[str]],
                      "load_versions": Optional[List[str]],
-                     "extra_params": Optional[Dict[str, Any]]
+                     "runtime_params": Optional[Dict[str, Any]]
                      "pipeline_name": str,
                      "namespace": Optional[str],
                      "runner": str,
diff --git a/kedro/framework/session/session.py b/kedro/framework/session/session.py
index 98f9de9cda..96e4c8efcb 100644
--- a/kedro/framework/session/session.py
+++ b/kedro/framework/session/session.py
@@ -134,7 +134,7 @@ def create(
         project_path: Path | str | None = None,
         save_on_close: bool = True,
         env: str | None = None,
-        extra_params: dict[str, Any] | None = None,
+        runtime_params: dict[str, Any] | None = None,
         conf_source: str | None = None,
     ) -> KedroSession:
         """Create a new instance of ``KedroSession`` with the session data.
@@ -145,7 +145,7 @@ def create(
             save_on_close: Whether or not to save the session when it's closed.
             conf_source: Path to a directory containing configuration
             env: Environment for the KedroContext.
-            extra_params: Optional dictionary containing extra project parameters
+            runtime_params: Optional dictionary containing extra project parameters
                 for underlying KedroContext. If specified, will update (and therefore
                 take precedence over) the parameters retrieved from the project
                 configuration.
@@ -177,8 +177,8 @@ def create(
         if env:
             session_data["env"] = env
 
-        if extra_params:
-            session_data["extra_params"] = extra_params
+        if runtime_params:
+            session_data["runtime_params"] = runtime_params
 
         try:
             session_data["username"] = getpass.getuser()
@@ -234,7 +234,7 @@ def store(self) -> dict[str, Any]:
     def load_context(self) -> KedroContext:
         """An instance of the project context."""
         env = self.store.get("env")
-        extra_params = self.store.get("extra_params")
+        runtime_params = self.store.get("runtime_params")
         config_loader = self._get_config_loader()
         context_class = settings.CONTEXT_CLASS
         context = context_class(
@@ -242,7 +242,7 @@ def load_context(self) -> KedroContext:
             project_path=self._project_path,
             config_loader=config_loader,
             env=env,
-            extra_params=extra_params,
+            runtime_params=runtime_params,
             hook_manager=self._hook_manager,
         )
         self._hook_manager.hook.after_context_created(context=context)
@@ -252,13 +252,13 @@ def load_context(self) -> KedroContext:
     def _get_config_loader(self) -> AbstractConfigLoader:
         """An instance of the config loader."""
         env = self.store.get("env")
-        extra_params = self.store.get("extra_params")
+        runtime_params = self.store.get("runtime_params")
 
         config_loader_class = settings.CONFIG_LOADER_CLASS
         return config_loader_class(  # type: ignore[no-any-return]
             conf_source=self._conf_source,
             env=env,
-            runtime_params=extra_params,
+            runtime_params=runtime_params,
             **settings.CONFIG_LOADER_ARGS,
         )
 
@@ -337,7 +337,7 @@ def run(  # noqa: PLR0913
 
         session_id = self.store["session_id"]
         save_version = session_id
-        extra_params = self.store.get("extra_params") or {}
+        runtime_params = self.store.get("runtime_params") or {}
         context = self.load_context()
 
         name = pipeline_name or "__default__"
@@ -373,7 +373,7 @@ def run(  # noqa: PLR0913
             "from_inputs": from_inputs,
             "to_outputs": to_outputs,
             "load_versions": load_versions,
-            "extra_params": extra_params,
+            "runtime_params": runtime_params,
             "pipeline_name": pipeline_name,
             "namespace": namespace,
             "runner": getattr(runner, "__name__", str(runner)),
diff --git a/kedro/ipython/__init__.py b/kedro/ipython/__init__.py
index c51911d0b9..3215b34ec6 100644
--- a/kedro/ipython/__init__.py
+++ b/kedro/ipython/__init__.py
@@ -112,7 +112,7 @@ def magic_reload_kedro(
 def reload_kedro(
     path: str | None = None,
     env: str | None = None,
-    extra_params: dict[str, Any] | None = None,
+    runtime_params: dict[str, Any] | None = None,
     local_namespace: dict[str, Any] | None = None,
     conf_source: str | None = None,
 ) -> None:  # pragma: no cover
@@ -128,7 +128,7 @@ def reload_kedro(
     session = KedroSession.create(
         project_path,
         env=env,
-        extra_params=extra_params,
+        runtime_params=runtime_params,
         conf_source=conf_source,
     )
     context = session.load_context()
diff --git a/tests/framework/cli/test_cli.py b/tests/framework/cli/test_cli.py
index dd1018fe86..8eac3bb0a2 100644
--- a/tests/framework/cli/test_cli.py
+++ b/tests/framework/cli/test_cli.py
@@ -827,11 +827,11 @@ def test_run_with_params_in_config(
             namespace=None,
         )
         mock_session_create.assert_called_once_with(
-            env=mocker.ANY, conf_source=None, extra_params=expected
+            env=mocker.ANY, conf_source=None, runtime_params=expected
         )
 
     @mark.parametrize(
-        "cli_arg,expected_extra_params",
+        "cli_arg,expected_runtime_params",
         [
             ("foo=bar", {"foo": "bar"}),
             (
@@ -861,13 +861,13 @@ def test_run_with_params_in_config(
             ),
         ],
     )
-    def test_run_extra_params(
+    def test_run_runtime_params(
         self,
         mocker,
         fake_project_cli,
         fake_metadata,
         cli_arg,
-        expected_extra_params,
+        expected_runtime_params,
     ):
         mock_session_create = mocker.patch.object(KedroSession, "create")
 
@@ -877,11 +877,11 @@ def test_run_extra_params(
 
         assert not result.exit_code
         mock_session_create.assert_called_once_with(
-            env=mocker.ANY, conf_source=None, extra_params=expected_extra_params
+            env=mocker.ANY, conf_source=None, runtime_params=expected_runtime_params
         )
 
     @mark.parametrize("bad_arg", ["bad", "foo=bar,bad"])
-    def test_bad_extra_params(self, fake_project_cli, fake_metadata, bad_arg):
+    def test_bad_runtime_params(self, fake_project_cli, fake_metadata, bad_arg):
         result = CliRunner().invoke(
             fake_project_cli, ["run", "--params", bad_arg], obj=fake_metadata
         )
diff --git a/tests/framework/context/test_context.py b/tests/framework/context/test_context.py
index ea62cb04c9..5f926bb3ec 100644
--- a/tests/framework/context/test_context.py
+++ b/tests/framework/context/test_context.py
@@ -185,16 +185,16 @@ def dummy_dataframe():
 
 
 @pytest.fixture(params=[None])
-def extra_params(request):
+def runtime_params(request):
     return request.param
 
 
 @pytest.fixture
-def dummy_context(tmp_path, prepare_project_dir, env, extra_params):
+def dummy_context(tmp_path, prepare_project_dir, env, runtime_params):
     bootstrap_project(tmp_path)
 
     session = KedroSession.create(
-        project_path=tmp_path, env=env, extra_params=extra_params
+        project_path=tmp_path, env=env, runtime_params=runtime_params
     )
     context = session.load_context()
     config_loader = context.config_loader
@@ -204,7 +204,7 @@ def dummy_context(tmp_path, prepare_project_dir, env, extra_params):
         env=env,
         package_name=MOCK_PACKAGE_NAME,
         hook_manager=_create_hook_manager(),
-        extra_params=extra_params,
+        runtime_params=runtime_params,
     )
 
     yield context
@@ -270,13 +270,13 @@ def test_wrong_catalog_type(self, mock_settings_file_bad_data_catalog_class):
             assert mock_settings.DATA_CATALOG_CLASS
 
     @pytest.mark.parametrize(
-        "extra_params",
+        "runtime_params",
         [None, {}, {"foo": "bar", "baz": [1, 2], "qux": None}],
         indirect=True,
     )
-    def test_params(self, dummy_context, extra_params):
-        extra_params = extra_params or {}
-        expected = {"param1": 1, "param2": 2, "param3": {"param4": 3}, **extra_params}
+    def test_params(self, dummy_context, runtime_params):
+        runtime_params = runtime_params or {}
+        expected = {"param1": 1, "param2": 2, "param3": {"param4": 3}, **runtime_params}
         assert dummy_context.params == expected
 
     @pytest.mark.parametrize(
@@ -288,19 +288,19 @@ def test_nested_params(self, param, expected, dummy_context):
         assert param == expected
 
     @pytest.mark.parametrize(
-        "extra_params",
+        "runtime_params",
         [None, {}, {"foo": "bar", "baz": [1, 2], "qux": None}],
         indirect=True,
     )
-    def test_params_missing(self, mocker, extra_params, dummy_context):
+    def test_params_missing(self, mocker, runtime_params, dummy_context):
         mock_config_loader = mocker.patch("kedro.config.OmegaConfigLoader.__getitem__")
         mock_config_loader.side_effect = MissingConfigException("nope")
-        extra_params = extra_params or {}
+        runtime_params = runtime_params or {}
 
         pattern = "Parameters not found in your Kedro project config"
         with pytest.warns(UserWarning, match=pattern):
             actual = dummy_context.params
-        assert actual == extra_params
+        assert actual == runtime_params
 
     @pytest.mark.parametrize("env", ["custom_env"], indirect=True)
     def test_custom_env(self, dummy_context, env):
diff --git a/tests/framework/session/conftest.py b/tests/framework/session/conftest.py
index ea9fbbdb0d..9cfb09de51 100644
--- a/tests/framework/session/conftest.py
+++ b/tests/framework/session/conftest.py
@@ -375,7 +375,7 @@ class MockSettings(_ProjectSettings):
 @pytest.fixture
 def mock_session(mock_settings, mock_package_name, tmp_path):
     configure_project(mock_package_name)
-    session = KedroSession.create(tmp_path, extra_params={"params:key": "value"})
+    session = KedroSession.create(tmp_path, runtime_params={"params:key": "value"})
     yield session
     session.close()
 
diff --git a/tests/framework/session/test_session.py b/tests/framework/session/test_session.py
index 1c67824d8d..6e26416ad1 100644
--- a/tests/framework/session/test_session.py
+++ b/tests/framework/session/test_session.py
@@ -285,7 +285,7 @@ class FakeException(Exception):
 class TestKedroSession:
     @pytest.mark.usefixtures("mock_settings_context_class")
     @pytest.mark.parametrize("env", [None, "env1"])
-    @pytest.mark.parametrize("extra_params", [None, {"key": "val"}])
+    @pytest.mark.parametrize("runtime_params", [None, {"key": "val"}])
     def test_create(
         self,
         fake_project,
@@ -293,12 +293,14 @@ def test_create(
         fake_session_id,
         mocker,
         env,
-        extra_params,
+        runtime_params,
         fake_username,
     ):
         mock_click_ctx = mocker.patch("click.get_current_context").return_value
         mocker.patch("sys.argv", ["kedro", "run", "--params=x"])
-        session = KedroSession.create(fake_project, env=env, extra_params=extra_params)
+        session = KedroSession.create(
+            fake_project, env=env, runtime_params=runtime_params
+        )
 
         expected_cli_data = {
             "args": mock_click_ctx.args,
@@ -313,8 +315,8 @@ def test_create(
         }
         if env:
             expected_store["env"] = env
-        if extra_params:
-            expected_store["extra_params"] = extra_params
+        if runtime_params:
+            expected_store["runtime_params"] = runtime_params
 
         expected_store["username"] = fake_username
 
@@ -334,7 +336,7 @@ def test_create_multiple_sessions(self, fake_project):
                 pass
 
     @pytest.mark.usefixtures("mock_settings_context_class")
-    def test_create_no_env_extra_params(
+    def test_create_no_env_runtime_params(
         self,
         fake_project,
         mock_context_class,
@@ -647,7 +649,7 @@ def test_run(
             "from_inputs": None,
             "to_outputs": None,
             "load_versions": None,
-            "extra_params": {},
+            "runtime_params": {},
             "pipeline_name": fake_pipeline_name,
             "namespace": None,
             "runner": mock_runner.__name__,
@@ -713,7 +715,7 @@ def test_run_thread_runner(
             "from_inputs": None,
             "to_outputs": None,
             "load_versions": None,
-            "extra_params": {},
+            "runtime_params": {},
             "pipeline_name": fake_pipeline_name,
             "namespace": None,
             "runner": mock_thread_runner.__name__,
@@ -783,7 +785,7 @@ def test_run_multiple_times(
             "from_inputs": None,
             "to_outputs": None,
             "load_versions": None,
-            "extra_params": {},
+            "runtime_params": {},
             "pipeline_name": fake_pipeline_name,
             "namespace": None,
             "runner": mock_runner.__name__,
@@ -862,7 +864,7 @@ def test_run_exception(
             "from_inputs": None,
             "to_outputs": None,
             "load_versions": None,
-            "extra_params": {},
+            "runtime_params": {},
             "pipeline_name": fake_pipeline_name,
             "namespace": None,
             "runner": mock_runner.__name__,
@@ -934,7 +936,7 @@ def test_run_broken_pipeline_multiple_times(
             "from_inputs": None,
             "to_outputs": None,
             "load_versions": None,
-            "extra_params": {},
+            "runtime_params": {},
             "pipeline_name": fake_pipeline_name,
             "namespace": None,
             "runner": broken_runner.__name__,
@@ -1019,8 +1021,8 @@ def test_no_DictConfig_in_store(
     params,
     fake_project,
 ):
-    extra_params = _split_params(None, None, params)
-    session = KedroSession.create(fake_project, extra_params=extra_params)
+    runtime_params = _split_params(None, None, params)
+    session = KedroSession.create(fake_project, runtime_params=runtime_params)
 
     assert not any(
         OmegaConf.is_config(value) for value in get_all_values(session._store)
diff --git a/tests/framework/session/test_session_hook_manager.py b/tests/framework/session/test_session_hook_manager.py
index 22e02a0250..ba46538a8c 100644
--- a/tests/framework/session/test_session_hook_manager.py
+++ b/tests/framework/session/test_session_hook_manager.py
@@ -108,7 +108,7 @@ def test_disabling_auto_discovered_hooks(
         unregister_mock = mocker.patch("pluggy._manager.PluginManager.unregister")
 
         # create a session that will use the mock_settings_with_disabled_hooks from the fixture.
-        KedroSession.create(tmp_path, extra_params={"params:key": "value"})
+        KedroSession.create(tmp_path, runtime_params={"params:key": "value"})
 
         mocked_distinfo.assert_called_once_with()
         unregister_mock.assert_called_once_with(plugin=distinfo[0][0])
diff --git a/tests/ipython/test_ipython.py b/tests/ipython/test_ipython.py
index 87f2d4c814..c86c1d0741 100644
--- a/tests/ipython/test_ipython.py
+++ b/tests/ipython/test_ipython.py
@@ -95,7 +95,7 @@ def my_register_pipeline():
         mock_session_create.assert_called_once_with(
             None,
             env=None,
-            extra_params=None,
+            runtime_params=None,
             conf_source=None,
         )
         _, kwargs = ipython_spy.call_args_list[0]
@@ -132,7 +132,7 @@ def my_register_pipeline():
         mock_session_create.assert_called_once_with(
             fake_metadata.project_path,
             env=dummy_env,
-            extra_params=dummy_dict,
+            runtime_params=dummy_dict,
             conf_source=dummy_conf_source,
         )
         _, kwargs = ipython_spy.call_args_list[0]


Code review comments:
diff_hunk: @@ -173,7 +173,7 @@ class KedroContext:
     env: str | None = field(init=True)
     _package_name: str = field(init=True)
     _hook_manager: PluginManager = field(init=True)
-    _extra_params: dict[str, Any] | None = field(
+    runtime_params: dict[str, Any] | None = field(
path: kedro/framework/context/context.py
text: @user1:
This should still be pre-fixed by the underscore to be consistent with the other arguments. 

@author:
Sure, I was not sure if it should be private, but could you please let me know why some fields like `project_path` and `config_loader` are public fields but `_package_name` and others are private ? 

@user1:
There's some context to why here: https://github.com/kedro-org/kedro/pull/3300 But for this specifically, it was private so I don't see why we suddenly would make it public when the goal of the task is only to rename.