posit-dev / posit-dev/rsconnect-python
deploy manifest errs when give a directory containing a manifest
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 37
- Forks
- 28
- Merge moyen
- 1 j 3 h
- PR mergées (30 j)
- 7
Description
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.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez dans rsconnect/main.py avec deploy_manifest(), puis suivez default_title_from_manifest() et read_manifest_file() dans rsconnect/bundle.py. Comparez la manière dont file et file_name sont utilisés après la validation du manifeste, et vérifiez que rsconnect deploy manifest model comme le chemin direct du manifeste s’exécutent jusqu’au bout sans l’erreur de répertoire.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- cli
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 48/100