prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  [request] stb/20210818
  ### Package Details
    * Package Name/Version: **stb/20210818**
  
  There has been +1800 commits added to stb since Feb 2 of 2020, I greatly suggest updating it.
  
  The above mentioned version is newly released by the upstream project and not yet available as a recipe. Please add this version.
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `recipes/stb/all/conanfile.py`
  Content:
  ```
  1 from conans import ConanFile, tools
  2 import os
  3 
  4 class StbConan(ConanFile):
  5     name = "stb"
  6     description = "single-file public domain libraries for C/C++"
  7     topics = ("conan", "stb", "single-file")
  8     url = "https://github.com/conan-io/conan-center-index"
  9     homepage = "https://github.com/nothings/stb"
  10     license = ("Unlicense", "MIT")
  11     no_copy_source = True
  12     _source_subfolder = "source_subfolder"
  13 
  14     def source(self):
  15         commit = os.path.splitext(os.path.basename(self.conan_data["sources"][self.version]["url"]))[0]
  16         tools.get(**self.conan_data["sources"][self.version])
  17         extracted_dir = self.name + "-" + commit
  18         os.rename(extracted_dir, self._source_subfolder)
  19 
  20     def package(self):
  21         self.copy("LICENSE", src=self._source_subfolder, dst="licenses")
  22         self.copy("*.h", src=self._source_subfolder, dst="include")
  23         self.copy("stb_vorbis.c", src=self._source_subfolder, dst="include")
  24         tools.rmdir(os.path.join(self.package_folder, "include", "tests"))
  25 
  26     def package_id(self):
  27         self.info.header_only()
  28     
  29     def package_info(self):
  30         self.cpp_info.defines.append('STB_TEXTEDIT_KEYTYPE=unsigned')
  31
  ```
  --- 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()
  
  ```
  
golden_diff: diff --git a/recipes/stb/all/conanfile.py b/recipes/stb/all/conanfile.py
  --- a/recipes/stb/all/conanfile.py
  +++ b/recipes/stb/all/conanfile.py
  @@ -1,27 +1,53 @@
   from conans import ConanFile, tools
   import os
   
  +required_conan_version = ">=1.33.0"
  +
  +
   class StbConan(ConanFile):
       name = "stb"
       description = "single-file public domain libraries for C/C++"
  -    topics = ("conan", "stb", "single-file")
  +    topics = ("stb", "single-file")
       url = "https://github.com/conan-io/conan-center-index"
       homepage = "https://github.com/nothings/stb"
       license = ("Unlicense", "MIT")
       no_copy_source = True
  -    _source_subfolder = "source_subfolder"
  +
  +    options = {
  +        "with_deprecated": [True, False]
  +    }
  +
  +    default_options = {
  +        "with_deprecated": True
  +    }
  +
  +    @property
  +    def _source_subfolder(self):
  +        return "source_subfolder"
  +
  +    @property
  +    def _version(self):
  +        # HACK: Used to circumvent the incompatibility
  +        #       of the format cci.YYYYMMDD in tools.Version
  +        return str(self.version)[4:]
  +
  +    def config_options(self):
  +        if tools.Version(self._version) < "20210713":
  +            del self.options.with_deprecated
   
       def source(self):
  -        commit = os.path.splitext(os.path.basename(self.conan_data["sources"][self.version]["url"]))[0]
  -        tools.get(**self.conan_data["sources"][self.version])
  -        extracted_dir = self.name + "-" + commit
  -        os.rename(extracted_dir, self._source_subfolder)
  +        tools.get(**self.conan_data["sources"][self.version], strip_root=True, destination=self._source_subfolder)
   
       def package(self):
           self.copy("LICENSE", src=self._source_subfolder, dst="licenses")
           self.copy("*.h", src=self._source_subfolder, dst="include")
           self.copy("stb_vorbis.c", src=self._source_subfolder, dst="include")
           tools.rmdir(os.path.join(self.package_folder, "include", "tests"))
  +        if tools.Version(self._version) >= "20210713":
  +            tools.rmdir(os.path.join(self.package_folder, "include", "deprecated"))
  +        if self.options.get_safe("with_deprecated", False):
  +            self.copy("*.h", src=os.path.join(self._source_subfolder, "deprecated"), dst="include")
  +            self.copy("stb_image.c", src=os.path.join(self._source_subfolder, "deprecated"), dst="include")
   
       def package_id(self):
           self.info.header_only()
  
verification_info: {"golden_diff": "diff --git a/recipes/stb/all/conanfile.py b/recipes/stb/all/conanfile.py\n--- a/recipes/stb/all/conanfile.py\n+++ b/recipes/stb/all/conanfile.py\n@@ -1,27 +1,53 @@\n from conans import ConanFile, tools\n import os\n \n+required_conan_version = \">=1.33.0\"\n+\n+\n class StbConan(ConanFile):\n     name = \"stb\"\n     description = \"single-file public domain libraries for C/C++\"\n-    topics = (\"conan\", \"stb\", \"single-file\")\n+    topics = (\"stb\", \"single-file\")\n     url = \"https://github.com/conan-io/conan-center-index\"\n     homepage = \"https://github.com/nothings/stb\"\n     license = (\"Unlicense\", \"MIT\")\n     no_copy_source = True\n-    _source_subfolder = \"source_subfolder\"\n+\n+    options = {\n+        \"with_deprecated\": [True, False]\n+    }\n+\n+    default_options = {\n+        \"with_deprecated\": True\n+    }\n+\n+    @property\n+    def _source_subfolder(self):\n+        return \"source_subfolder\"\n+\n+    @property\n+    def _version(self):\n+        # HACK: Used to circumvent the incompatibility\n+        #       of the format cci.YYYYMMDD in tools.Version\n+        return str(self.version)[4:]\n+\n+    def config_options(self):\n+        if tools.Version(self._version) < \"20210713\":\n+            del self.options.with_deprecated\n \n     def source(self):\n-        commit = os.path.splitext(os.path.basename(self.conan_data[\"sources\"][self.version][\"url\"]))[0]\n-        tools.get(**self.conan_data[\"sources\"][self.version])\n-        extracted_dir = self.name + \"-\" + commit\n-        os.rename(extracted_dir, self._source_subfolder)\n+        tools.get(**self.conan_data[\"sources\"][self.version], strip_root=True, destination=self._source_subfolder)\n \n     def package(self):\n         self.copy(\"LICENSE\", src=self._source_subfolder, dst=\"licenses\")\n         self.copy(\"*.h\", src=self._source_subfolder, dst=\"include\")\n         self.copy(\"stb_vorbis.c\", src=self._source_subfolder, dst=\"include\")\n         tools.rmdir(os.path.join(self.package_folder, \"include\", \"tests\"))\n+        if tools.Version(self._version) >= \"20210713\":\n+            tools.rmdir(os.path.join(self.package_folder, \"include\", \"deprecated\"))\n+        if self.options.get_safe(\"with_deprecated\", False):\n+            self.copy(\"*.h\", src=os.path.join(self._source_subfolder, \"deprecated\"), dst=\"include\")\n+            self.copy(\"stb_image.c\", src=os.path.join(self._source_subfolder, \"deprecated\"), dst=\"include\")\n \n     def package_id(self):\n         self.info.header_only()\n", "issue": "[request] stb/20210818\n### Package Details\r\n  * Package Name/Version: **stb/20210818**\r\n\r\nThere has been +1800 commits added to stb since Feb 2 of 2020, I greatly suggest updating it.\r\n\r\nThe above mentioned version is newly released by the upstream project and not yet available as a recipe. Please add this version.\r\n\n", "before_files": [{"content": "from conans import ConanFile, tools\nimport os\n\nclass StbConan(ConanFile):\n    name = \"stb\"\n    description = \"single-file public domain libraries for C/C++\"\n    topics = (\"conan\", \"stb\", \"single-file\")\n    url = \"https://github.com/conan-io/conan-center-index\"\n    homepage = \"https://github.com/nothings/stb\"\n    license = (\"Unlicense\", \"MIT\")\n    no_copy_source = True\n    _source_subfolder = \"source_subfolder\"\n\n    def source(self):\n        commit = os.path.splitext(os.path.basename(self.conan_data[\"sources\"][self.version][\"url\"]))[0]\n        tools.get(**self.conan_data[\"sources\"][self.version])\n        extracted_dir = self.name + \"-\" + commit\n        os.rename(extracted_dir, self._source_subfolder)\n\n    def package(self):\n        self.copy(\"LICENSE\", src=self._source_subfolder, dst=\"licenses\")\n        self.copy(\"*.h\", src=self._source_subfolder, dst=\"include\")\n        self.copy(\"stb_vorbis.c\", src=self._source_subfolder, dst=\"include\")\n        tools.rmdir(os.path.join(self.package_folder, \"include\", \"tests\"))\n\n    def package_id(self):\n        self.info.header_only()\n    \n    def package_info(self):\n        self.cpp_info.defines.append('STB_TEXTEDIT_KEYTYPE=unsigned')\n", "path": "recipes/stb/all/conanfile.py"}], "after_files": [{"content": "from conans import ConanFile, tools\nimport os\n\nrequired_conan_version = \">=1.33.0\"\n\n\nclass StbConan(ConanFile):\n    name = \"stb\"\n    description = \"single-file public domain libraries for C/C++\"\n    topics = (\"stb\", \"single-file\")\n    url = \"https://github.com/conan-io/conan-center-index\"\n    homepage = \"https://github.com/nothings/stb\"\n    license = (\"Unlicense\", \"MIT\")\n    no_copy_source = True\n\n    options = {\n        \"with_deprecated\": [True, False]\n    }\n\n    default_options = {\n        \"with_deprecated\": True\n    }\n\n    @property\n    def _source_subfolder(self):\n        return \"source_subfolder\"\n\n    @property\n    def _version(self):\n        # HACK: Used to circumvent the incompatibility\n        #       of the format cci.YYYYMMDD in tools.Version\n        return str(self.version)[4:]\n\n    def config_options(self):\n        if tools.Version(self._version) < \"20210713\":\n            del self.options.with_deprecated\n\n    def source(self):\n        tools.get(**self.conan_data[\"sources\"][self.version], strip_root=True, destination=self._source_subfolder)\n\n    def package(self):\n        self.copy(\"LICENSE\", src=self._source_subfolder, dst=\"licenses\")\n        self.copy(\"*.h\", src=self._source_subfolder, dst=\"include\")\n        self.copy(\"stb_vorbis.c\", src=self._source_subfolder, dst=\"include\")\n        tools.rmdir(os.path.join(self.package_folder, \"include\", \"tests\"))\n        if tools.Version(self._version) >= \"20210713\":\n            tools.rmdir(os.path.join(self.package_folder, \"include\", \"deprecated\"))\n        if self.options.get_safe(\"with_deprecated\", False):\n            self.copy(\"*.h\", src=os.path.join(self._source_subfolder, \"deprecated\"), dst=\"include\")\n            self.copy(\"stb_image.c\", src=os.path.join(self._source_subfolder, \"deprecated\"), dst=\"include\")\n\n    def package_id(self):\n        self.info.header_only()\n    \n    def package_info(self):\n        self.cpp_info.defines.append('STB_TEXTEDIT_KEYTYPE=unsigned')\n", "path": "recipes/stb/all/conanfile.py"}]}