Constraints for Airflow 3.1.0rc1
Pin `click` to `8.2.1`
https://github.com/pallets/click/issues/3071 caused celery worker failure
```
airflow-worker-1         | Traceback (most recent call last):
airflow-worker-1         |   File "/home/airflow/.local/bin/airflow", line 7, in <module>
airflow-worker-1         |     sys.exit(main())
airflow-worker-1         |              ^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/__main__.py", line 55, in main
airflow-worker-1         |     args.func(args)
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/cli/cli_config.py", line 49, in command
airflow-worker-1         |     return func(*args, **kwargs)
airflow-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/cli.py", line 114, in wrapper
airflow-worker-1         |     return f(*args, **kwargs)
airflow-worker-1         |            ^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/celery/cli/celery_command.py", line 66, in wrapper
airflow-worker-1         |     providers_configuration_loaded(func)(*args, **kwargs)
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/providers_configuration_loader.py", line 54, in wrapped_function
airflow-worker-1         |     return func(*args, **kwargs)
airflow-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/celery/cli/celery_command.py", line 281, in worker
airflow-worker-1         |     _run_command_with_daemon_option(
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/celery/cli/celery_command.py", line 52, in _run_command_with_daemon_option
airflow-worker-1         |     run_command_with_daemon_option(*args, **kwargs)
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/cli/commands/daemon_utils.py", line 86, in run_command_with_daemon_option
airflow-worker-1         |     callback()
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/celery/cli/celery_command.py", line 274, in run_celery_worker
airflow-worker-1         |     celery_app.worker_main(options)
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/celery/app/base.py", line 470, in worker_main
airflow-worker-1         |     self.start(argv=argv)
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/celery/app/base.py", line 450, in start
airflow-worker-1         |     celery.main(args=argv, standalone_mode=False)
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/click/core.py", line 1383, in main
airflow-worker-1         |     rv = self.invoke(ctx)
airflow-worker-1         |          ^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/click/core.py", line 1850, in invoke
airflow-worker-1         |     return _process_result(sub_ctx.command.invoke(sub_ctx))
airflow-worker-1         |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/click/core.py", line 1246, in invoke
airflow-worker-1         |     return ctx.invoke(self.callback, **ctx.params)
airflow-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/click/core.py", line 814, in invoke
airflow-worker-1         |     return callback(*args, **kwargs)
airflow-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/click/decorators.py", line 34, in new_func
airflow-worker-1         |     return f(get_current_context(), *args, **kwargs)
airflow-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/celery/bin/base.py", line 135, in caller
airflow-worker-1         |     return f(ctx, *args, **kwargs)
airflow-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/celery/bin/worker.py", line 351, in worker
airflow-worker-1         |     pidfile=node_format(pidfile, hostname),
airflow-worker-1         |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/celery/utils/nodenames.py", line 85, in node_format
airflow-worker-1         |     shortname, host = nodesplit(name)
airflow-worker-1         |                       ^^^^^^^^^^^^^^^
airflow-worker-1         |   File "/home/airflow/.local/lib/python3.12/site-packages/celery/utils/nodenames.py", line 71, in nodesplit
airflow-worker-1         |     parts = name.split(NODENAME_SEP, 1)
airflow-worker-1         |             ^^^^^^^^^^
airflow-worker-1         | AttributeError: 'NoneType' object has no attribute 'split'
airflow-worker-1         | INFO:     Shutting down
```
4 files changed