prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  [request] cpp-taskflow/2.5.0
  ### Package Details
    * Package Name/Version: **cpp-taskflow/2.5.0**
    * Changelog: **https://taskflow.github.io/taskflow/release-2-5-0.html**
  
  
  Please note that `cpp-taskflow` is renamed to `taskflow`. So new recipe shall be created.
  
  P.S. Can you tell me please, why recipes is not updated automatically, when new library version is released? Lask of automation? Will it be fixed in future conan center pipeline?
  
  
  </issue>
  <code>
  [start of recipes/taskflow/all/conanfile.py]
  1 from conans import ConanFile, tools
  2 from conans.errors import ConanInvalidConfiguration
  3 from conans.model.version import Version
  4 import os
  5 
  6 
  7 class TaskflowConan(ConanFile):
  8     name = "taskflow"
  9     description = "A fast C++ header-only library to help you quickly write parallel programs with complex task dependencies."
  10     topics = ("conan", "taskflow", "tasking", "parallelism")
  11     url = "https://github.com/conan-io/conan-center-index"
  12     homepage = "https://github.com/taskflow/taskflow"
  13     license = "MIT"
  14 
  15     no_copy_source = True
  16 
  17     settings = "os", "compiler"
  18 
  19     _source_subfolder = "source_subfolder"
  20 
  21     def configure(self):
  22         compiler = str(self.settings.compiler)
  23         compiler_version = tools.Version(self.settings.compiler.version)
  24         min_req_cppstd = "17" if tools.Version(self.version) <= "2.2.0" else "14"
  25 
  26         if self.settings.compiler.cppstd:
  27             tools.check_min_cppstd(self, min_req_cppstd)
  28         else:
  29             self.output.warn("%s recipe lacks information about the %s compiler"
  30                              " standard version support" % (self.name, compiler))
  31 
  32         minimal_version = {
  33             "17" : {
  34                 "Visual Studio": "16",
  35                 "gcc": "7.3",
  36                 "clang": "6.0",
  37                 "apple-clang": "10.0"
  38             },
  39             "14" : {
  40                 "Visual Studio": "15",
  41                 "gcc": "5",
  42                 "clang": "4.0",
  43                 "apple-clang": "8.0"
  44             }
  45         }
  46 
  47         if compiler not in minimal_version[min_req_cppstd]:
  48             self.output.info("%s requires a compiler that supports at least C++%s" % (self.name, min_req_cppstd))
  49             return
  50 
  51         # Exclude compilers not supported by taskflow
  52         if compiler_version < minimal_version[min_req_cppstd][compiler]:
  53             raise ConanInvalidConfiguration("%s requires a compiler that supports"
  54                                             " at least C++%s. %s %s is not"
  55                                             " supported." % (self.name, min_req_cppstd, compiler, Version(self.settings.compiler.version.value)))
  56 
  57     def source(self):
  58         tools.get(**self.conan_data["sources"][self.version])
  59         extracted_dir = self.name + "-" + self.version
  60         os.rename(extracted_dir, self._source_subfolder)
  61 
  62     def package(self):
  63         self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
  64         self.copy(pattern="*", dst="include/taskflow", src=os.path.join(self._source_subfolder, "taskflow"))
  65 
  66     def package_id(self):
  67         self.info.header_only()
  68 
  69     def package_info(self):
  70         if self.settings.os == "Linux":
  71             self.cpp_info.system_libs.append("pthread")
  72         if self.settings.compiler == "Visual Studio":
  73             self.cpp_info.defines.append("_ENABLE_EXTENDED_ALIGNED_STORAGE")
  74 
  75
  [end of recipes/taskflow/all/conanfile.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/recipes/taskflow/all/conanfile.py b/recipes/taskflow/all/conanfile.py
  --- a/recipes/taskflow/all/conanfile.py
  +++ b/recipes/taskflow/all/conanfile.py
  @@ -1,8 +1,7 @@
  -from conans import ConanFile, tools
  -from conans.errors import ConanInvalidConfiguration
  -from conans.model.version import Version
   import os
   
  +from conans import ConanFile, tools
  +from conans.errors import ConanInvalidConfiguration
   
   class TaskflowConan(ConanFile):
       name = "taskflow"
  @@ -16,43 +15,41 @@
   
       settings = "os", "compiler"
   
  -    _source_subfolder = "source_subfolder"
  +    @property
  +    def _source_subfolder(self):
  +        return "source_subfolder"
   
       def configure(self):
  -        compiler = str(self.settings.compiler)
  -        compiler_version = tools.Version(self.settings.compiler.version)
  -        min_req_cppstd = "17" if tools.Version(self.version) <= "2.2.0" else "14"
  +        minimal_cpp_standard = "17" if tools.Version(self.version) <= "2.2.0" else "14"
   
           if self.settings.compiler.cppstd:
  -            tools.check_min_cppstd(self, min_req_cppstd)
  -        else:
  -            self.output.warn("%s recipe lacks information about the %s compiler"
  -                             " standard version support" % (self.name, compiler))
  +            tools.check_min_cppstd(self, minimal_cpp_standard)
   
           minimal_version = {
  -            "17" : {
  +            "17": {
                   "Visual Studio": "16",
                   "gcc": "7.3",
                   "clang": "6.0",
                   "apple-clang": "10.0"
               },
  -            "14" : {
  +            "14": {
                   "Visual Studio": "15",
                   "gcc": "5",
                   "clang": "4.0",
                   "apple-clang": "8.0"
               }
  -        }
  +        }[minimal_cpp_standard]
   
  -        if compiler not in minimal_version[min_req_cppstd]:
  -            self.output.info("%s requires a compiler that supports at least C++%s" % (self.name, min_req_cppstd))
  +        compiler = str(self.settings.compiler)
  +        if compiler not in minimal_version:
  +            self.output.warn(
  +                "%s recipe lacks information about the %s compiler standard version support" % (self.name, compiler))
  +            self.output.warn(
  +                "%s requires a compiler that supports at least C++%s" % (self.name, minimal_cpp_standard))
               return
  -
  -        # Exclude compilers not supported by taskflow
  -        if compiler_version < minimal_version[min_req_cppstd][compiler]:
  -            raise ConanInvalidConfiguration("%s requires a compiler that supports"
  -                                            " at least C++%s. %s %s is not"
  -                                            " supported." % (self.name, min_req_cppstd, compiler, Version(self.settings.compiler.version.value)))
  +        version = tools.Version(self.settings.compiler.version)
  +        if version < minimal_version[compiler]:
  +            raise ConanInvalidConfiguration("%s requires a compiler that supports at least C++%s" % (self.name, minimal_cpp_standard))
   
       def source(self):
           tools.get(**self.conan_data["sources"][self.version])
  @@ -61,7 +58,7 @@
   
       def package(self):
           self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
  -        self.copy(pattern="*", dst="include/taskflow", src=os.path.join(self._source_subfolder, "taskflow"))
  +        self.copy(pattern="*", dst=os.path.join("include", "taskflow"), src=os.path.join(self._source_subfolder, "taskflow"))
   
       def package_id(self):
           self.info.header_only()
  @@ -71,4 +68,5 @@
               self.cpp_info.system_libs.append("pthread")
           if self.settings.compiler == "Visual Studio":
               self.cpp_info.defines.append("_ENABLE_EXTENDED_ALIGNED_STORAGE")
  -
  +        self.cpp_info.names["cmake_find_package"] = "Taskflow"
  +        self.cpp_info.names["cmake_find_package_multi"] = "Taskflow"
  
verification_info: {"golden_diff": "diff --git a/recipes/taskflow/all/conanfile.py b/recipes/taskflow/all/conanfile.py\n--- a/recipes/taskflow/all/conanfile.py\n+++ b/recipes/taskflow/all/conanfile.py\n@@ -1,8 +1,7 @@\n-from conans import ConanFile, tools\n-from conans.errors import ConanInvalidConfiguration\n-from conans.model.version import Version\n import os\n \n+from conans import ConanFile, tools\n+from conans.errors import ConanInvalidConfiguration\n \n class TaskflowConan(ConanFile):\n     name = \"taskflow\"\n@@ -16,43 +15,41 @@\n \n     settings = \"os\", \"compiler\"\n \n-    _source_subfolder = \"source_subfolder\"\n+    @property\n+    def _source_subfolder(self):\n+        return \"source_subfolder\"\n \n     def configure(self):\n-        compiler = str(self.settings.compiler)\n-        compiler_version = tools.Version(self.settings.compiler.version)\n-        min_req_cppstd = \"17\" if tools.Version(self.version) <= \"2.2.0\" else \"14\"\n+        minimal_cpp_standard = \"17\" if tools.Version(self.version) <= \"2.2.0\" else \"14\"\n \n         if self.settings.compiler.cppstd:\n-            tools.check_min_cppstd(self, min_req_cppstd)\n-        else:\n-            self.output.warn(\"%s recipe lacks information about the %s compiler\"\n-                             \" standard version support\" % (self.name, compiler))\n+            tools.check_min_cppstd(self, minimal_cpp_standard)\n \n         minimal_version = {\n-            \"17\" : {\n+            \"17\": {\n                 \"Visual Studio\": \"16\",\n                 \"gcc\": \"7.3\",\n                 \"clang\": \"6.0\",\n                 \"apple-clang\": \"10.0\"\n             },\n-            \"14\" : {\n+            \"14\": {\n                 \"Visual Studio\": \"15\",\n                 \"gcc\": \"5\",\n                 \"clang\": \"4.0\",\n                 \"apple-clang\": \"8.0\"\n             }\n-        }\n+        }[minimal_cpp_standard]\n \n-        if compiler not in minimal_version[min_req_cppstd]:\n-            self.output.info(\"%s requires a compiler that supports at least C++%s\" % (self.name, min_req_cppstd))\n+        compiler = str(self.settings.compiler)\n+        if compiler not in minimal_version:\n+            self.output.warn(\n+                \"%s recipe lacks information about the %s compiler standard version support\" % (self.name, compiler))\n+            self.output.warn(\n+                \"%s requires a compiler that supports at least C++%s\" % (self.name, minimal_cpp_standard))\n             return\n-\n-        # Exclude compilers not supported by taskflow\n-        if compiler_version < minimal_version[min_req_cppstd][compiler]:\n-            raise ConanInvalidConfiguration(\"%s requires a compiler that supports\"\n-                                            \" at least C++%s. %s %s is not\"\n-                                            \" supported.\" % (self.name, min_req_cppstd, compiler, Version(self.settings.compiler.version.value)))\n+        version = tools.Version(self.settings.compiler.version)\n+        if version < minimal_version[compiler]:\n+            raise ConanInvalidConfiguration(\"%s requires a compiler that supports at least C++%s\" % (self.name, minimal_cpp_standard))\n \n     def source(self):\n         tools.get(**self.conan_data[\"sources\"][self.version])\n@@ -61,7 +58,7 @@\n \n     def package(self):\n         self.copy(pattern=\"LICENSE\", dst=\"licenses\", src=self._source_subfolder)\n-        self.copy(pattern=\"*\", dst=\"include/taskflow\", src=os.path.join(self._source_subfolder, \"taskflow\"))\n+        self.copy(pattern=\"*\", dst=os.path.join(\"include\", \"taskflow\"), src=os.path.join(self._source_subfolder, \"taskflow\"))\n \n     def package_id(self):\n         self.info.header_only()\n@@ -71,4 +68,5 @@\n             self.cpp_info.system_libs.append(\"pthread\")\n         if self.settings.compiler == \"Visual Studio\":\n             self.cpp_info.defines.append(\"_ENABLE_EXTENDED_ALIGNED_STORAGE\")\n-\n+        self.cpp_info.names[\"cmake_find_package\"] = \"Taskflow\"\n+        self.cpp_info.names[\"cmake_find_package_multi\"] = \"Taskflow\"\n", "issue": "[request] cpp-taskflow/2.5.0\n### Package Details\r\n  * Package Name/Version: **cpp-taskflow/2.5.0**\r\n  * Changelog: **https://taskflow.github.io/taskflow/release-2-5-0.html**\r\n\r\n\r\nPlease note that `cpp-taskflow` is renamed to `taskflow`. So new recipe shall be created.\r\n\r\nP.S. Can you tell me please, why recipes is not updated automatically, when new library version is released? Lask of automation? Will it be fixed in future conan center pipeline?\r\n\n", "before_files": [{"content": "from conans import ConanFile, tools\nfrom conans.errors import ConanInvalidConfiguration\nfrom conans.model.version import Version\nimport os\n\n\nclass TaskflowConan(ConanFile):\n    name = \"taskflow\"\n    description = \"A fast C++ header-only library to help you quickly write parallel programs with complex task dependencies.\"\n    topics = (\"conan\", \"taskflow\", \"tasking\", \"parallelism\")\n    url = \"https://github.com/conan-io/conan-center-index\"\n    homepage = \"https://github.com/taskflow/taskflow\"\n    license = \"MIT\"\n\n    no_copy_source = True\n\n    settings = \"os\", \"compiler\"\n\n    _source_subfolder = \"source_subfolder\"\n\n    def configure(self):\n        compiler = str(self.settings.compiler)\n        compiler_version = tools.Version(self.settings.compiler.version)\n        min_req_cppstd = \"17\" if tools.Version(self.version) <= \"2.2.0\" else \"14\"\n\n        if self.settings.compiler.cppstd:\n            tools.check_min_cppstd(self, min_req_cppstd)\n        else:\n            self.output.warn(\"%s recipe lacks information about the %s compiler\"\n                             \" standard version support\" % (self.name, compiler))\n\n        minimal_version = {\n            \"17\" : {\n                \"Visual Studio\": \"16\",\n                \"gcc\": \"7.3\",\n                \"clang\": \"6.0\",\n                \"apple-clang\": \"10.0\"\n            },\n            \"14\" : {\n                \"Visual Studio\": \"15\",\n                \"gcc\": \"5\",\n                \"clang\": \"4.0\",\n                \"apple-clang\": \"8.0\"\n            }\n        }\n\n        if compiler not in minimal_version[min_req_cppstd]:\n            self.output.info(\"%s requires a compiler that supports at least C++%s\" % (self.name, min_req_cppstd))\n            return\n\n        # Exclude compilers not supported by taskflow\n        if compiler_version < minimal_version[min_req_cppstd][compiler]:\n            raise ConanInvalidConfiguration(\"%s requires a compiler that supports\"\n                                            \" at least C++%s. %s %s is not\"\n                                            \" supported.\" % (self.name, min_req_cppstd, compiler, Version(self.settings.compiler.version.value)))\n\n    def source(self):\n        tools.get(**self.conan_data[\"sources\"][self.version])\n        extracted_dir = self.name + \"-\" + self.version\n        os.rename(extracted_dir, self._source_subfolder)\n\n    def package(self):\n        self.copy(pattern=\"LICENSE\", dst=\"licenses\", src=self._source_subfolder)\n        self.copy(pattern=\"*\", dst=\"include/taskflow\", src=os.path.join(self._source_subfolder, \"taskflow\"))\n\n    def package_id(self):\n        self.info.header_only()\n\n    def package_info(self):\n        if self.settings.os == \"Linux\":\n            self.cpp_info.system_libs.append(\"pthread\")\n        if self.settings.compiler == \"Visual Studio\":\n            self.cpp_info.defines.append(\"_ENABLE_EXTENDED_ALIGNED_STORAGE\")\n\n", "path": "recipes/taskflow/all/conanfile.py"}]}