james.lamb
07/06/2020, 6:23 PMHow should I handle prefect version differences between the environment where a flow is created and registered (So, concretely, let's say that I have an agent running using the image) and the environment where the agent runs?flow.register()
prefecthq/prefect:0.12.1-python3.7
. I have some flows already being run by that agent, and those flows were created with prefect
0.12.1.
Imagine that prefect
0.13.0 has just been released on PyPi, and data scientists on my team are going to pip install prefect
, create flows, and register them with flow.register()
What should I do?
1. Add a label to each agent with the prefect major + minor version (e.g. v0.12, v0.13). Make sure flows are registered with such a version label, so 0.12 flows run on the 0.12 agent and 0.13 flows run on the 0.13 agent. prefect
uses semantic versioning, which means that there can be breaking changes between minor releases in the 0.x
series.
2. Do nothing. a flow created with 0.13.x should be expected to work with an agent running 0.12.x
3. Upgrade all those 0.12 flows to 0.13. Prefect Cloud is only ever running a single version of prefect
and if your flows + agent are not in sync with that version, bad things will happen.
4. something else
Thanks for your time and consideration!Kyle Moon-Wright
07/06/2020, 6:38 PMjames.lamb
07/06/2020, 6:42 PMprefect
library, so I imagine that if those things change it could break older flows: https://github.com/PrefectHQ/prefect/blob/ac473c3b09c4175ecbbd2c8758c300ab49f9b6fe/src/prefect/agent/agent.py#L18-L24Kyle Moon-Wright
07/06/2020, 7:05 PMjames.lamb
07/06/2020, 7:27 PM