We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Use Alpha Version of Pythonnet
**Description**
Pythonnet has released a few days ago an [alpha version](https://pypi.org/project/pythonnet/3.0.0a1/) of Pythonnet 3.0.
ATM we use a hashed version (8d93c39d) of Pythonnet instead of an official release.

In the case that we don't want to wait until an official version of Pythonnet is released (which we don't have any approximation when this would happen), I think we should at least use the alpha version.

**Describe alternatives you've considered**
An alternative is to keep the hashed version as it is :)

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `src/winforms/setup.py`
Content:
```
1 #!/usr/bin/env python
2 import re
3 
4 from setuptools import setup
5 
6 # Version handline needs to be programatic because
7 # we can't import toga_winforms to compute the version;
8 # and to support versioned subpackage dependencies
9 with open('toga_winforms/__init__.py', encoding='utf8') as version_file:
10     version_match = re.search(
11         r"^__version__ = ['\"]([^'\"]*)['\"]",
12         version_file.read(),
13         re.M
14     )
15     if version_match:
16         version = version_match.group(1)
17     else:
18         raise RuntimeError("Unable to find version string.")
19 
20 setup(
21     version=version,
22     install_requires=[
23         # The Python.net team hasn't published 2.X wheels for Python 3.9 or 3.10,
24         # and their development effort seems to be focussed on the 3.X branch;
25         # they've indicated they're not planning to make the 2.X branch compatible
26         # with Python 3.10. If we want to be able to support "current" Python,
27         # we need to work off a source release until they formally release 3.0.
28         #
29         # The 8d93c39d hash is, as best as I can work out, what was in the
30         # 3.0.0-preview2021-10-05 release published to nuget - but they didn't
31         # tag anything for that release. That release contained a bug
32         # (https://github.com/pythonnet/pythonnet/issues/1613) that didn't play well
33         # with pip 21.3, so we use 94b1a71c which was released about a month later.
34         'pythonnet @ git+https://github.com/pythonnet/pythonnet@94b1a71c#egg=pythonnet',
35         'toga-core==%s' % version,
36     ],
37     test_suite='tests',
38     test_require=[
39         'toga-dummy==%s' % version,
40     ]
41 )
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/src/winforms/setup.py b/src/winforms/setup.py
--- a/src/winforms/setup.py
+++ b/src/winforms/setup.py
@@ -24,14 +24,11 @@
         # and their development effort seems to be focussed on the 3.X branch;
         # they've indicated they're not planning to make the 2.X branch compatible
         # with Python 3.10. If we want to be able to support "current" Python,
-        # we need to work off a source release until they formally release 3.0.
+        # we need to use the 3.0 branch.
         #
-        # The 8d93c39d hash is, as best as I can work out, what was in the
-        # 3.0.0-preview2021-10-05 release published to nuget - but they didn't
-        # tag anything for that release. That release contained a bug
-        # (https://github.com/pythonnet/pythonnet/issues/1613) that didn't play well
-        # with pip 21.3, so we use 94b1a71c which was released about a month later.
-        'pythonnet @ git+https://github.com/pythonnet/pythonnet@94b1a71c#egg=pythonnet',
+        # At time of writing, the most recent (and only) version of Python.net 3.0
+        # that has been released is the alpha version 3.0.0a1.
+        'pythonnet>=3.0.0a1',
         'toga-core==%s' % version,
     ],
     test_suite='tests',

{"golden_diff": "diff --git a/src/winforms/setup.py b/src/winforms/setup.py\n--- a/src/winforms/setup.py\n+++ b/src/winforms/setup.py\n@@ -24,14 +24,11 @@\n         # and their development effort seems to be focussed on the 3.X branch;\n         # they've indicated they're not planning to make the 2.X branch compatible\n         # with Python 3.10. If we want to be able to support \"current\" Python,\n-        # we need to work off a source release until they formally release 3.0.\n+        # we need to use the 3.0 branch.\n         #\n-        # The 8d93c39d hash is, as best as I can work out, what was in the\n-        # 3.0.0-preview2021-10-05 release published to nuget - but they didn't\n-        # tag anything for that release. That release contained a bug\n-        # (https://github.com/pythonnet/pythonnet/issues/1613) that didn't play well\n-        # with pip 21.3, so we use 94b1a71c which was released about a month later.\n-        'pythonnet @ git+https://github.com/pythonnet/pythonnet@94b1a71c#egg=pythonnet',\n+        # At time of writing, the most recent (and only) version of Python.net 3.0\n+        # that has been released is the alpha version 3.0.0a1.\n+        'pythonnet>=3.0.0a1',\n         'toga-core==%s' % version,\n     ],\n     test_suite='tests',\n", "issue": "Use Alpha Version of Pythonnet\n**Description**\r\nPythonnet has released a few days ago an [alpha version](https://pypi.org/project/pythonnet/3.0.0a1/) of Pythonnet 3.0.\r\nATM we use a hashed version (8d93c39d) of Pythonnet instead of an official release.\r\n\r\nIn the case that we don't want to wait until an official version of Pythonnet is released (which we don't have any approximation when this would happen), I think we should at least use the alpha version.\r\n\r\n**Describe alternatives you've considered**\r\nAn alternative is to keep the hashed version as it is :)\n", "before_files": [{"content": "#!/usr/bin/env python\nimport re\n\nfrom setuptools import setup\n\n# Version handline needs to be programatic because\n# we can't import toga_winforms to compute the version;\n# and to support versioned subpackage dependencies\nwith open('toga_winforms/__init__.py', encoding='utf8') as version_file:\n    version_match = re.search(\n        r\"^__version__ = ['\\\"]([^'\\\"]*)['\\\"]\",\n        version_file.read(),\n        re.M\n    )\n    if version_match:\n        version = version_match.group(1)\n    else:\n        raise RuntimeError(\"Unable to find version string.\")\n\nsetup(\n    version=version,\n    install_requires=[\n        # The Python.net team hasn't published 2.X wheels for Python 3.9 or 3.10,\n        # and their development effort seems to be focussed on the 3.X branch;\n        # they've indicated they're not planning to make the 2.X branch compatible\n        # with Python 3.10. If we want to be able to support \"current\" Python,\n        # we need to work off a source release until they formally release 3.0.\n        #\n        # The 8d93c39d hash is, as best as I can work out, what was in the\n        # 3.0.0-preview2021-10-05 release published to nuget - but they didn't\n        # tag anything for that release. That release contained a bug\n        # (https://github.com/pythonnet/pythonnet/issues/1613) that didn't play well\n        # with pip 21.3, so we use 94b1a71c which was released about a month later.\n        'pythonnet @ git+https://github.com/pythonnet/pythonnet@94b1a71c#egg=pythonnet',\n        'toga-core==%s' % version,\n    ],\n    test_suite='tests',\n    test_require=[\n        'toga-dummy==%s' % version,\n    ]\n)\n", "path": "src/winforms/setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\nimport re\n\nfrom setuptools import setup\n\n# Version handline needs to be programatic because\n# we can't import toga_winforms to compute the version;\n# and to support versioned subpackage dependencies\nwith open('toga_winforms/__init__.py', encoding='utf8') as version_file:\n    version_match = re.search(\n        r\"^__version__ = ['\\\"]([^'\\\"]*)['\\\"]\",\n        version_file.read(),\n        re.M\n    )\n    if version_match:\n        version = version_match.group(1)\n    else:\n        raise RuntimeError(\"Unable to find version string.\")\n\nsetup(\n    version=version,\n    install_requires=[\n        # The Python.net team hasn't published 2.X wheels for Python 3.9 or 3.10,\n        # and their development effort seems to be focussed on the 3.X branch;\n        # they've indicated they're not planning to make the 2.X branch compatible\n        # with Python 3.10. If we want to be able to support \"current\" Python,\n        # we need to use the 3.0 branch.\n        #\n        # At time of writing, the most recent (and only) version of Python.net 3.0\n        # that has been released is the alpha version 3.0.0a1.\n        'pythonnet>=3.0.0a1',\n        'toga-core==%s' % version,\n    ],\n    test_suite='tests',\n    test_require=[\n        'toga-dummy==%s' % version,\n    ]\n)\n", "path": "src/winforms/setup.py"}]}