diff --git a/SDC-005.tex b/SDC-005.tex index 987a8eb7e19a428f3e8aac90ead21887082b64d3..75c0e6392a720278f5835459c80d4ea8b31f381c 100644 --- a/SDC-005.tex +++ b/SDC-005.tex @@ -18,6 +18,9 @@ } \input{astron-abbreviations} +\newacronym{CI}{CI}{Continuous Integration} +\newacronym{CD}{CD}{Continuous Deployment} + \makeglossaries % Don't expand these abbreviations \glsunset{ASCL} @@ -40,4 +43,29 @@ Perhaps the primary activity of the \gls{SDC} Program is the development of a variety of software packages which will be used to implement the services deployed by the \gls{SDCO} team. It is essential to establish consistency across the \gls{SDC} Program to \gls{SDCO} interface: software should be tested, documented, and packaged in a consistent way, regardless of which \gls{SDC} Program team is responsible for delivery\footnote{``Consistent'' here is not quite synonymous with identical: different types of software may require different processes, but those processes should be harmonized wherever possible.}. +\section{Suggestion from \gls{SDCO}} + +This material is adapted from an e-mail from Roberto Pizzo on 1 December 2020. +It is preserved here for reference and discussion; this text does not represent formal \gls{SDC} policy at time of writing. + +\begin{enumerate} + +\item{Software should be developed and published in a repository with continuous build, integration, deploy and testing functionality.} + +\item{The release candidate should be been tagged, documented, and demonstrated to pass the all unit, integration, and other tests.} + +\item{The release candidate should to be deployed in an acceptance environment that mirrors the production environment and allows for demonstration and interactive acceptance testing. +This acceptance environment could be provided by \gls{SDCO} or be a part of the \acrshort{CI}/\acrshort{CD} (\acrlong{CI}/\acrlong{CD}) environment maintained by the \gls{SDC} Program}. + +\item{\gls{SDCO} will formally accept the release candidate based on the deployed version on the acceptance environment.} + +\item{The accepted release version is deployed by \gls{SDCO} in the production environment. +The deployment process in the production environment should in essence be a duplication of the process in the acceptance environment. +If the functionality is provided as an easily deployable package (e.g. \texttt{pip}), the production deployment could be undertaken by \gls{SDCO} (i.e. delegated to sysadmins); if it requires technical expertise to deploy, it should be undertaken/supported by \gls{SDC} Program staff +Further integration in the \gls{CI}/\gls{CD} system could also motivate production deployment to be undertaken by the \gls{SDC} Program.} + +\item{It should be possible to roll back to the previously deployed version if necessary.} + +\end{enumerate} + \end{document}