We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
strict flag was removed from the compose API without a prior deprecation
Strict config composition functionality has become the default in Hydra 1.0 (See https://hydra.cc/docs/upgrades/0.11_to_1.0/strict_mode_flag_deprecated).

This flag was completely removed in Hydra 1.1.0.
Unfortunately, the Compose API strict flag was not deprecated and was thus an avoidable breaking change.

A followup PR will re-introduce the strict flag to the Compose API as a deprecated flag. That flag will be removed in the major version of Hydra.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `hydra/experimental/compose.py`
Content:
```
1 # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
2 # DEPRECATED: remove in 1.2
3 import warnings
4 from typing import List, Optional
5 
6 from omegaconf import DictConfig
7 
8 
9 def compose(
10     config_name: Optional[str] = None,
11     overrides: List[str] = [],
12     return_hydra_config: bool = False,
13 ) -> DictConfig:
14     from hydra import compose as real_compose
15 
16     warnings.warn(
17         category=UserWarning,
18         message="hydra.experimental.compose() is no longer experimental."
19         " Use hydra.compose()",
20     )
21     return real_compose(
22         config_name=config_name,
23         overrides=overrides,
24         return_hydra_config=return_hydra_config,
25     )
26
```

Path: `hydra/compose.py`
Content:
```
1 # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
2 from typing import List, Optional
3 
4 from omegaconf import DictConfig, open_dict
5 
6 from hydra.core.global_hydra import GlobalHydra
7 from hydra.types import RunMode
8 
9 
10 def compose(
11     config_name: Optional[str] = None,
12     overrides: List[str] = [],
13     return_hydra_config: bool = False,
14 ) -> DictConfig:
15     """
16     :param config_name: the name of the config
17            (usually the file name without the .yaml extension)
18     :param overrides: list of overrides for config file
19     :param return_hydra_config: True to return the hydra config node in the result
20     :return: the composed config
21     """
22     assert (
23         GlobalHydra().is_initialized()
24     ), "GlobalHydra is not initialized, use @hydra.main() or call one of the hydra initialization methods first"
25 
26     gh = GlobalHydra.instance()
27     assert gh.hydra is not None
28     cfg = gh.hydra.compose_config(
29         config_name=config_name,
30         overrides=overrides,
31         run_mode=RunMode.RUN,
32         from_shell=False,
33         with_log_configuration=False,
34     )
35     assert isinstance(cfg, DictConfig)
36 
37     if not return_hydra_config:
38         if "hydra" in cfg:
39             with open_dict(cfg):
40                 del cfg["hydra"]
41     return cfg
42
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/hydra/compose.py b/hydra/compose.py
--- a/hydra/compose.py
+++ b/hydra/compose.py
@@ -1,7 +1,9 @@
 # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
+import warnings
+from textwrap import dedent
 from typing import List, Optional
 
-from omegaconf import DictConfig, open_dict
+from omegaconf import DictConfig, OmegaConf, open_dict
 
 from hydra.core.global_hydra import GlobalHydra
 from hydra.types import RunMode
@@ -11,12 +13,14 @@
     config_name: Optional[str] = None,
     overrides: List[str] = [],
     return_hydra_config: bool = False,
+    strict: Optional[bool] = None,
 ) -> DictConfig:
     """
     :param config_name: the name of the config
            (usually the file name without the .yaml extension)
     :param overrides: list of overrides for config file
     :param return_hydra_config: True to return the hydra config node in the result
+    :param strict: DEPRECATED. If true, returned config has struct mode disabled.
     :return: the composed config
     """
     assert (
@@ -38,4 +42,18 @@
         if "hydra" in cfg:
             with open_dict(cfg):
                 del cfg["hydra"]
+
+    if strict is not None:
+        # DEPRECATED: remove in 1.2
+        warnings.warn(
+            dedent(
+                """\
+
+        The strict flag in the compose API is deprecated and will be removed in the next version of Hydra.
+        See https://hydra.cc/docs/upgrades/0.11_to_1.0/strict_mode_flag_deprecated for more info.
+        """
+            )
+        )
+        OmegaConf.set_struct(cfg, strict)
+
     return cfg
diff --git a/hydra/experimental/compose.py b/hydra/experimental/compose.py
--- a/hydra/experimental/compose.py
+++ b/hydra/experimental/compose.py
@@ -10,6 +10,7 @@
     config_name: Optional[str] = None,
     overrides: List[str] = [],
     return_hydra_config: bool = False,
+    strict: Optional[bool] = None,
 ) -> DictConfig:
     from hydra import compose as real_compose
 
@@ -22,4 +23,5 @@
         config_name=config_name,
         overrides=overrides,
         return_hydra_config=return_hydra_config,
+        strict=strict,
     )

{"golden_diff": "diff --git a/hydra/compose.py b/hydra/compose.py\n--- a/hydra/compose.py\n+++ b/hydra/compose.py\n@@ -1,7 +1,9 @@\n # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\n+import warnings\n+from textwrap import dedent\n from typing import List, Optional\n \n-from omegaconf import DictConfig, open_dict\n+from omegaconf import DictConfig, OmegaConf, open_dict\n \n from hydra.core.global_hydra import GlobalHydra\n from hydra.types import RunMode\n@@ -11,12 +13,14 @@\n     config_name: Optional[str] = None,\n     overrides: List[str] = [],\n     return_hydra_config: bool = False,\n+    strict: Optional[bool] = None,\n ) -> DictConfig:\n     \"\"\"\n     :param config_name: the name of the config\n            (usually the file name without the .yaml extension)\n     :param overrides: list of overrides for config file\n     :param return_hydra_config: True to return the hydra config node in the result\n+    :param strict: DEPRECATED. If true, returned config has struct mode disabled.\n     :return: the composed config\n     \"\"\"\n     assert (\n@@ -38,4 +42,18 @@\n         if \"hydra\" in cfg:\n             with open_dict(cfg):\n                 del cfg[\"hydra\"]\n+\n+    if strict is not None:\n+        # DEPRECATED: remove in 1.2\n+        warnings.warn(\n+            dedent(\n+                \"\"\"\\\n+\n+        The strict flag in the compose API is deprecated and will be removed in the next version of Hydra.\n+        See https://hydra.cc/docs/upgrades/0.11_to_1.0/strict_mode_flag_deprecated for more info.\n+        \"\"\"\n+            )\n+        )\n+        OmegaConf.set_struct(cfg, strict)\n+\n     return cfg\ndiff --git a/hydra/experimental/compose.py b/hydra/experimental/compose.py\n--- a/hydra/experimental/compose.py\n+++ b/hydra/experimental/compose.py\n@@ -10,6 +10,7 @@\n     config_name: Optional[str] = None,\n     overrides: List[str] = [],\n     return_hydra_config: bool = False,\n+    strict: Optional[bool] = None,\n ) -> DictConfig:\n     from hydra import compose as real_compose\n \n@@ -22,4 +23,5 @@\n         config_name=config_name,\n         overrides=overrides,\n         return_hydra_config=return_hydra_config,\n+        strict=strict,\n     )\n", "issue": "strict flag was removed from the compose API without a prior deprecation\nStrict config composition functionality has become the default in Hydra 1.0 (See https://hydra.cc/docs/upgrades/0.11_to_1.0/strict_mode_flag_deprecated).\r\n\r\nThis flag was completely removed in Hydra 1.1.0.\r\nUnfortunately, the Compose API strict flag was not deprecated and was thus an avoidable breaking change.\r\n\r\nA followup PR will re-introduce the strict flag to the Compose API as a deprecated flag. That flag will be removed in the major version of Hydra.\n", "before_files": [{"content": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\n# DEPRECATED: remove in 1.2\nimport warnings\nfrom typing import List, Optional\n\nfrom omegaconf import DictConfig\n\n\ndef compose(\n    config_name: Optional[str] = None,\n    overrides: List[str] = [],\n    return_hydra_config: bool = False,\n) -> DictConfig:\n    from hydra import compose as real_compose\n\n    warnings.warn(\n        category=UserWarning,\n        message=\"hydra.experimental.compose() is no longer experimental.\"\n        \" Use hydra.compose()\",\n    )\n    return real_compose(\n        config_name=config_name,\n        overrides=overrides,\n        return_hydra_config=return_hydra_config,\n    )\n", "path": "hydra/experimental/compose.py"}, {"content": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nfrom typing import List, Optional\n\nfrom omegaconf import DictConfig, open_dict\n\nfrom hydra.core.global_hydra import GlobalHydra\nfrom hydra.types import RunMode\n\n\ndef compose(\n    config_name: Optional[str] = None,\n    overrides: List[str] = [],\n    return_hydra_config: bool = False,\n) -> DictConfig:\n    \"\"\"\n    :param config_name: the name of the config\n           (usually the file name without the .yaml extension)\n    :param overrides: list of overrides for config file\n    :param return_hydra_config: True to return the hydra config node in the result\n    :return: the composed config\n    \"\"\"\n    assert (\n        GlobalHydra().is_initialized()\n    ), \"GlobalHydra is not initialized, use @hydra.main() or call one of the hydra initialization methods first\"\n\n    gh = GlobalHydra.instance()\n    assert gh.hydra is not None\n    cfg = gh.hydra.compose_config(\n        config_name=config_name,\n        overrides=overrides,\n        run_mode=RunMode.RUN,\n        from_shell=False,\n        with_log_configuration=False,\n    )\n    assert isinstance(cfg, DictConfig)\n\n    if not return_hydra_config:\n        if \"hydra\" in cfg:\n            with open_dict(cfg):\n                del cfg[\"hydra\"]\n    return cfg\n", "path": "hydra/compose.py"}], "after_files": [{"content": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\n# DEPRECATED: remove in 1.2\nimport warnings\nfrom typing import List, Optional\n\nfrom omegaconf import DictConfig\n\n\ndef compose(\n    config_name: Optional[str] = None,\n    overrides: List[str] = [],\n    return_hydra_config: bool = False,\n    strict: Optional[bool] = None,\n) -> DictConfig:\n    from hydra import compose as real_compose\n\n    warnings.warn(\n        category=UserWarning,\n        message=\"hydra.experimental.compose() is no longer experimental.\"\n        \" Use hydra.compose()\",\n    )\n    return real_compose(\n        config_name=config_name,\n        overrides=overrides,\n        return_hydra_config=return_hydra_config,\n        strict=strict,\n    )\n", "path": "hydra/experimental/compose.py"}, {"content": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nimport warnings\nfrom textwrap import dedent\nfrom typing import List, Optional\n\nfrom omegaconf import DictConfig, OmegaConf, open_dict\n\nfrom hydra.core.global_hydra import GlobalHydra\nfrom hydra.types import RunMode\n\n\ndef compose(\n    config_name: Optional[str] = None,\n    overrides: List[str] = [],\n    return_hydra_config: bool = False,\n    strict: Optional[bool] = None,\n) -> DictConfig:\n    \"\"\"\n    :param config_name: the name of the config\n           (usually the file name without the .yaml extension)\n    :param overrides: list of overrides for config file\n    :param return_hydra_config: True to return the hydra config node in the result\n    :param strict: DEPRECATED. If true, returned config has struct mode disabled.\n    :return: the composed config\n    \"\"\"\n    assert (\n        GlobalHydra().is_initialized()\n    ), \"GlobalHydra is not initialized, use @hydra.main() or call one of the hydra initialization methods first\"\n\n    gh = GlobalHydra.instance()\n    assert gh.hydra is not None\n    cfg = gh.hydra.compose_config(\n        config_name=config_name,\n        overrides=overrides,\n        run_mode=RunMode.RUN,\n        from_shell=False,\n        with_log_configuration=False,\n    )\n    assert isinstance(cfg, DictConfig)\n\n    if not return_hydra_config:\n        if \"hydra\" in cfg:\n            with open_dict(cfg):\n                del cfg[\"hydra\"]\n\n    if strict is not None:\n        # DEPRECATED: remove in 1.2\n        warnings.warn(\n            dedent(\n                \"\"\"\\\n\n        The strict flag in the compose API is deprecated and will be removed in the next version of Hydra.\n        See https://hydra.cc/docs/upgrades/0.11_to_1.0/strict_mode_flag_deprecated for more info.\n        \"\"\"\n            )\n        )\n        OmegaConf.set_struct(cfg, strict)\n\n    return cfg\n", "path": "hydra/compose.py"}]}