-
Notifications
You must be signed in to change notification settings - Fork 999
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
[22.01] Create config package, move app-related functionality to app #13461
[22.01] Create config package, move app-related functionality to app #13461
Conversation
88da758
to
28f0210
Compare
Does this need to target 22.01? Seems quite "invasive" so late in the release cycle. |
216d116
to
dce1d77
Compare
I think so, otherwise we have to hack around the path resolution to the interactivetools_map setting. |
Though we could publish the config package from the dev branch and depend on that in gravity. |
(It also just moves around a few things around, it doesn't add new code, I don't think the lines changed number gives a good impression of the changes. #13454 was much more invasive in that regard) |
Fine by me, #13451 didn't directly mention issues with interactivetools_map , good to have it stated somewhere for future reference! |
dce1d77
to
598c2dc
Compare
598c2dc
to
5ced139
Compare
This comment was marked as resolved.
This comment was marked as resolved.
and just set override_tempdir to False.
We're already importing at the top Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
07c6120
to
2ba66ab
Compare
If we merge this into 22.01, I'll have to hack around the alembic branch. A lot. Why 22.01? This is a considerable change to the code base (most welcomed and needed, but considerable). |
That's a good point, but I'm pretty sure that works and gravity would use the virtualenv package, while a root install uses local imports (I think that's because we set PYTHONPATH). Or so this seems to be the case for planemo installed in a Galaxy virtualenv. I tested this real quick now by editing version.py to 10.01 in the galaxy-util package, installing the package, then stashing the changes: $ python -c "from galaxy import version; print(version.VERSION)"
10.01.rc1
$ PYTHONPATH=lib/ python -c "from galaxy import version; print(version.VERSION)"
22.01.rc1 Do you think this is good enough, or do you think we need to add a workaround like |
Do we need it at all in packages/app, given that app depends on config ? |
Following "explicit is better than implicit", I prefer we add all packages that are imported in some package B files even if they are already dependency of a requirement A. In this way, if the package A drops the dependency at some point, package B doesn't break. |
Uff, that seems hard to maintain as a policy without tooling to enforce this. Are we sure we're doing that now ? |
…kage Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
Should be redundant as it is handled by the config package requirements.
As a best effort. We also sometimes miss requirements in |
Planemo should never be installed in Galaxy's virtualenv 😅 - this used to crash and burn terribly and that is what I would expect. This seems problematic to me, Python isn't node. I don't think we should have two sources of truth in Galaxy's virtualenv. I don't think this makes sense for a production setting. Bringing gravity into Galaxy's package system isn't a valid way to deal with this? |
I think that wasn't necessarily due to fundamental issues with the approach, but how we propagated the VIRTUAL_ENV variable. But of course it's not a good idea since the non-galaxy dependencies could conflict.
We could of course, but how would this work ? I'd assume we'd still have to install the gravity package ? |
I did propose something along these lines: #13224 (comment) but @natefoo was not in favour. |
I'd also assume that production setups wouldn't necessarily install gravity into the same virtualenv as Galaxy, we only do that for simplicity in the run.sh case. Maybe we should drop gravity from |
Alright, so after sleeping a night on this I see a few (not mutually exclusive) options and ramblings:
I think none of these options would speak against a config package. I'm gonna go ahead with the first option for now, but I'd like for the config package to be in 22.01, even if it won't be used in the gravity version we'll ship with 22.01. |
Maybe we can install gravity with pipx ? |
That is definitely an interesting option. We'll have to figure out the state dir setting, but if we can do that I think that would be ideal. |
Maybe we could ignore the state dir issue for now. The documentation says to activate galaxy's virtualenv, which has a default state dir set. So this would still work, as long as Galaxy's virtualenv doesn't include a conflicting gravity. It does take away from the advantage of using pipx, but it's better than the other possible options at this point. And you can always set the state dir explicitly. |
@mvdbeek I am a bit lost with the plan, and I think we need buy-in from at least @natefoo and @jmchilton . Should we discuss this at the next backend-wg meeting on 2022-03-08, but merge this in the mean time? |
I continue to hate this but I don't understand the underlying issues. We won't really have a very clean way to remove those older Galaxy packages out of the virtualenv if we decide to undo this in a future release. This isn't a -1 though, I hope I prove to be wrong about this - and this is just a once bitten, twice shy kind of response. |
Also... to be clear... I do love having a standalone galaxy-config package. That is absolutely awesome regardless of the dependency issues with gravity. |
Work towards #13451
How to test the changes?
(Select all options that apply)
License