MontgomeryLab / tinyRNA

tinyRNA provides an all-in-one solution for precision analysis of sRNA-seq data. At the core of tinyRNA is a highly flexible counting utility, tiny-count, that allows for hierarchical assignment of reads to features based on positional information, extent of feature overlap, 5’ nucleotide, length, and strandedness.
GNU General Public License v3.0
1 stars 1 forks source link

Project: update to Python 3.10 #307

Closed AlexTate closed 1 year ago

AlexTate commented 1 year ago

The tinyRNA environment and its dependencies have been upgraded to use Python 3.10. This PR also improves the developer experience for managing dependencies and updating lockfiles.

Environment Management

The update-lockfiles.sh script has been replaced with env.py. The previous script only converted an environment.yml file (manually created) to lockfiles for osx and linux. The new script offers the following commands:

Installation Script Changes and Improvements

The installation script no longer supports in-place upgrades for existing tinyRNA environments. The environment, and any packages the user may have installed, must now be removed by the script during an update. This functionality had been introduced when dependency updates were frequent but the Python version remained unchanged. Unfortunately it seems that there isn't a reliable way to change an environment's Python version without re-solving the environment, which brings back the unacceptable 20-40 minute wait times. If users really want to do an in-place upgrade, they can always use conda update --file with the desired environment*.yml file to initiate the re-solve but this is advanced usage and likely to cause issues.

Additionally:

Security Improvements

This PR improves the handling of configuration file fields to avoid potential shell injection vulnerabilities.

Closes #261

taimontgomery commented 1 year ago

Test installation and run on MacBook-M2 and server.