Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Airflow install fails on fresh Meltano 3.0 install #48

Open
konung opened this issue Sep 26, 2023 · 7 comments
Open

Airflow install fails on fresh Meltano 3.0 install #48

konung opened this issue Sep 26, 2023 · 7 comments

Comments

@konung
Copy link

konung commented Sep 26, 2023

Hi.
Trying out Airflow utility, ran into problems on mac.

This a new Meltano 3.0 install on osx 13.6

Fresh new Python 3.11.5 using asdf.

Able to install a few other utilities, extractors and loaders, but not airflow.

Here is the error message:

> meltano --log-level=debug add utility airflow                                             1561ms  Mon Sep 25 23:22:05 2023
2023-09-26T04:22:08.904344Z [debug    ] /etc/localtime found
2023-09-26T04:22:08.906191Z [debug    ] 1 found:
 {'/etc/localtime is a symlink to': 'America/Chicago'}
2023-09-26T04:22:08.912804Z [debug    ] Creating DB engine for project at '/Users/konung/Projects/konungshop/Code/konungshop-elt-meltano/konungshop-elt' with DB URI 'sqlite://Users/konung/Projects/konungshop/Code/konungshop-elt-meltano/konungshop-elt/.meltano/meltano.db'
2023-09-26T04:22:09.760607Z [debug    ] Found plugin parent            parent=airflow plugin=airflow source=<DefinitionSource.HUB: 1>
2023-09-26T04:22:09.815159Z [debug    ] Locked plugin definition       path=PosixPath('/Users/konung/Projects/konungshop/Code/konungshop-elt-meltano/konungshop-elt/plugins/utilities/airflow--apache.lock')
Added utility 'airflow' to your Meltano project
Variant:	apache (default)
Repository:	https://github.com/apache/airflow
Documentation:	https://hub.meltano.com/utilities/airflow--apache

Installing utility 'airflow'...
2023-09-26T04:22:09.915768Z [debug    ] Packages for 'utilities/airflow' have changed so performing a clean install.
2023-09-26T04:22:09.916138Z [debug    ] Removed old virtual environment for 'utilities/airflow'
2023-09-26T04:22:09.916194Z [debug    ] Creating virtual environment for 'utilities/airflow'
2023-09-26T04:22:10.554591Z [debug    ] Upgrading pip for 'utilities/airflow'
2023-09-26T04:22:10.554722Z [debug    ] Upgrading with args '--upgrade pip' in existing virtual environment for 'utilities/airflow'
2023-09-26T04:22:12.852463Z [debug    ] Installing with args 'git+https://github.com/meltano/airflow-ext.git@main apache-airflow==2.3.3 --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.3.3/constraints-no-providers-3.11.txt' into virtual environment for 'utilities/airflow'
Utility 'airflow' could not be installed: failed to install plugin 'airflow'.

2023-09-26T04:22:14.022794Z [debug    ] Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to
join our friendly Slack community.

Failed to install plugin(s)
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/__init__.py:102 │
│ in _run_cli                                                                                      │
│                                                                                                  │
│    99 │   """
│   100 │   try:                                                                                   │
│   101 │   │   try:  # noqa: WPS225, WPS505                                                       │
│ ❱ 102 │   │   │   cli(obj={"project": None})                                                     │
│   103 │   │   except ProjectReadonly as err:                                                     │
│   104 │   │   │   raise CliError(                                                                │
│   105 │   │   │   │   f"The requested action could not be completed: {err}",                     │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1157 in       │
│ __call__                                                                                         │
│                                                                                                  │
│   1154 │                                                                                         │
│   1155 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                           │
│   1156 │   │   """Alias for :meth:`main`."""
│ ❱ 1157 │   │   return self.main(*args, **kwargs)                                                 │
│   1158                                                                                           │
│   1159                                                                                           │
│   1160 class Command(BaseCommand):                                                               │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/cli.py:42 in    │
│ main                                                                                             │
│                                                                                                  │
│    39 │   │   │   args: Positional arguments for the Click group.                                │
│    40 │   │   │   kwargs: Keyword arguments for the Click group.                                 │
│    41 │   │   """                                                                                │
│ ❱  42 │   │   return super().main(*args, windows_expand_args=False, **kwargs)                    │
│    43                                                                                            │
│    44                                                                                            │
│    45 @click.group(                                                                              │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1078 in main  │
│                                                                                                  │
│   1075 │   │   try:                                                                              │
│   1076 │   │   │   try:                                                                          │
│   1077 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:                  │
│ ❱ 1078 │   │   │   │   │   rv = self.invoke(ctx)                                                 │
│   1079 │   │   │   │   │   if not standalone_mode:                                               │
│   1080 │   │   │   │   │   │   return rv                                                         │
│   1081 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                               │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/utils.py:612 in │
│ invoke                                                                                           │
│                                                                                                  │
│   609 │   │   enact_environment_behavior(self.environment_behavior, ctx)                         │
│   610 │   │   if ctx.obj.get("tracker"):                                                         │
│   611 │   │   │   ctx.obj["tracker"].add_contexts(CliContext.from_click_context(ctx))            │
│ ❱ 612 │   │   super().invoke(ctx)                                                                │
│   613                                                                                            │
│   614                                                                                            │
│   615 class InstrumentedDefaultGroup(InstrumentedGroupMixin, DefaultGroup, DYMGroup):            │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1688 in       │
│ invoke                                                                                           │
│                                                                                                  │
│   1685 │   │   │   │   super().invoke(ctx)                                                       │
│   1686 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)                    │
│   1687 │   │   │   │   with sub_ctx:                                                             │
│ ❱ 1688 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))               │
│   1689 │   │                                                                                     │
│   1690 │   │   # In chain mode we create the contexts step by step, but after the                │
│   1691 │   │   # base command has been invoked.  Because at that point we do not                 │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/utils.py:661 in │
│ invoke                                                                                           │
│                                                                                                  │
│   658 │   │   if ctx.obj.get("tracker"):                                                         │
│   659 │   │   │   ctx.obj["tracker"].add_contexts(CliContext.from_click_context(ctx))            │
│   660 │   │   │   ctx.obj["tracker"].track_command_event(CliEvent.started)                       │
│ ❱ 661 │   │   super().invoke(ctx)                                                                │
│   662                                                                                            │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1434 in       │
│ invoke                                                                                           │
│                                                                                                  │
│   1431 │   │   │   echo(style(message, fg="red"), err=True)                                      │
│   1432 │   │                                                                                     │
│   1433 │   │   if self.callback is not None:                                                     │
│ ❱ 1434 │   │   │   return ctx.invoke(self.callback, **ctx.params)                                │
│   1435 │                                                                                         │
│   1436 │   def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]:  │
│   1437 │   │   """Return a list of completions for the incomplete value. Looks                   │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:783 in invoke │
│                                                                                                  │
│    780 │   │                                                                                     │
│    781 │   │   with augment_usage_errors(__self):                                                │
│    782 │   │   │   with ctx:                                                                     │
│ ❱  783 │   │   │   │   return __callback(*args, **kwargs)                                        │
│    784 │                                                                                         │
│    785 │   def forward(                                                                          │
│    786 │   │   __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any  # noqa: B902             │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/params.py:27 in │
│ decorate                                                                                         │
│                                                                                                  │
│   24 │   │   if database_uri:                                                                    │
│   25 │   │   │   ProjectSettingsService.config_override["database_uri"] = database_uri           │
│   26 │   │                                                                                       │
│ ❱ 27 │   │   return func(*args, **kwargs)                                                        │
│   28 │                                                                                           │
│   29 │   return functools.update_wrapper(decorate, func)                                         │
│   30                                                                                             │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/params.py:75 in │
│ decorate                                                                                         │
│                                                                                                  │
│   72 │   │   │   │   except MigrationError as err:                                               │
│   73 │   │   │   │   │   raise CliError(str(err)) from err                                       │
│   74 │   │   │                                                                                   │
│ ❱ 75 │   │   │   func(project, *args, **kwargs)                                                  │
│   76 │   │                                                                                       │
│   77 │   │   return functools.update_wrapper(decorate, func)                                     │
│   78                                                                                             │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/decorators.py:33 in   │
│ new_func                                                                                         │
│                                                                                                  │
│    30 │   """                                                                                    │
│    31 │                                                                                          │
│    32 │   def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R":                            │
│ ❱  33 │   │   return f(get_current_context(), *args, **kwargs)                                   │
│    34 │                                                                                          │
│    35 │   return update_wrapper(new_func, f)                                                     │
│    36                                                                                            │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/add.py:163 in   │
│ add                                                                                              │
│                                                                                                  │
│   160 │   │                                                                                      │
│   161 │   │   if not success:                                                                    │
│   162 │   │   │   tracker.track_command_event(CliEvent.failed)                                   │
│ ❱ 163 │   │   │   raise CliError("Failed to install plugin(s)")                                  │
│   164 │                                                                                          │
│   165 │   _print_plugins(plugins)                                                                │
│   166 │   tracker.track_command_event(CliEvent.completed)                                        │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
CliError: Failed to install plugin(s)

The above exception was the direct cause of the following exception:

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/__init__.py:112 │
│ in _run_cli                                                                                      │
│                                                                                                  │
│   109 │   │   except MeltanoError as err:                                                        │
│   110 │   │   │   handle_meltano_error(err)                                                      │
│   111 │   │   except Exception as err:                                                           │
│ ❱ 112 │   │   │   raise CliError(f"{troubleshooting_message}\n{err}") from err                   │
│   113 │   except CliError as cli_error:                                                          │
│   114 │   │   cli_error.print()                                                                  │
│   115 │   │   sys.exit(1)                                                                        │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
CliError: Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to
join our friendly Slack community.

Failed to install plugin(s)

Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to
join our friendly Slack community.

Failed to install plugin(s)

@edgarrmondragon
Copy link
Contributor

Can probably be fixed by updating the pip_url in meltano.yml:

- pip_url: git+https://github.com/meltano/airflow-ext.git@main apache-airflow==2.3.3
-   --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.3.3/constraints-no-providers-${MELTANO__PYTHON_VERSION}.txt
+ pip_url: git+https://github.com/meltano/airflow-ext.git@main apache-airflow==2.7.1
+   --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.7.1/constraints-no-providers-${MELTANO__PYTHON_VERSION}.txt

If that fixes the problem, then the plugin should be updated: https://github.com/meltano/hub/blob/0fde97d2d899a7e1127259304d890097715a4b5a/_data/meltano/utilities/airflow/apache.yml#L54-L55

@konung
Copy link
Author

konung commented Sep 26, 2023

Thank you for the suggestion. No luck

meltano --log-level=debug install                                                                                                                                                                                          57.9sTue Sep 26 04:30:25 2023
2023-09-26T09:31:30.217656Z [debug    ] /etc/localtime found
2023-09-26T09:31:30.219564Z [debug    ] 1 found:
 {'/etc/localtime is a symlink to': 'America/Chicago'}
2023-09-26T09:31:30.228482Z [debug    ] Creating DB engine for project at '/Users/konung/Projects/konungshop/Code/konungshop-elt-meltano/konungshop-elt' with DB URI 'sqlite://Users/konung/Projects/konungshop/Code/konungshop-elt-meltano/konungshop-elt/.meltano/meltano.db'
2023-09-26T09:31:30.309150Z [debug    ] Found plugin parent            parent=tap-spreadsheets-anywhere plugin=tap-spreadsheets-anywhere source=<DefinitionSource.LOCKFILE: 4>
2023-09-26T09:31:30.310576Z [debug    ] Found plugin parent            parent=tap-shopify plugin=tap-shopify source=<DefinitionSource.LOCKFILE: 4>
2023-09-26T09:31:30.312584Z [debug    ] Found plugin parent            parent=target-postgres plugin=target-postgres source=<DefinitionSource.LOCKFILE: 4>
2023-09-26T09:31:30.313481Z [debug    ] Found plugin parent            parent=target-jsonl plugin=target-jsonl source=<DefinitionSource.LOCKFILE: 4>
2023-09-26T09:31:30.314407Z [debug    ] Found plugin parent            parent=target-csv plugin=target-csv source=<DefinitionSource.LOCKFILE: 4>
2023-09-26T09:31:30.316423Z [debug    ] Found plugin parent            parent=airflow plugin=airflow source=<DefinitionSource.LOCKFILE: 4>
Installing 6 plugins...
Installing extractor 'tap-spreadsheets-anywhere'...
2023-09-26T09:31:30.401483Z [debug    ] Installing with args 'git+https://github.com/ets/tap-spreadsheets-anywhere.git' into virtual environment for 'extractors/tap-spreadsheets-anywhere'
Installing extractor 'tap-shopify'...
2023-09-26T09:31:30.677982Z [debug    ] Installing with args 'git+https://github.com/sehnem/tap-shopify.git' into virtual environment for 'extractors/tap-shopify'
Installing loader 'target-postgres'...
2023-09-26T09:31:30.889848Z [debug    ] Installing with args 'meltanolabs-target-postgres~=0.0.7' into virtual environment for 'loaders/target-postgres'
Installing loader 'target-jsonl'...
2023-09-26T09:31:30.974898Z [debug    ] Installing with args 'target-jsonl' into virtual environment for 'loaders/target-jsonl'
Installing loader 'target-csv'...
2023-09-26T09:31:31.061081Z [debug    ] Installing with args 'git+https://github.com/hotgluexyz/target-csv.git' into virtual environment for 'loaders/target-csv'
Installing utility 'airflow'...
2023-09-26T09:31:31.182350Z [debug    ] Packages for 'utilities/airflow' have changed so performing a clean install.
2023-09-26T09:31:31.349110Z [debug    ] Removed old virtual environment for 'utilities/airflow'
2023-09-26T09:31:31.349200Z [debug    ] Creating virtual environment for 'utilities/airflow'
2023-09-26T09:31:32.068699Z [debug    ] Upgrading pip for 'utilities/airflow'
2023-09-26T09:31:32.068854Z [debug    ] Upgrading with args '--upgrade pip' in existing virtual environment for 'utilities/airflow'
Installed loader 'target-jsonl'
Installed loader 'target-postgres'
2023-09-26T09:31:34.076076Z [debug    ] Installing with args 'git+https://github.com/meltano/airflow-ext.git@main apache-airflow==2.7.1 --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.7.1/constraints-no-providers-3.11.txt' into virtual environment for 'utilities/airflow'
Installed loader 'target-csv'
Installed extractor 'tap-spreadsheets-anywhere'
Installed extractor 'tap-shopify'
Utility 'airflow' could not be installed: failed to install plugin 'airflow'.

Installed 5/6 plugins
2023-09-26T09:32:10.328108Z [debug    ] Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to
join our friendly Slack community.

Failed to install plugin(s)
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/__init__.py:102 │
│ in _run_cli                                                                                      │
│                                                                                                  │
│    99"""                                                                                    │
│   100 │   try:                                                                                   │
│   101 │   │   try:  # noqa: WPS225, WPS505                                                       │
│ ❱ 102 │   │   │   cli(obj={"project": None})                                                     │
│   103 │   │   except ProjectReadonly as err:                                                     │
│   104 │   │   │   raise CliError(                                                                │
│   105 │   │   │   │   f"The requested action could not be completed: {err}",                     │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1157 in       │
│ __call__                                                                                         │
│                                                                                                  │
│   1154 │                                                                                         │
│   1155 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                           │
│   1156 │   │   """Alias for :meth:`main`."""                                                     │
│ ❱ 1157 │   │   return self.main(*args, **kwargs)                                                 │
│   1158                                                                                           │
│   1159                                                                                           │
│   1160 class Command(BaseCommand):                                                               │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/cli.py:42 in    │
│ main                                                                                             │
│                                                                                                  │
│    39 │   │   │   args: Positional arguments for the Click group.                                │
│    40 │   │   │   kwargs: Keyword arguments for the Click group.                                 │
│    41 │   │   """                                                                                │
│ ❱  42 │   │   return super().main(*args, windows_expand_args=False, **kwargs)                    │
│    43                                                                                            │
│    44                                                                                            │
│    45 @click.group(                                                                              │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1078 in main  │
│                                                                                                  │
│   1075 │   │   try:                                                                              │
│   1076 │   │   │   try:                                                                          │
│   1077 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:                  │
│ ❱ 1078 │   │   │   │   │   rv = self.invoke(ctx)                                                 │
│   1079 │   │   │   │   │   if not standalone_mode:                                               │
│   1080 │   │   │   │   │   │   return rv                                                         │
│   1081 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                               │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/utils.py:612 in │
│ invoke                                                                                           │
│                                                                                                  │
│   609 │   │   enact_environment_behavior(self.environment_behavior, ctx)                         │
│   610 │   │   if ctx.obj.get("tracker"):                                                         │
│   611 │   │   │   ctx.obj["tracker"].add_contexts(CliContext.from_click_context(ctx))            │
│ ❱ 612 │   │   super().invoke(ctx)                                                                │
│   613                                                                                            │
│   614                                                                                            │
│   615 class InstrumentedDefaultGroup(InstrumentedGroupMixin, DefaultGroup, DYMGroup):            │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1688 in       │
│ invoke                                                                                           │
│                                                                                                  │
│   1685 │   │   │   │   super().invoke(ctx)                                                       │
│   1686 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)                    │
│   1687 │   │   │   │   with sub_ctx:                                                             │
│ ❱ 1688 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))               │
│   1689 │   │                                                                                     │
│   1690 │   │   # In chain mode we create the contexts step by step, but after the                │1691 │   │   # base command has been invoked.  Because at that point we do not                 │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/utils.py:661 in │
│ invoke                                                                                           │
│                                                                                                  │
│   658 │   │   if ctx.obj.get("tracker"):                                                         │
│   659 │   │   │   ctx.obj["tracker"].add_contexts(CliContext.from_click_context(ctx))            │
│   660 │   │   │   ctx.obj["tracker"].track_command_event(CliEvent.started)                       │
│ ❱ 661 │   │   super().invoke(ctx)                                                                │
│   662                                                                                            │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:1434 in       │
│ invoke                                                                                           │
│                                                                                                  │
│   1431 │   │   │   echo(style(message, fg="red"), err=True)                                      │
│   1432 │   │                                                                                     │
│   1433 │   │   if self.callback is not None:                                                     │
│ ❱ 1434 │   │   │   return ctx.invoke(self.callback, **ctx.params)                                │
│   1435 │                                                                                         │
│   1436def shell_complete(self, ctx: Context, incomplete: str) -> t.List["CompletionItem"]:  │
│   1437 │   │   """Return a list of completions for the incomplete value. Looks                   │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/core.py:783 in invoke │
│                                                                                                  │
│    780 │   │                                                                                     │
│    781 │   │   with augment_usage_errors(__self):                                                │
│    782 │   │   │   with ctx:                                                                     │
│ ❱  783 │   │   │   │   return __callback(*args, **kwargs)                                        │
│    784 │                                                                                         │
│    785 │   def forward(                                                                          │
│    786 │   │   __self, __cmd: "Command", *args: t.Any, **kwargs: t.Any  # noqa: B902             │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/click/decorators.py:33 in   │
│ new_func                                                                                         │
│                                                                                                  │
│    30 │   """                                                                                    │
│    31 │                                                                                          │
│    32def new_func(*args: "P.args", **kwargs: "P.kwargs") -> "R":                            │
│ ❱  33 │   │   return f(get_current_context(), *args, **kwargs)                                   │
│    34 │                                                                                          │
│    35return update_wrapper(new_func, f)                                                     │
│    36                                                                                            │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/params.py:27 in │
│ decorate                                                                                         │
│                                                                                                  │
│   24 │   │   if database_uri:                                                                    │
│   25 │   │   │   ProjectSettingsService.config_override["database_uri"] = database_uri           │
│   26 │   │                                                                                       │
│ ❱ 27 │   │   return func(*args, **kwargs)                                                        │
│   28 │                                                                                           │
│   29return functools.update_wrapper(decorate, func)                                         │
│   30                                                                                             │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/params.py:75 in │
│ decorate                                                                                         │
│                                                                                                  │
│   72 │   │   │   │   except MigrationError as err:                                               │
│   73 │   │   │   │   │   raise CliError(str(err)) from err                                       │
│   74 │   │   │                                                                                   │
│ ❱ 75 │   │   │   func(project, *args, **kwargs)                                                  │
│   76 │   │                                                                                       │
│   77 │   │   return functools.update_wrapper(decorate, func)                                     │
│   78                                                                                             │
│                                                                                                  │
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/install.py:110  │
│ in install                                                                                       │
│                                                                                                  │
│   107 │   )                                                                                      │
│   108if not success:                                                                        │
│   109 │   │   tracker.track_command_event(CliEvent.failed)                                       │
│ ❱ 110 │   │   raise CliError("Failed to install plugin(s)")                                      │
│   111tracker.track_command_event(CliEvent.completed)                                        │
│   112                                                                                            │
│   113                                                                                            │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
CliError: Failed to install plugin(s)

The above exception was the direct cause of the following exception:

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/konung/.local/pipx/venvs/meltano/lib/python3.11/site-packages/meltano/cli/__init__.py:112 │
│ in _run_cli                                                                                      │
│                                                                                                  │
│   109 │   │   except MeltanoError as err:                                                        │
│   110 │   │   │   handle_meltano_error(err)                                                      │
│   111 │   │   except Exception as err:                                                           │
│ ❱ 112 │   │   │   raise CliError(f"{troubleshooting_message}\n{err}") from err                   │
│   113except CliError as cli_error:                                                          │
│   114 │   │   cli_error.print()                                                                  │
│   115 │   │   sys.exit(1)                                                                        │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
CliError: Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to
join our friendly Slack community.

Failed to install plugin(s)

Need help fixing this problem? Visit http://melta.no/ for troubleshooting steps, or to
join our friendly Slack community.

Failed to install plugin(s)

@konung
Copy link
Author

konung commented Sep 26, 2023

This might be a Mac only issue. I was able to install airflow utility plugin -v 2.3.3 inside Meltano docker project.

@lclalalalala
Copy link

Can probably be fixed by updating the pip_url in meltano.yml:

- pip_url: git+https://github.com/meltano/airflow-ext.git@main apache-airflow==2.3.3
-   --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.3.3/constraints-no-providers-${MELTANO__PYTHON_VERSION}.txt
+ pip_url: git+https://github.com/meltano/airflow-ext.git@main apache-airflow==2.7.1
+   --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.7.1/constraints-no-providers-${MELTANO__PYTHON_VERSION}.txt

If that fixes the problem, then the plugin should be updated: https://github.com/meltano/hub/blob/0fde97d2d899a7e1127259304d890097715a4b5a/_data/meltano/utilities/airflow/apache.yml#L54-L55

Thanks. This works for me.

@lclalalalala
Copy link

This might be a Mac only issue. I was able to install airflow utility plugin -v 2.3.3 inside Meltano docker project.

Yes. I change to apache-airflow==2.8.0. works fine in docker container. Failed on MacOS. on Mac I used anaconda virual env. Python=3.11.

@edgarrmondragon
Copy link
Contributor

edgarrmondragon commented Jan 19, 2024

Yes. I change to apache-airflow==2.8.0. works fine in docker container. Failed on MacOS. on Mac I used anaconda virual env. Python=3.11.

I guess it's a problem for newish Apple Silicon macs, probably because there aren't any compatibles wheels for some package, and the build step is failing.

@edgarrmondragon
Copy link
Contributor

For ref: meltano/hub#1647

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants