galaxyproject / cargo-port Goto Github PK
View Code? Open in Web Editor NEWcache packages permanently
Home Page: https://depot.galaxyproject.org/software/
License: MIT License
cache packages permanently
Home Page: https://depot.galaxyproject.org/software/
License: MIT License
Given the following error:
$ galaxy-package-locator
Traceback (most recent call last):
File "/home/simon/anaconda3/bin/galaxy-package-locator", line 4, in <module>
__import__('pkg_resources').run_script('cargo-port==1.0', 'galaxy-package-locator')
File "/home/simon/anaconda3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 738, in run_script
self.require(requires)[0].run_script(script_name, ns)
File "/home/simon/anaconda3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1506, in run_script
exec(script_code, namespace, namespace)
File "/home/simon/anaconda3/lib/python3.5/site-packages/cargo_port-1.0-py3.5.egg/EGG-INFO/scripts/galaxy-package-locator", line 3, in <module>
__requires__ = 'cargo-port==1.0'
ImportError: No module named 'urllib2'
I suspect it's currently Python 2 only? Might be good to specify that.
See discussion on #84 where TravisCI reports a failed checksum for an updated URL, but does not tell us anything about why. Possible failures:
file
in case of things like an HTML or text error message?We need to (eventually) provide some redundancy for the CPC.
This will involve a couple things:
conda-build >=3
added the ability to use multiple sources when building a package by allowing a recipe's source
section to be a list, optionally, see https://conda.io/docs/user-guide/tasks/build-packages/define-metadata.html#source-from-multiple-sources.
This is currently not handled by .conda/get_urls.py
and .conda/to_cargoport.py
.
./bin/galaxy-package-locator --package_id samtools --package_version "1.2"
INFO:root:Searching for package: samtools in https://depot.galaxyproject.org/software/urls.tsv
Traceback (most recent call last):
File "./bin/galaxy-package-locator", line 58, in <module>
get()
File "/home/berntm/.venv3/lib/python3.6/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/berntm/.venv3/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/berntm/.venv3/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/berntm/.venv3/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "./bin/galaxy-package-locator", line 36, in get
for ld in yield_packages(handle):
File "/home/berntm/projects/cargo-port/cargoport/utils.py", line 18, in yield_packages
if line.startswith('#'):
TypeError: startswith first arg must be bytes or a tuple of bytes, not str
Problem is that urllib opens with "rb", but if a file is given its "r".
I guess the best is to open always with "rb" and fix the startwith calls?
Should:
@natefoo could you add a sudoers entry for the user jenkins SSHs as into depot, for the following command:
sudo chattr -i /srv/....
(where ...
is the path to cargo port's software directory).
https://jenkins.galaxyproject.org/job/cargo-port/lastBuild/console
E.g.
INFO:root:Mimetype of samtools/samtools_1.9_src_all.tar.bz2 is samtools/samtools_1.9_src_all.tar.bz2: bzip2 compressed data , block size = 900k
ERROR:root:File has bad hash! Refusing to serve this to end users.
Instead of using curl, we should use urllib2 like we do in cargo port.
FCGI has a bad hash. It looks like upstream replaced the package, and we didn't have a good copy to start with. What should we do?
Bad hash, 6125df9285fc22f1add8062ba06248a41b291659997948c670ead21aca943a73 != 08bf8afe1985b17d2375e8dc98ac86cab0daf017ccd5281157abdbb7e19273fd in FCGI/FCGI_0.67_src_all.tar.gz
Hi, how is it be possible to upload new packages?
Proposed:
Rejected:
Considered:
Since it's a mirror we could go more syfy and be inspired by Dyson Spheres or maybe famous telescopes.
Feel free to submit ideas and discuss them! Something will be selected before the move into the galaxyproject namespace in approximately a week (I'd like it to generally be done around the same time as the IUC PR)
ccing @davebx @martenson @blankenberg
We need a recommendation for a package naming schema.
name
_ major-version
_ minor-version
?
at https://depot.galaxyproject.org/software/ if you download some package e.g. https://depot.galaxyproject.org/software/30e84ac4b31d40b66293f7b1221331c5a50561a39d580d85004d9c1fff991751
you will get a file named 30e84ac4b31d40b66293f7b1221331c5a50561a39d580d85004d9c1fff991751 that does not have any extension
This is quite confusing.
getting js errors when accessing https://depot.galaxyproject.org/software/ and the cached URL list is empty
I know you'd like to do stuff with CVMFS and proper removal of SPOF, but if that isn't a short term solution, is there an rsync URL available? I'd like to ensure we at least have a complete clone of this somewhere (with the knowledge that we'll do DNS round robin and etc. later)
Currently gsl.py
downloads a copy of urls.tsv and then sorts through packages for the one desired.
It could be improved a fair bit:
:D
), we can use that to check if we need to fetch the whole file. (Think apt-get update)If I open, for example, https://depot.galaxyproject.org/software/abyss/ with Firefox and click on the SHA256SUMS file, the browser wants to download it instead of showing the contents because it is recognized as a BIN file.
At the website (https://depot.galaxyproject.org/software/) cargo port says:
<action type="download_by_url" sha256sum="213cec750b14254df25e160463e28f3857ba703df1f3f43f7082dece8cfbf08b">
https://depot.galaxyproject.org/software/zlibbioc/zlibbioc_1.14.0_src_all.tar.gz
</action>
This checksum should be 0811b4aecdb66a2ee33e806a40f54e0fdde2f4223a3981cccc16df9b7d3567d4
. It looks like the system confuses the following two files:
0811b4aecdb66a2ee33e806a40f54e0fdde2f4223a3981cccc16df9b7d3567d4 zlibbioc_1.14.0_src_all.tar.gz
213cec750b14254df25e160463e28f3857ba703df1f3f43f7082dece8cfbf08b zlibbioc_1.14.0.tar.gz
Not sure if any of these two is a big issue but they should be considered.
@bgruening shouldn't have to tell people "no later than one hour." This should happen automatically. Jenkins should tell users their package(s) are available.
cc @martenson
Heyyyyyyy @natefoo
List tarball contents/filetypes/sizes/etc.
Sadly sort urls.tsv
and even sort -n urls.tsv
don't handle the version column nicely, but would be a simple way to define a consistent order for the file which would be easy to enforce on TravisCI, and apply when making manual additions.
e.g. should the urls from https://depot.galaxyproject.org/software/ be available in the file thus making it the universal resource for package location?
I'd like to archive h5py for galaxyproject/galaxy#4519, but I don't think it'd be possible with the current urls.tsv
format because linux builds have multiple versions for each CPython ABI (basically the default Unicode width, cp27m
vs cp27mu
).
I could also put them on wheels.galaxyproject.org, but cargo port seems like the better long term solution, especially since we did not generate the wheels.
Any ideas? I could add it to the version field, I guess? e.g. 2.7.1-cp27mu
?
e.g. should https://depot.galaxyproject.org/software/ be more trustworthy download source than e.g. sourceforge (and thus have redirect priority)?
Examples:
These are python .py
files (gemini-install_0.1_src_all.py
), but SHA256SUM.txt
contain e.g.:
0e9a482c3f2b12a055fb73191b4d99c1e43a210471d16e539d85695b83ff3fc5 gemini-install_0.1_src_all.tar.gz
with a little help from our friend @natefoo?
Can we? Pretty please? :) Should be as simple as just grepping the logs for /software
and and aggregating those somewhere accessible.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.