Sage-Bionetworks / synapser

An R package providing programmatic access to Synapse
Apache License 2.0
32 stars 22 forks source link

Installation fail...yet again #341

Open rbutleriii opened 2 months ago

rbutleriii commented 2 months ago

Is there a timeline for a legitimate R package for synapse instead of this daisy chain of conda -> mamba -> reticulate dependencies? It has to be way harder to support this over time than just building a good R port.

* installing *source* package ‘synapser’ ...
** using staged installation
[1] "*** Using Python Configuration:"
python:         /home/rrbutler/miniconda3/bin/python3
libpython:      /home/rrbutler/miniconda3/lib/libpython3.12.so
pythonhome:     /home/rrbutler/miniconda3:/home/rrbutler/miniconda3
version:        3.12.2 | packaged by conda-forge | (main, Feb 16 2024, 20:50:58) [GCC 12.3.0]
numpy:           [NOT FOUND]

python versions found:
 /home/rrbutler/miniconda3/bin/python3
 /home/rrbutler/miniconda3/bin/python
+ /home/rrbutler/miniconda3/bin/conda install --yes --prefix /home/rrbutler/miniconda3 -c conda-forge 'pandas>=1.5,<=2.0.3' jinja2 markupsafe 'numpy<=1.24.4'
Channels:
 - conda-forge
 - r
 - bioconda
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: \ warning  libmamba Added empty dependency for problem type SOLVER_RULE_UPDATE
failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package pandas-1.5.0-py310h769672d_0 requires python >=3.10,<3.11.0a0, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ pandas >=1.5,<=2.0.3  is installable with the potential options
│  ├─ pandas [1.5.0|1.5.1|...|2.0.3] would require
│  │  └─ python >=3.10,<3.11.0a0 , which can be installed;
│  ├─ pandas [1.5.0|1.5.1|...|2.0.3] would require
│  │  └─ python >=3.8,<3.9.0a0 , which can be installed;
│  ├─ pandas [1.5.0|1.5.1|...|2.0.3] would require
│  │  └─ python >=3.9,<3.10.0a0 , which can be installed;
│  └─ pandas [1.5.1|1.5.2|...|2.0.3] would require
│     └─ python >=3.11,<3.12.0a0 , which can be installed;
└─ pin-1 is not installable because it requires
   └─ python 3.12.* , which conflicts with any installable versions previously reported.

Error: one or more Python packages failed to install [error code 1]
Execution halted
ERROR: configuration failed for package ‘synapser’
* removing ‘/home/rrbutler/R/x86_64-pc-linux-gnu-library/4.4/synapser’

The downloaded source packages are in
        ‘/tmp/RtmpFTT4sH/downloaded_packages’
Warning message:
In install.packages("synapser", repos = c("http://ran.synapse.org",  :
  installation of package ‘synapser’ had non-zero exit status
thomasyu888 commented 2 months ago

Apologies for the troubles @rbutleriii. First, thank you for the feedback! We have seen requests here and there over the years to maintain a sole R client but the Python client is still mainly used over synapser. Docs here: https://python-docs.synapse.org/

For some context, there was a sole R client years ago, but synapser was created due to the mismatches in feature space between the sole R and Python client and the Python client became more maintained than the R client. The development of synapser meant that features like caching, asynchronous multi-part downloads being implemented within the Python client will automatically be used in the R client. To build and maintain a sole R client would require us to prioritize our resources in that context and actually takes more time to develop than maintaining this.

As for these issues, the Python client currently doesn't support Python 3.11, so I would downgrade the Python version and please follow the installation guide here: https://r-docs.synapse.org/articles/installation.html. We tested the installation of this package across linux, windows and mac with 4 separate R minor versions (R 4.1, 4.2, 4.3, 4.4). Please let us know if you have any other questions.