Hi.
I’m stepping into the new development workflow and I’m trying to match some of the tasks we actually do with the behaviour of the new development workflow.
I’m starting from this post Missing environment color in the new ui where @louis activated the new development workflow on our project.
Our setup is the following:
- 1 “prod” environment - mapped to forest “production” environment type - visible to all the forest end users
- 1 “stg” environment - mapped to forest “staging” environment type - visible to all the forest end users (for UAT, training, tests, etc.)
- 1 “dev” environment - mapped to forest “development” environment type - not visible to the forest end users (to be used only by admins and developers)
All the above environments have a server backend.
Then for each development feature branch, we used to have a forest development environment linked to the local workstation of the developer.
When deploying to dev/stg/prod, all the changes to the forest layout were repeated manually when needed. Obviously, the dev and stg environment required few attention then the prod one.
Now, with the new development workflow, I have some concerns.
What I understood from the docs is that as soon as I “start the migration process” towards the new development workflow, my “dev” environment will be removed. I’m not happy about this, because in the “dev” server and in the “dev” layout we have a stock of new features we have been developing for a long time and we are going to loose all the new layouts… because we’re not yet ready to go to prod with these new features.
By the way, it’s not production… let’s say that this is very annoying but not blocking actually.
Here are my concerns:
(1)
how can I have a “dev” environment mapped to a forest staging environment type, without showing this env to the end users?
(2)
Can we have two environments “dev” and “stg” both mapped to forest staging environment type?
(3)
What if we have a forest branch “A” and a forest branch “B”. Then we do the following:
-
forest push
“A” to the “dev” environment (which is a staging forest environment type) and -
forest push
“B” to the “stg” environment (which is a staging forest environment type)
In this case, as far as I could understand, both “A” and “B” branches get removed. Because the only thing I can do is promote the changes to the prod environment with a forest deploy
.
Let’s say I promote the changes we have in the “stg” enviroment (which is a staging forest environment type).
- are these changes reflected to the “dev” environment (which is a staging forest environment type)?
- in this scenario, is it then safe to
forest deploy
also the changes from the “dev” environment (which is a staging forest environment type)?
(4)
- Is there any kind of “hierarchy” between my “dev” and “stg” enviroments (which are both mapped to staging forest environment type)? In other words, what I manually do in the “stg” layout gets reflected to “dev”? If no, how can I move back my layout changes from “stg” to “dev”? And what if in “dev” I have something pushed from a different forest branch?
- how can I join my changes from “A” into “B” (“A” and “b” were described in (3) above), i.e. from “dev” to “stg” in order to join the changes before deploying both to “prod”?
- seen that in my development CI/CD i need to get through “stg” before moving to “prod”, how can I remove the “B” changes from “stg” in order to push into “stg” only the features of “A”, to enable my UAT in “stg” and then promote to “prod”?
I am not so confident actually because I’ve already seen this post: Reset environment layout changes (dev workflow)
and without the option to reset the path triggered by a forest push
it looks like the new development workflow prevents complex and parallel “git like” standard development habits on my side.
May you please help me in understanding the full picture? Because I’m not sure I’m right… maybe I’m missing something important
Thank you in advance,
Matteo