russellwstanley asked whether running launcher bootstrap web_only and launcher run web_only at different times would result in the exact same software running, given a fixed revision of discourse_docker and state in the YAML files. pfaffman replied that if the branch being pulled is tests-passed, the version may change with every rebuild/bootstrap, and suggested using a beta version or commit ID to ensure consistency.
russellwstanley sought clarification on whether this was related to the discourse_docker branch or another setting. schleifer explained that the params: version: key in web_only.yml determines the version of Discourse used, with the default being tests-passed, and also noted that plugins will update unless a version is pinned in their git clone. russellwstanley intends to investigate this setting.
If I have a checkout of discourse_docker at revision A. and I run launcher bootstrap web_only followed by launcher run web_only at time T1 and then, at time T2 I run the exact same commands, will I get the exact same software running at T1 as T2?
ie. does the commit id of discourse_docker + whatever state is in the yaml files constitute the complete state that builds the running artifact?
I suspect that it is not because I seem to see Discourse pulling from git remotes during build and startup but I’d just like to check with the community.
It depends on what branch you are pulling. If it’s tests-passed, then you are likely to get a different version at every rebuild /bootstrap. You could or either a beta version or a commit id there to see that things stay the same.
If you want paid support to get your larger problem solved and have a budget, my contact info is in my profile.
thanks @pfaffman . Quick clarification. By branch do you mean the branch of discourse_docker or is there another setting that can lock the main discourse to a certain branch? Just to be clear, in my example, I am not deliberately pulling new code for either discourse_docker or discourse . I’m getting the feeling that discourse_docker does either one, or both behind the scenes. Ideally I would want to disable this behaviour so I can get a repeatable build. Is this possible?
Launcher will pull the version of Discourse specified by the params: version: key in web_only.yml. As described in that file, the default is tests-passed.
In addition, plugins will normally update unless you pin a version in their git clone.