-
Notifications
You must be signed in to change notification settings - Fork 86
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
Implement recursive shed uploads #68
Conversation
Does it makes sense to check before uploading if anything has changed? @erasche I have noticed the path in your example ;) |
Looks good overall - Also - I think we should allow |
@bgruening I'm not aware of how one would accomplish that, since we're uploading .tar.gzs that get modified upon upload with replaced paths...it's just so easy to upload and wait for it to fail. @jmchilton I'll fix linting issues, sorry about, my editor does pep8 automatically but I must've missed those. Definitely needs a |
@jmchilton okay, passes flake and has a |
Implement recursive shed uploads
Awesome, thanks. |
Any clue if it will update stuff we don't want it to? Like lets say we have a But if go an upload our unchanged Ping @blankenberg @InitHello |
Ah, this is a toolshed side question. sorry, that took a while to understand. back on the planemo end, there are some "bad" scenarios here, e.g.
It's not a clean option, there's probably room for things like dependency graph building (i.e. ensure all children are pushed before parents) but the scope for that is a lot bigger than a simple
|
Yeah definitely a tool shed side question - I think the client is right. I am a little concerned about the approach of pushing the whole repository at once - I feel like there might need to be a check that there is a diff we actually care about before pushing (kind of coming back to @bgruening's comment). I should do some experiments to convince myself one way or the other - but I guess your jenkins setup will figure that out for me :). |
I think you have a valid concern there, but my experiments convinced me that it works "well enough"; unchanged repositories don't seem to be re-uploaded, and compared with the expense of trying to figure out of the files are truly unchanged (bearing in mind toolshed side modification of the files...) when the toolshed neatly rejects repeated uploads. Indeed, haha, my jenkins set up with clobber absolutely everything in the TTS, so we'll see how that works for everyone and can iterate from that. |
I was about to write a small wrapper to upload dozens of tools to a shed using planemo, but then I realised I shouldn't write something new, it should be added to planemo. So, I've added a
--recurse
option which lets you launch planemo as$ planemo shed_upload --recurse --shed_target testtoolshed path/to/bgruenings/billions/of/tools/
and have it push all of the tools at once, rather than with messy for loops on the command line. Anything with a
.shed.yml
in it will be attempted to be uploaded. I didn't know (and didn't bother to check) how the caller used the return code, so I settled for "if everything returns OK, then we return OK. If one thing returns a -1, we return a -1"