Comments (13)
I see, good point. It's an easy fix, I'll run some tests to make sure what we think is happening is happening.
from merlin.
To be clear, you should be able to use env variables in all sections except the steps. These are definitely used in the batch section. I mean they should all be replaced at run , except for the steps.
from merlin.
Well the point is to replace them immediately, like paths to flux in the batch section. There are not part of a step so they won't be replaced by the env when they are run. Also in variables in the env section, those should be replaced at run, if a user wants the variable to remain unchanged , it should be in a step.
from merlin.
Ah ok, I think leaving them alone (and exposed) at run time will actually fix another (related) bug/feature. I was having issues using ${SYS_TYPE} in the batch section for flux w/ run-workers and was having a hard time tracking it down. Not sure yet if it's related, but there was some odd behavior
from merlin.
I think we need to remove the expanduser and expandvars references by Merlin outside of the workers
merlin/merlin/spec/expansion.py
Line 83 in 54166e0
merlin/merlin/spec/expansion.py
Line 141 in 54166e0
I propose we leave user and environment variables alone and let the workers take care of them as they would at run time
from merlin.
@lucpeterson okay, so even symbols like ~
won't work then
from merlin.
we should check whether having "~" in a spec file would work or not
from merlin.
i bring this up to address Timo's desire to use environment variables in spec descriptions for extra flexibility
as it stands now, environment variables are expanded when "merlin run" is executed and filled out in the spec, and therefore hard-coded into the step. this prevents using things like ${SYS_TYPE} within steps
from merlin.
Ohhhh I see the problem. Has nothing to do with ~
. We should leave env vars alone, to instead be interpreted by each step's shell and not meddled with by merlin.
from merlin.
from merlin.
Do we have to explicitly replace them or can they be replaced by the native shell? Can we center around an example?
from merlin.
I think this is semantics, by replaced I mean made available at run with the run env variables. So yes, as long as they are in the shell when run it is fine.
from merlin.
Fixed with #247
from merlin.
Related Issues (20)
- [FUTURE WORK] Return to PR 337
- [BUG] merlin example list gives an error HOT 4
- [BUG] errors hidden in sample generation
- [FEAT] Adding configuration features to merlin server command. HOT 2
- [FEAT] Unify merlin server config and configfile app.yaml HOT 1
- [FEAT] Need to transition off lgtm to github code-scanning
- [FEAT] Launch workers with flux if it is the main scheduler HOT 2
- "merlin stop-workers" with "--spec" and "--queues" flags does not work
- [BUG] JSON Schema Validation causes failures with restarts/resubmits
- Basic Workflow examples requires another service? HOT 29
- Add what is the default concurrency value to the documentation HOT 1
- Walltime in Batch Block HOT 4
- Question: where does singularity openfoam image get pulled? HOT 10
- Step restart may not work with many workers and long run times HOT 2
- [BUG] MERLIN_SPEC variables are not working properly HOT 11
- [BUG] slurm_par example only spins up 1 node instead of 2
- Unable to Place Environment Varibles in field resources.workers.sim_workers.nodes of merlin section
- subprocess in check_for_scheduler can also raise PermissionError HOT 1
- [FEAT] Allow for None and empty string in some batch input HOT 2
- [BUG] new “merlin status” on old workflows HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from merlin.