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

deploy manifest errs when give a directory containing a manifest #587

Open
aronatkins opened this issue May 7, 2024 · 0 comments
Open

Comments

@aronatkins
Copy link
Collaborator

The help for deploy manifest reads:

Usage: rsconnect deploy manifest [OPTIONS] FILE

  Deploy content to Posit Connect, Posit Cloud, or shinyapps.io using an
  existing manifest.json file.  The specified file must either be named
  "manifest.json" or refer to a directory that contains a file named
  "manifest.json".

However, when providing a directory that contains a manifest.json, an error results.

Traceback (most recent call last):
  File "BASE_DIR/env/lib/python3.11/site-packages/rsconnect/main.py", line 108, in wrapper
    result = func(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^
  File "BASE_DIR/env/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "BASE_DIR/env/lib/python3.11/site-packages/rsconnect/main.py", line 1119, in deploy_manifest
    kwargs["title"] = title or default_title_from_manifest(file)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "BASE_DIR/env/lib/python3.11/site-packages/rsconnect/bundle.py", line 744, in default_title_from_manifest
    source_manifest, _ = read_manifest_file(file)
                         ^^^^^^^^^^^^^^^^^^^^^^^^
  File "BASE_DIR/env/lib/python3.11/site-packages/rsconnect/bundle.py", line 757, in read_manifest_file
    with open(manifest_path, "rb") as f:
         ^^^^^^^^^^^^^^^^^^^^^^^^^
IsADirectoryError: [Errno 21] Is a directory: 'model'
Internal error: [Errno 21] Is a directory: 'model'

Providing the path to the manifest.json works.

# error
rsconnect deploy manifest model
# no error
rsconnect deploy manifest model/manifest.json

Using rsconnect-python 1.23.0.

The manifest is correctly identified:

rsconnect.bundle.validate_manifest_file("model")
#> 'model/manifest.json'

However, in deploy_manifest(), we rewrite the incoming file to file_name but do not consistently use that variable.

https://github.com/rstudio/rsconnect-python/blob/74b7f6899206ff754e29ad282c3dc725ab4e186b/rsconnect/main.py#L1146-L1179

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

1 participant