I hear this term around the office, and know it's relevant to software development lifecycle. What does "promote" mean? Context: e.g. to promote a file.
3 Answers
In a well set up software development shop you will have various separated environments. "Sandbox", "development", "integration test", "User Acceptance Test", "Performance Test" and finally "Production" (or "beta" and "General Release" if you are selling/distributing software).
This should be a progression of quality and rigorousness of testing. From "gee whiz I can compile it" in the sandbox environment to "I absolutely guarantee this works according to spec, as long as you don't pull the plug".
Moving a piece of software from one environment to the next is known as "promoting" it. Promotion should be preceded by some sort of quality assurance and testing to prove that the component is fit to be promoted.
-
Any chance you can give an example of how a file is promoted? i.e. How is a file moved from one environment to another, when it is promoted? Commented Aug 8, 2013 at 19:01
-
@imagineerThis, if my experience is valid elsewhere, it isn't usually a file which is promoted but either a complete version or just a given modification (which may be changes in several files). The specific about how it is done depend vastly on the internal organization. Commented Aug 9, 2013 at 6:26
-
+1. But wait: shouldn't some specs say what should happen if someone pulls the plug? :) Transactions, data integrity, failover...– MarkJCommented Aug 9, 2013 at 11:18
-
@MarkJ -- yep but I would not stand in front of the customer and say "I absolutely guarantee it will work even if you pull the plug!" too much like tempting fate. Commented Aug 13, 2013 at 1:59
The full context is probably "promote a file to production" or something like that. It just means that the file is to be moved to the "more important" or "more critical" system. Presumably this only happens after code-review, testing, Q&A sign-off and so forth.
Analogy: a team leader is "promoted" to a manager.
How is a file moved from one environment to another, when it is promoted?
That is entirely dependent on how you build and deploy stuff to your test and production environments.
But for instance, suppose you use Git for your version control, and you have one branch for your test environment and another for your production environment. In that case, you might promote a file (or more likely a changeset comprising changes to a number of files) by merging the changes in your test branch to your production branch, rebuilding the production code and deploying it. (Or you could do a reset to make the HEAD of the production branch the same as the last commit for the changeset on the test branch. Or you could cherry-pick ...)
In the most basic sense, this is just using the associated command from the version control system in common-language "office talk." Occasionally, the command to move a file from a developer's workspace into a higher level of the version control tree ("Test", "QA", etc) is promote
.