<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="generator" content="Asciidoctor 2.0.23"> <meta name="author" content="Perforce Professional Services"> <title>SDP Release Notes</title> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"> <style> /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */ /* Uncomment the following line when using as a custom stylesheet */ /* @import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */ html{font-family:sans-serif;-webkit-text-size-adjust:100%} a{background:none} a:focus{outline:thin dotted} a:active,a:hover{outline:0} h1{font-size:2em;margin:.67em 0} b,strong{font-weight:bold} abbr{font-size:.9em} abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none} dfn{font-style:italic} hr{height:0} mark{background:#ff0;color:#000} code,kbd,pre,samp{font-family:monospace;font-size:1em} pre{white-space:pre-wrap} q{quotes:"\201C" "\201D" "\2018" "\2019"} small{font-size:80%} sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sup{top:-.5em} sub{bottom:-.25em} img{border:0} svg:not(:root){overflow:hidden} figure{margin:0} audio,video{display:inline-block} audio:not([controls]){display:none;height:0} fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em} legend{border:0;padding:0} button,input,select,textarea{font-family:inherit;font-size:100%;margin:0} button,input{line-height:normal} button,select{text-transform:none} button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer} button[disabled],html input[disabled]{cursor:default} input[type=checkbox],input[type=radio]{padding:0} button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0} textarea{overflow:auto;vertical-align:top} table{border-collapse:collapse;border-spacing:0} *,::before,::after{box-sizing:border-box} html,body{font-size:100%} body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;line-height:1;position:relative;cursor:auto;-moz-tab-size:4;-o-tab-size:4;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased} a:hover{cursor:pointer} img,object,embed{max-width:100%;height:auto} object,embed{height:100%} img{-ms-interpolation-mode:bicubic} .left{float:left!important} .right{float:right!important} .text-left{text-align:left!important} .text-right{text-align:right!important} .text-center{text-align:center!important} .text-justify{text-align:justify!important} .hide{display:none} img,object,svg{display:inline-block;vertical-align:middle} textarea{height:auto;min-height:50px} select{width:100%} .subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em} div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0} a{color:#2156a5;text-decoration:underline;line-height:inherit} a:hover,a:focus{color:#1d4b8f} a img{border:0} p{line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility} p aside{font-size:.875em;line-height:1.35;font-style:italic} h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em} h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0} h1{font-size:2.125em} h2{font-size:1.6875em} h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em} h4,h5{font-size:1.125em} h6{font-size:1em} hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em} em,i{font-style:italic;line-height:inherit} strong,b{font-weight:bold;line-height:inherit} small{font-size:60%;line-height:inherit} code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)} ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit} ul,ol{margin-left:1.5em} ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0} ul.circle{list-style-type:circle} ul.disc{list-style-type:disc} ul.square{list-style-type:square} ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit} ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0} dl dt{margin-bottom:.3125em;font-weight:bold} dl dd{margin-bottom:1.25em} blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd} blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)} @media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2} h1{font-size:2.75em} h2{font-size:2.3125em} h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em} h4{font-size:1.4375em}} table{background:#fff;margin-bottom:1.25em;border:1px solid #dedede;word-wrap:normal} table thead,table tfoot{background:#f7f8f7} table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left} table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)} table tr.even,table tr.alt{background:#f8f8f7} table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6} h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em} h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400} .center{margin-left:auto;margin-right:auto} .stretch{width:100%} .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table} .clearfix::after,.float-group::after{clear:both} :not(pre).nobreak{word-wrap:normal} :not(pre).nowrap{white-space:nowrap} :not(pre).pre-wrap{white-space:pre-wrap} :not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed} pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed} pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit} pre>code{display:block} pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal} em em{font-style:normal} strong strong{font-weight:400} .keyseq{color:rgba(51,51,51,.8)} kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 .1em #fff;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap} .keyseq kbd:first-child{margin-left:0} .keyseq kbd:last-child{margin-right:0} .menuseq,.menuref{color:#000} .menuseq b:not(.caret),.menuref{font-weight:inherit} .menuseq{word-spacing:-.02em} .menuseq b.caret{font-size:1.25em;line-height:.8} .menuseq i.caret{font-weight:bold;text-align:center;width:.45em} b.button::before,b.button::after{position:relative;top:-1px;font-weight:400} b.button::before{content:"[";padding:0 3px 0 2px} b.button::after{content:"]";padding:0 2px 0 3px} p a>code:hover{color:rgba(0,0,0,.9)} #header,#content,#footnotes,#footer{width:100%;margin:0 auto;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em} #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table} #header::after,#content::after,#footnotes::after,#footer::after{clear:both} #content{margin-top:1.25em} #content::before{content:none} #header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0} #header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf} #header>h1:only-child{border-bottom:1px solid #dddddf;padding-bottom:8px} #header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:flex;flex-flow:row wrap} #header .details span:first-child{margin-left:-.125em} #header .details span.email a{color:rgba(0,0,0,.85)} #header .details br{display:none} #header .details br+span::before{content:"\00a0\2013\00a0"} #header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)} #header .details br+span#revremark::before{content:"\00a0|\00a0"} #header #revnumber{text-transform:capitalize} #header #revnumber::after{content:"\00a0"} #content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem} #toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em} #toc>ul{margin-left:.125em} #toc ul.sectlevel0>li>a{font-style:italic} #toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0} #toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none} #toc li{line-height:1.3334;margin-top:.3334em} #toc a{text-decoration:none} #toc a:active{text-decoration:underline} #toctitle{color:#7a2518;font-size:1.2em} @media screen and (min-width:768px){#toctitle{font-size:1.375em} body.toc2{padding-left:15em;padding-right:0} body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px} #toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto} #toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em} #toc.toc2>ul{font-size:.9em;margin-bottom:0} #toc.toc2 ul ul{margin-left:0;padding-left:1em} #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em} body.toc2.toc-right{padding-left:0;padding-right:15em} body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}} @media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0} #toc.toc2{width:20em} #toc.toc2 #toctitle{font-size:1.375em} #toc.toc2>ul{font-size:.95em} #toc.toc2 ul ul{padding-left:1.25em} body.toc2.toc-right{padding-left:0;padding-right:20em}} #content #toc{border:1px solid #e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;border-radius:4px} #content #toc>:first-child{margin-top:0} #content #toc>:last-child{margin-bottom:0} #footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em} #footer-text{color:hsla(0,0%,100%,.8);line-height:1.44} #content{margin-bottom:.625em} .sect1{padding-bottom:.625em} @media screen and (min-width:768px){#content{margin-bottom:1.25em} .sect1{padding-bottom:1.25em}} .sect1:last-child{padding-bottom:0} .sect1+.sect1{border-top:1px solid #e7e7e9} #content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400} #content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em} #content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible} #content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none} #content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221} details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em} details{margin-left:1.25rem} details>summary{cursor:pointer;display:block;position:relative;line-height:1.6;margin-bottom:.625rem;outline:none;-webkit-tap-highlight-color:transparent} details>summary::-webkit-details-marker{display:none} details>summary::before{content:"";border:solid transparent;border-left:solid;border-width:.3em 0 .3em .5em;position:absolute;top:.5em;left:-1.25rem;transform:translateX(15%)} details[open]>summary::before{border:solid transparent;border-top:solid;border-width:.5em .3em 0;transform:translateY(15%)} details>summary::after{content:"";width:1.25rem;height:1em;position:absolute;top:.3em;left:-1.25rem} .admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic} table.tableblock.fit-content>caption.title{white-space:nowrap;width:0} .paragraph.lead>p,#preamble>.sectionbody>[class=paragraph]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)} .admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%} .admonitionblock>table td.icon{text-align:center;width:80px} .admonitionblock>table td.icon img{max-width:none} .admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase} .admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere} .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0} .exampleblock>.content{border:1px solid #e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;border-radius:4px} .sidebarblock{border:1px solid #dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;border-radius:4px} .sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center} .exampleblock>.content>:first-child,.sidebarblock>.content>:first-child{margin-top:0} .exampleblock>.content>:last-child,.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0} .literalblock pre,.listingblock>.content>pre{border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em} @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}} @media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}} .literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class=highlight],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8} .literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)} .listingblock>.content{position:relative} .listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5} .listingblock:hover code[data-lang]::before{display:block} .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5} .listingblock.terminal pre .command:not([data-prompt])::before{content:"$"} .listingblock pre.highlightjs{padding:0} .listingblock pre.highlightjs>code{padding:1em;border-radius:4px} .listingblock pre.prettyprint{border-width:0} .prettyprint{background:#f7f7f8} pre.prettyprint .linenums{line-height:1.45;margin-left:2em} pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0} pre.prettyprint li code[data-lang]::before{opacity:1} pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none} table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none} table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal} table.linenotable td.code{padding-left:.75em} table.linenotable td.linenos,pre.pygments .linenos{border-right:1px solid;opacity:.35;padding-right:.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} pre.pygments span.linenos{display:inline-block;margin-right:.75em} .quoteblock{margin:0 1em 1.25em 1.5em;display:table} .quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em} .quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify} .quoteblock blockquote{margin:0;padding:0;border:0} .quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)} .quoteblock blockquote>.paragraph:last-child p{margin-bottom:0} .quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right} .verseblock{margin:0 1em 1.25em} .verseblock pre{font-family:"Open Sans","DejaVu Sans",sans-serif;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility} .verseblock pre strong{font-weight:400} .verseblock .attribution{margin-top:1.25rem;margin-left:.5ex} .quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic} .quoteblock .attribution br,.verseblock .attribution br{display:none} .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)} .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none} .quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0} .quoteblock.abstract{margin:0 1em 1.25em;display:block} .quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center} .quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf} .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0} .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem} .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:.85rem;text-align:left;margin-right:0} p.tableblock:last-child{margin-bottom:0} td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere} td.tableblock>.content>:last-child{margin-bottom:-1.25em} table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede} table.grid-all>*>tr>*{border-width:1px} table.grid-cols>*>tr>*{border-width:0 1px} table.grid-rows>*>tr>*{border-width:1px 0} table.frame-all{border-width:1px} table.frame-ends{border-width:1px 0} table.frame-sides{border-width:0 1px} table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0} table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0} table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0} table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0} table.stripes-all>*>tr,table.stripes-odd>*>tr:nth-of-type(odd),table.stripes-even>*>tr:nth-of-type(even),table.stripes-hover>*>tr:hover{background:#f8f8f7} th.halign-left,td.halign-left{text-align:left} th.halign-right,td.halign-right{text-align:right} th.halign-center,td.halign-center{text-align:center} th.valign-top,td.valign-top{vertical-align:top} th.valign-bottom,td.valign-bottom{vertical-align:bottom} th.valign-middle,td.valign-middle{vertical-align:middle} table thead th,table tfoot th{font-weight:bold} tbody tr th{background:#f7f8f7} tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold} p.tableblock>code:only-child{background:none;padding:0} p.tableblock{font-size:1em} ol{margin-left:1.75em} ul li ol{margin-left:1.5em} dl dd{margin-left:1.125em} dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0} li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em} ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none} ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em} ul.unstyled,ol.unstyled{margin-left:0} li>p:empty:only-child::before{content:"";display:inline-block} ul.checklist>li>p:first-child{margin-left:-1em} ul.checklist>li>p:first-child>.fa-square-o:first-child,ul.checklist>li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em} ul.checklist>li>p:first-child>input[type=checkbox]:first-child{margin-right:.25em} ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em} ul.inline>li{margin-left:1.25em} .unstyled dl dt{font-weight:400;font-style:normal} ol.arabic{list-style-type:decimal} ol.decimal{list-style-type:decimal-leading-zero} ol.loweralpha{list-style-type:lower-alpha} ol.upperalpha{list-style-type:upper-alpha} ol.lowerroman{list-style-type:lower-roman} ol.upperroman{list-style-type:upper-roman} ol.lowergreek{list-style-type:lower-greek} .hdlist>table,.colist>table{border:0;background:none} .hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none} td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em} td.hdlist1{font-weight:bold;padding-bottom:1.25em} td.hdlist2{word-wrap:anywhere} .literalblock+.colist,.listingblock+.colist{margin-top:-.5em} .colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top} .colist td:not([class]):first-child img{max-width:none} .colist td:not([class]):last-child{padding:.25em 0} .thumb,.th{line-height:0;display:inline-block;border:4px solid #fff;box-shadow:0 0 0 1px #ddd} .imageblock.left{margin:.25em .625em 1.25em 0} .imageblock.right{margin:.25em 0 1.25em .625em} .imageblock>.title{margin-bottom:0} .imageblock.thumb,.imageblock.th{border-width:6px} .imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em} .image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0} .image.left{margin-right:.625em} .image.right{margin-left:.625em} a.image{text-decoration:none;display:inline-block} a.image object{pointer-events:none} sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super} sup.footnote a,sup.footnoteref a{text-decoration:none} sup.footnote a:active,sup.footnoteref a:active,#footnotes .footnote a:first-of-type:active{text-decoration:underline} #footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em} #footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0} #footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em} #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em} #footnotes .footnote:last-of-type{margin-bottom:0} #content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0} div.unbreakable{page-break-inside:avoid} .big{font-size:larger} .small{font-size:smaller} .underline{text-decoration:underline} .overline{text-decoration:overline} .line-through{text-decoration:line-through} .aqua{color:#00bfbf} .aqua-background{background:#00fafa} .black{color:#000} .black-background{background:#000} .blue{color:#0000bf} .blue-background{background:#0000fa} .fuchsia{color:#bf00bf} .fuchsia-background{background:#fa00fa} .gray{color:#606060} .gray-background{background:#7d7d7d} .green{color:#006000} .green-background{background:#007d00} .lime{color:#00bf00} .lime-background{background:#00fa00} .maroon{color:#600000} .maroon-background{background:#7d0000} .navy{color:#000060} .navy-background{background:#00007d} .olive{color:#606000} .olive-background{background:#7d7d00} .purple{color:#600060} .purple-background{background:#7d007d} .red{color:#bf0000} .red-background{background:#fa0000} .silver{color:#909090} .silver-background{background:#bcbcbc} .teal{color:#006060} .teal-background{background:#007d7d} .white{color:#bfbfbf} .white-background{background:#fafafa} .yellow{color:#bfbf00} .yellow-background{background:#fafa00} span.icon>.fa{cursor:default} a span.icon>.fa{cursor:inherit} .admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default} .admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c} .admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111} .admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900} .admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400} .admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000} .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);border-radius:50%;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold} .conum[data-value] *{color:#fff!important} .conum[data-value]+b{display:none} .conum[data-value]::after{content:attr(data-value)} pre .conum[data-value]{position:relative;top:-.125em} b.conum *{color:inherit!important} .conum:not([data-value]):empty{display:none} dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility} h1,h2,p,td.content,span.alt,summary{letter-spacing:-.01em} p strong,td.content strong,div.footnote strong{letter-spacing:-.005em} p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:1.0625rem} p{margin-bottom:1.25rem} .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em} .exampleblock>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:0 1px 4px #e0e0dc} .print-only{display:none!important} @page{margin:1.25cm .75cm} @media print{*{box-shadow:none!important;text-shadow:none!important} html{font-size:80%} a{color:inherit!important;text-decoration:underline!important} a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important} a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em} abbr[title]{border-bottom:1px dotted} abbr[title]::after{content:" (" attr(title) ")"} pre,blockquote,tr,img,object,svg{page-break-inside:avoid} thead{display:table-header-group} svg{max-width:100%} p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3} h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid} #header,#content,#footnotes,#footer{max-width:none} #toc,.sidebarblock,.exampleblock>.content{background:none!important} #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important} body.book #header{text-align:center} body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em} body.book #header .details{border:0!important;display:block;padding:0!important} body.book #header .details span:first-child{margin-left:0!important} body.book #header .details br{display:block} body.book #header .details br+span::before{content:none!important} body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important} body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always} .listingblock code[data-lang]::before{display:block} #footer{padding:0 .9375em} .hide-on-print{display:none!important} .print-only{display:block!important} .hide-for-print{display:none!important} .show-for-print{display:inherit!important}} @media amzn-kf8,print{#header>h1:first-child{margin-top:1.25rem} .sect1{padding:0!important} .sect1+.sect1{border:0} #footer{background:none} #footer-text{color:rgba(0,0,0,.6);font-size:.9em}} @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} </style> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> </head> <body class="book"> <div id="header"> <h1>SDP Release Notes</h1> <div class="details"> <span id="author" class="author">Perforce Professional Services</span><br> <span id="email" class="email"><a href="mailto:consulting-helix-core@perforce.com">consulting-helix-core@perforce.com</a></span><br> <span id="revnumber">version v2024.1.1,</span> <span id="revdate">2024-11-21</span> </div> <div id="toc" class="toc"> <div id="toctitle">Table of Contents</div> <ul class="sectlevel1"> <li><a href="#_preface">Preface</a></li> <li><a href="#_overview">1. Overview</a></li> <li><a href="#_whats_new_in_sdp_2024_1_patch_1">2. What’s New in SDP 2024.1 Patch 1</a></li> <li><a href="#_whats_new_in_sdp_2024_1">3. What’s New in SDP 2024.1</a></li> <li><a href="#_whats_coming_next_in_sdp_2024_2">4. What’s Coming Next in SDP 2024.2?</a></li> <li><a href="#_sdp_health_checks">5. SDP Health Checks</a></li> <li><a href="#_sdp_supported_maintenance_schedule">6. SDP Supported Maintenance Schedule</a></li> <li><a href="#_sdp_and_p4d_version_compatibility">7. SDP and P4D Version Compatibility</a></li> <li><a href="#_change_history">8. Change History</a></li> </ul> </div> </div> <div id="content"> <div class="sect1"> <h2 id="_preface">Preface</h2> <div class="sectionbody"> <div class="paragraph"> <p><strong>Please Give Us Feedback</strong></p> </div> <div class="paragraph"> <p>Perforce welcomes feedback from our users. Please send any suggestions for improving this document or the SDP to <a href="mailto:consulting-helix-core@perforce.com">consulting-helix-core@perforce.com</a>.</p> </div> </div> </div> <div class="sect1"> <h2 id="_overview">1. Overview</h2> <div class="sectionbody"> <div class="paragraph"> <p>These release notes document the most important changes to the SDP.</p> </div> <div class="paragraph"> <p>There are two flavors of the SDP, Unix and Windows.</p> </div> <div class="paragraph"> <p>For UNIX/Linux, see: <a href="SDP_Guide.Unix.html">SDP Guide for UNIX/Linux</a></p> </div> <div class="paragraph"> <p>For Windows, see: <a href="SDP_Guide.Windows.html">SDP Guide for Windows</a></p> </div> </div> </div> <div class="sect1"> <h2 id="_whats_new_in_sdp_2024_1_patch_1">2. What’s New in SDP 2024.1 Patch 1</h2> <div class="sectionbody"> <div class="paragraph"> <p>The main themes of the SDP 2024.1 Patch 1 release are:</p> </div> <div class="ulist"> <ul> <li> <p>Addition of the <code>install_sdp.sh</code> script in the SDP. This eliminates the need for external scripts such as the <code>reset_sdp.sh</code> script.</p> </li> <li> <p>Documentation focused on simplifying the installation process for Helix Core Server, Helix Proxy, and Helix Broker services.</p> </li> <li> <p>A hardening of features related to parallel checkpoints in the Helix Core Server.</p> </li> <li> <p>A new <code>sdp_info.sh</code> trigger that appends SDP Version to the output of <code>p4 info</code>.</p> </li> </ul> </div> <div class="paragraph"> <p>See more in <a href="#_change_history">Chapter 8, <em>Change History</em></a> below.</p> </div> </div> </div> <div class="sect1"> <h2 id="_whats_new_in_sdp_2024_1">3. What’s New in SDP 2024.1</h2> <div class="sectionbody"> <div class="paragraph"> <p>The SDP 2024.1 release followed shortly after the Helix Core 2024.1 release, and makes 2024.1 the default version for new installations and upgrades.</p> </div> <div class="paragraph"> <p>SDP 2024.1 adds several new changes, including support for mulitple platforms on UNIX/Linux servers, to include aarch64 (tested on Graviton).</p> </div> <div class="paragraph"> <p>See more in <a href="#_change_history">Chapter 8, <em>Change History</em></a> below.</p> </div> </div> </div> <div class="sect1"> <h2 id="_whats_coming_next_in_sdp_2024_2">4. What’s Coming Next in SDP 2024.2?</h2> <div class="sectionbody"> <div class="paragraph"> <p>For a list of features expected to be included in the 2024.2 release, see the <a href="https://swarm.workshop.perforce.com/files/guest/perforce_software/sdp/tools/r24.2.RoadMap.md">SDP r24.2 Road Map</a>.</p> </div> </div> </div> <div class="sect1"> <h2 id="_sdp_health_checks">5. SDP Health Checks</h2> <div class="sectionbody"> <div class="paragraph"> <p>If you need to contact Perforce Support to diagnose an issue with the SDP on UNIX/Linux, you can use the <code>/p4/common/bin/sdp_health_check.sh</code> script. This script is included with the SDP (starting with SDP 2023.1 Patch 3). If your installation does not have this script, it can be downloaded separately. Every version of the <code>sdp_health_check.sh</code> script can be used any and all versions of the UNIX/Linux SDP dating back to 2007, so you don’t need to be concerned with version compatibility.</p> </div> <div class="paragraph"> <p>If your Perforce Helix server machine has outbound internet access, execute the following while logged in as the operating system user that owns the <code>/p4/common/bin</code> directory (typically <code>perforce</code> or <code>p4admin</code>):</p> </div> <div class="literalblock"> <div class="content"> <pre>cd /p4/common/bin</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>[[ -e sdp_health_check.sh ]] && mv -f sdp_health_check.sh sdp_health_check.sh.moved.$(date +'%Y-%m-%d-%H%M%S')</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>curl -L -O https://swarm.workshop.perforce.com/download/guest/perforce_software/sdp/tools/sdp_health_check.sh chmod +x sdp_health_check.sh</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>./sdp_health_check.sh</pre> </div> </div> <div class="paragraph"> <p>If your Perforce Helix server machine does not have have outbound internet access, acquire the <code>sdp_health_check.sh</code> file from a machine that does have outbound internet access, and then somehow get that file to your Perforce Helix server machine.</p> </div> <div class="paragraph"> <p>If you have multiple server machines with SDP, possibly including machines running P4D replicas or edge servers, P4Proxy or P4Broker servers, run the health on al machines of interest.</p> </div> <div class="paragraph"> <p>The <code>sdp_health_check.sh</code> script will produce a log file that can be provided to Perforce Support to help diagnose configuration issues and other problems. The script has these characteristics:</p> </div> <div class="ulist"> <ul> <li> <p>It is always safe to run. It does only analysis and reporting.</p> </li> <li> <p>It does only fast checks, and has no interactive prompts. Some log files are captured such as checkpoint.log, but not potentially large ones such as the p4d server log.</p> </li> <li> <p>It requires no command line arguments.</p> </li> <li> <p>It does not transfer sensitive information.</p> </li> <li> <p>It works for any and all UNIX/Linux SDP version since 2007.</p> </li> </ul> </div> </div> </div> <div class="sect1"> <h2 id="_sdp_supported_maintenance_schedule">6. SDP Supported Maintenance Schedule</h2> <div class="sectionbody"> <div class="paragraph"> <p>The SDP has the same support schedule as the Helix Core Server.</p> </div> <div class="paragraph"> <p>See the <a href="https://www.perforce.com/maintenance-support/helix-core-server">Helix Core Server Maintenance Support</a>.</p> </div> </div> </div> <div class="sect1"> <h2 id="_sdp_and_p4d_version_compatibility">7. SDP and P4D Version Compatibility</h2> <div class="sectionbody"> <div class="paragraph"> <p>The released versions of SDP match released versions of P4D. So SDP 2024.1 is guaranteed to work with P4D 2024.1. As of August, 2024, SDP 2024.1 is supported with these P4D versions:</p> </div> <div class="ulist"> <ul> <li> <p>P4D 2024.1</p> </li> <li> <p>P4D 2023.2</p> </li> <li> <p>P4D 2023.1</p> </li> <li> <p>P4D 2022.2</p> </li> <li> <p>P4D 2022.1</p> </li> <li> <p>P4D 2021.2</p> </li> <li> <p>P4D 2021.1</p> </li> <li> <p>P4D 2020.2</p> </li> </ul> </div> <div class="paragraph"> <p>The SDP is often forward- and backward-compatible with other P4D versions, but for best results they should be kept in sync by upgrading SDP before P4D. This is partly because the SDP contains logic that helps upgrade P4D, which can change as P4D evolves.</p> </div> <div class="paragraph"> <p>The SDP is aware of the P4D version, and has backward-compatibility logic to support older versions of P4D. This is guaranteed for the supported versions of P4D listed above. Backward compatibility of SDP with older versions of P4D may extend farther back, though without the "officially supported" guarantee.</p> </div> </div> </div> <div class="sect1"> <h2 id="_change_history">8. Change History</h2> <div class="sectionbody"> <div class="sect2"> <h3 id="_sdp_2024_1_patch_1">8.1. SDP 2024.1 Patch 1:</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2024.1/30917 (2024/11/20).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 30385 up to 30917 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1167">SDP-1167</a> (D): Server Spec Standard: ServerID for commit is now: {commit|master}[.<OrgName>[.<SDPInstance>]].</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1163">SDP-1163</a> (B): p4login errors out with multi-line server.id file.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1162">SDP-1162</a> (B): load_checkpoint.sh: With '-latest', fails to get serial checkpoint.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1151">SDP-1151</a> (B): upgrade.sh: Fixed message indicating why 2nd journal rotation skipped.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1150">SDP-1150</a> (F): New best practice configurable: dm.user.hideinvalid=1.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1147">SDP-1147</a> (B): Enhanced indication of p4pcm.pl running status from log file.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1146">SDP-1146</a> (B): ccheck.sh: Fixed issue checking for 'Unset' configurables.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1143">SDP-1143</a> (D): The trigger type should be "change-submit" when adding CheckCaseTrigger in SDP guide.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1142">SDP-1142</a> (F): Enable CAP_SYS_RESOURCE capability using systemd rather than relying on setcap.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1140">SDP-1140</a> (F): New configurable best practice - set rt.monitorfile.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1139">SDP-1139</a> (F): For Windows, make daily_backup.bat work for edge servers.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1137">SDP-1137</a> (B): Enabling Track=1 causes errors in daily journal rotation log file in Windows SDP.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1136">SDP-1136</a> (F): mkdirs.sh: Add -no_cron option.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1134">SDP-1134</a> (B): gen_default_broker_cfg.sh error line 32: unbound variable. Fixed.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1129">SDP-1129</a> (B): The call to 'p4 unlock' in crontab template needs '-f'.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1125">SDP-1125</a> (B): Fixed bug setting filesys.*.min safety values in configure_new_server.sh.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1124">SDP-1124</a> (F): Add limited sudoers and sudoers configuration to sdp.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1123">SDP-1123</a> (F): Add '-no_enable' option to avoid enabling installed services.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1122">SDP-1122</a> (B): Enhance mkdirs.sh to call get_helix_binaries.sh if/as needed.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1117">SDP-1117</a> (B): The get_helix_binaries.sh gives an error if USER is not defined. Fixed.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1116">SDP-1116</a> (F): Adapt recover_edge.sh to use latest checkpoint even if parallel.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1094">SDP-1094</a> (B): The OK and .md5 files for parallel ckps don’t get cleaned.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1088">SDP-1088</a> (B): sync_replica.sh shouldn’t require consistent parallel checkpoint config across servers.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1084">SDP-1084</a> (B): Checkpoint cleanup logic no longer distinguishes between parallel and serial.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1078">SDP-1078</a> (D): Documentation needs to be expanded to clearly state setting up of a Proxy or Broker via the SDP.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1077">SDP-1077</a> (D): Add doc for installing standalone p4p, describe Instance Bin dir.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1071">SDP-1071</a> (F): Incorporate Helix Installer functionality into SDP with new install_sdp.sh script.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1069">SDP-1069</a> (F): Decouple /p4/common and /p4/sdp from NFS (Phase 1 of 3; silent beta opt-in).</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1057">SDP-1057</a> (B): mkdirs with type p4proxy generates incorrect P4PROXY values in common/config/p4_1.vars.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1056">SDP-1056</a> (B): mkdirs.sh dealing with p4broker can create bogus common/bin entries.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1055">SDP-1055</a> (B): mkdirs.sh fails and returns 0 (success) if unbound variables in mkdirs.cfg.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1054">SDP-1054</a> (B): mkdirs.sh with type p4proxy fails if no p4d in helix_binaries.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1040">SDP-1040</a> (B): mkdirs.sh for proxy doesn’t create dirs required by verify_sdp.sh.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1018">SDP-1018</a> (F): Support p4d OOM Killer Defense feature on NFS.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1013">SDP-1013</a> (F): New trigger to add SDP Version in 'p4 info'.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-875">875</a> (F): Auto-configure p4pcm.pl '-t{low|high}' thresholds per available storage.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_web_doc_only_20240716">8.2. Web Doc Only 2024/07/16</h3> <div class="paragraph"> <p>2024/07/16 - A documentation-only hot patch of SDP web docs adjusting URLs (driven by web security improvements) was pushed to address issues with broken Apache-redirected URLs in docs. This change was for web docs only, and did not result in an update to the SDP tarball, thus this change is not tagged as an SDP release.</p> </div> </div> <div class="sect2"> <h3 id="_sdp_2024_1_ga">8.3. SDP 2024.1 GA:</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2024.1/30385 (2024/06/11).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 30295 up to 30385 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1112">SDP-1112</a> (F): Enhance mkdirs.sh to handle SELinux for installed services.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1111">SDP-1111</a> (F): Add support for /HxCheckpoints volume separate from /HxDepots.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1109">SDP-1109</a> (D): Incorrect path of "typemap" example file in SDP Linux Guide.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1108">SDP-1108</a> (B): Fixed errors in new -cshow logic generating errors for empty data set.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1107">SDP-1107</a> (B): ccheck.sh scripts misses reporting that auth.id should be set. Fixed.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1104">SDP-1104</a> (F): Changed default Helix Core version in get_helix_binaries to r24.1.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1095">SDP-1095</a> (F): Support per-host architecture variations, e.g. linux26x86_64 and linux26aarch64, e.g. Graviton.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1092">SDP-1092</a> (F): Make load_checkpoint.sh suitable for migrations with checkpoint and journals coming over time.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1065">SDP-1065</a> (F): AWS SNS can be always, or only on failure.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-649">SDP-649</a> (F): Enhance mkdirs.sh to handle systemd configuration for installed services.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2023_2_patch_1">8.4. SDP 2023.2 Patch 1:</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2023.2/30295 (2024/05/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 30041 up to 30295 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1106">SDP-1106</a> (F): Added support for podman in tests.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1103">SDP-1103</a> (F): P4MASTER_ID now accepts 'commit' as synonym for 'master'.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1102">SDP-1102</a> (B): Fixed log rotation issue in proxy_rotated.sh.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1101">SDP-1101</a> (B): p4verify.sh: Fixed issue detecting verify errors containing non-ASCII patterns.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1100">SDP-1100</a> (F): Standardized location of core dumps for p4d/p4broker/p4p.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1099">SDP-1099</a> (F): p4verify.sh: Add '-no_z' option to verify wihout -z.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1098">SDP-1098</a> (F): load_checkpoint.sh: Add '-no_start' option.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1097">SDP-1097</a> (F): ccheck.sh: Made 'prod' profile the default.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1091">SDP-1091</a> (F): Add '-p4config' option to p4sanity_check.sh to target P4PORT of external server.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1089">SDP-1089</a> (B): p4verify.sh sends mail twice. Fixed.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1087">SDP-1097</a> (F): Change p4d -cshow or -jd calls in SDP to avoid locking.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1085">SDP-1085</a> (F): request_replica_checkpoint.sh script now supports parallel checkpoints.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1084">SDP-1084</a> (F): Checkpoint cleanup logic no longer distinguishes between parallel and serial.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1083">SDP-1083</a> (F): p4verify.sh: Add verification of long-term 31+day ticket.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1082">SDP-1082</a> (B): CheckCaseTrigger.py bug with uppercase depot names on case sensitive servers. Fixed.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1080">SDP-1080</a> (F): Add '-p4config' option to p4verify.sh to target external (possibly non-SDP) server.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1068">SDP-1068</a> (B): Prevent crond sending bogus emails from SDP scripts if track is set.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1067">SDP-1067</a> (B): Fix FROM value in email function to avoid email server blocking.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1066">SDP-1066</a> (F): New best practice: Set submit.noretransfer=1.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1064">SDP-1064</a> (D): Add SDP docs on limited sudoers option for installing SDP.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2023_2_ga">8.5. SDP 2023.2 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2023.2/30041 (2023/12/22)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29949 up to 30041 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1062">SDP-1062</a> (F): Enhanced upgrade.sh to better prepare for a rollback.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1061">SDP-1061</a> (B): SSO_default.sh trigger did not support 'opt out' model. Fixed.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1060">SDP-1060</a> (F): Changed default Helix Core version in get_helix_binaries.sh to r23.2.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1059">SDP-1059</a> (F): Add keep_offline_db_current.sh utility to maintain offline_db on standby.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1058">SDP-1058</a> (B): verify_sdp.sh fails after mkdirs.sh with type p4proxy.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1053">SDP-1053</a> (F): Add support for new Traits depot in P4D 2023.2.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1052">SDP-1052</a> (F): sdp_health_check.sh: Add support for SDP installations that define P4SUPER.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1051">SDP-1051</a> (F): CheckCaseTrigger.py: Fixed performance issues with large CLs and deep directory structures.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1045">SDP-1045</a> (F): Update Windows SDP to support P4D 2023.2 atomic journal rotations.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1035">SDP-1035</a> (D): Inconsistent documentation for trigger script.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1021">SDP-1021</a> (F): Adapt SDP to P4-22821, search path for journalPrefixBackup.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-845">SDP-845</a> (D): upgrade.sh: Doc, error message, and pedantic output improvements.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-544">SDP-544</a> (F): Enhance verify_sdp.sh to check for best practice configurables.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2023_1_patch_4">8.6. SDP 2023.1 Patch 4</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2023.1/29949 (2023/12/01)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29890 up to 29949 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1048">SDP-1048</a> (B): Date format change for checkpoints in SDP not compatible with P4Prometheus.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1047">SDP-1047</a> (B): SDP configure_new_server.sh not adding initial super user correctly.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1046">SDP-1046</a> (B): The update_limits.py in SDP 2023.1 Patch 3 spawns CPU-bound zombies.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1003">SDP-1003</a> (D): Customers misusing 'Helix Installer' are creating support cases.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2023_1_patch_3">8.7. SDP 2023.1 Patch 3</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2023.1/29890 (2023/11/11)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26999 up to 29890 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1042">SDP-1042</a> (F): Enhance load_checkpoint.sh to exit with error if not enough disk space available.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1039">SDP-1039</a> (F): Added '-latest' option to load_checkpoint.sh.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1038">SDP-1038</a> (F): load_checkpont.sh: Added safety feature to defend against using '< /dev/null' and forgetting '-y'.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1036">SDP-1036</a> (F): Add support for s-nail email utility.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1033">SDP-1033</a> (F): p4verify.sh now verifies and schedules pull transfers for Extensions depot.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1032">SDP-1032</a> (F): Changed default P4MASTERHOST to localhost.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1031">SDP-1031</a> (F): The configure_new_server.sh now initializes an empty data set, creating perforce user, Automation group, initializing Protections, etc.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1030">SDP-1030</a> (F): Change security default from 0 (demo) to 4 (production).</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1029">SDP-1029</a> (F): Include the sdp_health_check.sh with every build of the SDP.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1028">SDP-1028</a> (B): upgrade.sh could stall if sudo was not configured correctly for 2023.1+ p4d upgrades.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1026">SDP-1026</a> (F): Add parallel checkpoint support to load_checkpoint.sh.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1025">SDP-1025</a> (F): In replica_status.sh, add '-v' to 'p4 -lj' if p4d is 2021.1+.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1024">SDP-1024</a> (B): mkdirs.sh typo; line end with wrap ||\ has extra i at end.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1023">SDP-1023</a> (B): Change format of datestamp in certain log files to make it easier to parse.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1022">SDP-1022</a> (F): Better handling of existing P4ROOT in load_checkpoint.sh.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-1019">SDP-1019</a> (B): In proxy_rotate.sh and broker_rotate.sh, call to check_dirs() expects dirs for a p4d server.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-772">SDP-772</a> (F): Define client.sendq.dir configurable.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-734">SDP-734</a> (F): p4verify.sh now verifies Extensions depot.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-712">SDP-712</a> (B): load_checkpoint.sh should not require a license unless p4d needs it.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-615">SDP-615</a> (B): load_checkpoint.sh can show 'EXITCODE: 0' on failure.</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-244">SDP-244</a> (F): Define client.readonly.dir configurable (Windows).</p> </li> <li> <p><a href="https://perforce.atlassian.net/browse/SDP-243">SDP-243</a> (F): Define client.readonly.dir configurable (UNIX/Linux).</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2023_1_patch_2">8.8. SDP 2023.1 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2023.1/29699 (2023/07/11)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29621 up to 29699 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-778">SDP-778</a> (B): NFS sharing /p4/common causes upgrade.sh to classify major upgrade as patch.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-915">SDP-915</a> (F): Add -paths option to p4verify.sh to verify specified paths.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-916">SDP-916</a> (F): Enhance granularity and extractability of timing info for p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-917">SDP-917</a> (B): Upgrade on Ubuntu does not attempt 'sudo setcap'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-918">SDP-918</a> (B): Add db.storage to list of tables to checkpoint on an edge.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-919">SDP-919</a> (F): p4verify.sh: Added -ignores <regex_ignores_file>' option.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-920">SDP-920</a> (B): Avoid use of setcap in Docker environments.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2023_1_patch_1">8.9. SDP 2023.1 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2023.1/29621 (2023/05/25)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29610 up to 29621 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-914">SDP-914</a> (F): Added setcap ability to mkdirs.sh</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2023_1_ga">8.10. SDP 2023.1 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2023.1/29610 (2023/05/25)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29441 up to 29610 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-1044">SDP-1044</a> (B): mkrep.sh now handle situation where no server spec exists.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-797">SDP-797</a> (F): sync_replica.sh to maintain offline_db on a 'ham' replica.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-813">SDP-813</a> (F): mkrep.sh: Add preflight check for running on master and P4MASTER_ID OK.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-840">SDP-840</a> (F): Set net.paralllel.{max,threads} to reasonable defaults.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-866">SDP-866</a> (F): Add configurables for Helix Authentication Service (HAS).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-867">SDP-867</a> (F): Change server.extensions.dir to /hxlogs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-868">SDP-868</a> (B): Fix call to p4login.bat in configure_new_server.bat (missing instance arg).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-888">SDP-888</a> (B): mkrep.sh gets generated ServerID wrong if '-f' used when not daisy chaining.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-892">SDP-892</a> (B): The sdp_upgrade.sh script erroneously resets DO_PARALLEL_CHECKPOINTS to 0.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-898">SDP-898</a> (B): Checkpoints fail if DO_PARALLEL_CHECKPOINTS is enabled and 'bc' utility not available.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-900">SDP-900</a> (F): Add support for r23.1 hyper-parallel multi-thread per db table checkpoint capability.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-903">SDP-903</a> (B): Broken / changed behavior in p4verify log name rotation.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-904">SDP-904</a> (F): p4verify.sh: Add '-w <Wait>' and '-q <MaxActivePullQueueSize>' options.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-906">SDP-906</a> (F): Update default Helix Core server release version to 2023.1</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-907">SDP-907</a> (F): Added '-Q <MaxTotalPullQueueSize>' option to p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-908">SDP-908</a> (B): Fix update_limits.py crash if unicode chars are in names/emails.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-909">SDP-909</a> (F): p4verify.sh: Add safety feature to avoid verifying cache mode replica by default.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-912">SDP-912</a> (F): Added P4D r23.1 OOM defense in SDP upgrade.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2022_2_patch_2">8.11. SDP 2022.2 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2022.2/29441 (2023/02/27)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29399 up to 29441 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-872">SDP-872</a> (B): For parallel checkpoint replay, need to add '-N'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-878">SDP-878</a> (B): p4login fails to get P4TARGET if replica ServerID is subset of another.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-880">SDP-880</a> (B): p4login expands only first comma in SDP_AUTOMATION_USERS var.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2022_2_patch_1">8.12. SDP 2022.2 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2022.2/29399 (2023/02/06)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29250 up to 29399 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-624">SDP-624</a> (F): Add mkrep.sh support for '<N>' per standard: <HelixServerTag>_<ReplicaTypeTag>[<N>]_<SiteTag>'</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-777">SDP-777</a> (F): mkrep.sh: Support daisy chaining of forwarding replicas.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-857">SDP-857</a> (F): mkrep.sh: Add preflight check to avoid overwriting existing ServerID.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-858">SDP-858</a> (F): mkrep.sh: Add '-os' option to overwrite an existing ServerID.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-860">SDP-860</a> (B): Directories that differ only by case aren’t being caught by script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-861">SDP-861</a> (B): mkdirs.sh now creates crontab for proxy-only installs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-862">SDP-862</a> (F): Adjust p4pcm.pl so it does not require a local perl build.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-864">SDP-864</a> (F): Added '-delay <delay>' option to load_checkpoint.sh to delay call to p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-865">SDP-865</a> (F): Enhance robustness of systemctl management of p4d/p4p/p4broker.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-871">SDP-871</a> (F): Add perl as required tool for sdp_upgrade.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-873">SDP-873</a> (B): Add rotation of p4triggers.log to rotate_last_run_logs in backup_functions.sh</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-874">SDP-874</a> (F): mkdirs.sh now creates crontab for broker-only installs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-876">SDP-876</a> (F): Enhanced docs re: MAILTO/MAILFROM settings in Instance Vars file.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2022_2_ga">8.13. SDP 2022.2 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2022.2/29250 (2022/12/08)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29203 up to 29250 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-776">SDP-776</a> (F): Add support for parallel checkpoint ops with -jcp/-jdp/-jrp.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-854">SDP-854</a> (F): Set default Helix Core version in get_helix_binaries.sh to r22.2.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-855">SDP-855</a> (B): Changes to PROXY_V_FLAGS are not persisted during upgrades.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-856">SDP-856</a> (B): sdp_upgrade.sh did not properly extract values from p4_N.vars containing '='.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2022_1_patch_3">8.14. SDP 2022.1 Patch 3</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2022.1/29203 (2022/11/22)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 29141 up to 29203 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-848">SDP-848</a> (B): New CheckCaseTrigger.py from SDP 2022.1 Patch 2 doesn’t catch case-only folder renames.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-850">SDP-850</a> (B): Eliminate harmless errors when mkdirs.sh used for proxy-only/broker-only hosts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-851">SDP-851</a> (B): load_checkpoint.sh: Avoid moving P4JOURNAL aside if replayed.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2022_1_patch_2">8.15. SDP 2022.1 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2022.1/29141 (2022/10/29)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 28987 up to 29141 (B=Bug, D=Doc, F=Feature):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-823">SDP-823</a> (B): P4MASTERPORT value was incorrect for proxy-only or broker-only machines.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-824">SDP-824</a> (B): CheckCaseTrigger.py fails if has Unicode mode enabled.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-825">SDP-825</a> (D): Clarify doc to indicate RHEL 8 is fine; only CentOS 8 is discouraged.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-827">SDP-827</a> (F): Add monitor_metrics.log to list of logs rotated.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-829">SDP-829</a> (F): Split p4verify.sh log into Summary and Full, with Summary suitable for SNS.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-834">SDP-834</a> (F): Add log rotation for proxy-only and broker-only hosts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-835">SDP-835</a> (F): Remove requirement for systemd *.service files to have open perms.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-836">SDP-836</a> (F): Init scripts automatically trust local and target port for p4p/p4broker.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-838">SDP-838</a> (B): Fixed issue with CheckCaseTrigger.py for Unicode mode p4d.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-842">SDP-842</a> (B): Fix issue on older OS versions where grep -A 999999999999 fails.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-843">SDP-843</a> (B): A series of sdp_ugprade.sh calls will overwrite/truncate custom site/config files.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-844">SDP-844</a> (F): Dramatic performance improvement for CheckCaseTrigger.py.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-846">SDP-846</a> (F): Add sample script to make SSO default with HAS.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2022_1_patch_1">8.16. SDP 2022.1 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2022.1/28987 (2022/08/25)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 28855 up to 28987 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-806">SDP-806</a> (B): sdp_upgrade.sh needs Enter key to get mv commands to go if perms are bad.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-808">SDP-808</a> (F): Account for NFS sharing of HxDepots on sdp_ugprade.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-812">SDP-812</a> (B): p4verify.sh P4D_VERSION unbound variable w/'-o MISSING' and env not sourced.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-816">SDP-816</a> (F): Add timestamp to intit script calls in p4d_base.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-817">SDP-817</a> (F): Doc updates for SDP Training and offline checkpoint PowerPoint docs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-820">SDP-820</a> (F): p4dstate.sh: Collect lslocks output even if older version of lslocks with no JSON option.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2022_1_ga">8.17. SDP 2022.1 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2022.1/28855 (2022/05/27)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 28649 up to 28855 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-331">SDP-331</a> (B): DOC: lack of clarity on folder ownership.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-724">SDP-724</a> (F): Add SDP Troubleshooting and FAQ to SDP core docs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-725">SDP-725</a> (B): Typo in the instructions</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-770">SDP-770</a> (B): Server start is more robust if /var/log is full.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-771">SDP-771</a> (F): Add ping or similar check for P4MASTERHOST.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-773">SDP-773</a> (F): p4verify.sh: Add '-dlf <depot_list_file>' to specify prioritized list of depots.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-774">SDP-774</a> (F): p4verify.sh: Add low-RAM utilization option to p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-780">SDP-780</a> (F): Update Perforce Support address to <a href="mailto:support-helix-core@perforce.com">support-helix-core@perforce.com</a>.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-782">SDP-782</a> (F): Improve Swarm triggers test script to check for self-signed certs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-783">SDP-783</a> (B): load_checkpoint.sh: Fixed error in event of slow broker restart.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-794">SDP-794</a> (F): Enhance error message in verify_sdp.sh if p4d_N script is malformed.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-796">SDP-796</a> (F): Updated default Helix Core (p4d/p4broker/p4p/p4) version to r22.1.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-798">SDP-798</a> (B): Changed URL for get_helix_binaries.sh back to ftp.perforce.com.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2021_2_patch_1">8.18. SDP 2021.2 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2021.2/28649 (2022/03/03)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 28410 up to 28649 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-562">SDP-562</a> (F): Support SELinux in enforcing mode on RHEL 8/CentOS 8/Rocky Linux 8.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-635">SDP-635</a> (F): Get verify_sdp.sh to find bogus script/symlink targets.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-636">SDP-636</a> (F): Get verify_sdp.sh to find bogus bins in /p4/common/bin.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-712">SDP-712</a> (B): load_checkpoint.sh should not require a license unless p4d needs it.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-729">SDP-729</a> (F): Add support for custom pre- and post- processing to mkrep.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-733">SDP-733</a> (F): Enhances mkrep Phase 2 docs to mention loading checkpoint and journal.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-740">SDP-740</a> (B): sdp_upgrade.sh ignores a narrow subset of preflight checks.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-742">SDP-742</a> (B): load_checkpoint.sh fails for untrusted SSL ports.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-744">SDP-744</a> (F): Enhance load_checkpoint.sh to be able to call p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-747">SDP-747</a> (F): Added info about SDP Health Check script to core SDP docs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-748">SDP-748</a> (B): mkrep.sh forgets ssl: prefix on ExternalAddress for new replicas.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-749">SDP-749</a> (B): sync_replica.sh needs to work for HA of an edge server.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-759">SDP-759</a> (F): Support IPv6 SSL Prefixes.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-761">SDP-761</a> (F): Tech Preview: Give daily_checkpoint.sh ability to skip offline_db regeneration.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-763">SDP-763</a> (F): Enhanced p4verify.ps1 with new '-fast' and '-nt' options.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2021_2_ga">8.19. SDP 2021.2 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2021.2/28410 (2021/11/24)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 28261 up to 28410 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-710">SDP-710</a> (F): Simplify creation of proxy-only and broker-only instances with mkdirs.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-713">SDP-713</a> (B): Customizations to p4_1.vars are not preserved during sdp_upgrade.sh</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-716">SDP-716</a> (F): Add error message when p4d_base fails to start due to systemd</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-717">SDP-717</a> (F): Updated default Helix Core version to 2021.2 in get_helix_binaries.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2021_1_patch_2_doc_only_no_functional_changes">8.20. SDP 2021.1 Patch 2 (Doc Only, No Functional Changes)</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2021.1/28261 (2021/11/13)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 28253 up to 28261 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-709">SDP-709</a> (B): Doc typo fix in SDP Guide. Non-funcional change.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2021_1_patch_1">8.21. SDP 2021.1 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2021.1/28253 (2021/11/13)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 28238 up to 28253 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-706">SDP-706</a> (B): Fixed detection of P4MASTERHOST and other settings.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-707">SDP-707</a> (F): Enhanced docs on Upgrading the SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-708">SDP-708</a> (F): Downgraded p4 counter SDP_VERSION checks to warning.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2021_1_ga">8.22. SDP 2021.1 GA</h3> <div class="sidebarblock"> <div class="content"> <div class="title">SDP 2021.1 Release Overview</div> <div class="paragraph"> <p>The banner feature of the SDP 2021.1 release is the <code>sdp_upgrade.sh</code> script that automates SDP upgrades on Linux so long as the starting version is SDP 2020.1.</p> </div> <div class="paragraph"> <p>This is part of a larger effort prioritize ease of upgrades for the SDP and Helix Core.</p> </div> <div class="paragraph"> <p>For more information, see the section in the SDP Guide on <a href="SDP_Guide.Unix.html#_upgrading_the_sdp">Upgrading the SDP</a>.</p> </div> </div> </div> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2021.1/28238 (2021/11/12)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27955 up to 28238 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-191">SDP-191</a> (B): Fixed default threshholds values in proxy cache cleaner.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-540">SDP-540</a> (F): Add sdp_upgrade.sh script to the SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-549">SDP-549</a> (F): Enhanced load_checkpoint.sh to accept journals after checkpoint.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-615">SDP-615</a> (B): load_checkpoint.sh can show 'EXITCODE: 0' on failure.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-645">SDP-645</a> (F): Enhance p4verify.sh to expose new '--only' option in p4d r21.1+.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-667">SDP-667</a> (F): Make preview mode default behavior for upgrade.sh; add '-y' to confirm.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-668">SDP-668</a> (F): Do you have a way to automate validation of http/https links in files when packaging up the SDP so broken links can be checked with each release?</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-674">SDP-674</a> (B): Unclear verify_sdp.sh message related to P4JOURNAL configurable def’n.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-676">SDP-676</a> (F): Added optional feature to remove excess $LOGS/journal.NNN files on standbys.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-677">SDP-677</a> (F): For verify_sdp.sh, add '-warn' like '-skip' to warn for named tests.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-678">SDP-678</a> (B): load_checkpoint.sh logins for replicas fail if p4d starts slow with systemd.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-683">SDP-683</a> (B): Document setup for desktop shortcut for p4env.bat</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-684">SDP-684</a> (B): The configure_new_server.bat set auth.id wrongly to p4_</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-686">SDP-686</a> (B): Remove replica_status.log as part of standard cleanup.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-688">SDP-688</a> (F): Document creation of P4Admin Desktop Shortcut for Windows SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-691">SDP-691</a> (F): In mkdirs.sh, make SDP perms configurable 600/640/644 or 700/750/755.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-698">SDP-698</a> (B): p4verify.sh no longer relies on $USER being defined.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-699">SDP-699</a> (F): Added upgrade.sh to enable custom pre- and post-upgrade processing.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-702">SDP-702</a> (B): The recover_edge.sh script should write offline_db_usable.txt.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_checking_the_sdp_version">8.23. Checking the SDP Version</h3> <div class="paragraph"> <p>Once installed, the SDP <code>Version</code> file exists as <code>/p4/sdp/Version</code>. This is a simple text file that contains the SDP version string. The version can be checked using a command like <code>cat</code>, as in this sample command:</p> </div> <div class="literalblock"> <div class="content"> <pre>$ cat /p4/sdp/Version Rev. SDP/MultiArch/2020.1/27955 (2021/08/13)</pre> </div> </div> <div class="paragraph"> <p>That string can be found in Change History below.</p> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_12">8.24. SDP 2020.1 Patch 12</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27955 (2021/08/13)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27919 up to 27955 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-675">SDP-675</a> (B): "Preflight journal health check" issue caused by a grep command not coping well with non ascii characters.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_11">8.25. SDP 2020.1 Patch 11</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27919 (2021/07/19)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27899 up to 27919 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-669">SDP-669</a> (F): Implement p4env.bat and p4login.bat properly with PowerShell.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-670">SDP-670</a> (B): verify_sdp.sh can wrongly give 'Current user …​ does not own' error.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_10">8.26. SDP 2020.1 Patch 10</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27899 (2021/07/13)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27820 up to 27899 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-659">SDP-659</a> (F): SDP daily checkpoint call to verify_sdp.sh now skips license checks.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-662">SDP-662</a> (F): Enhanced SDP Guide for Windows re: Scheduled Tasks.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-664">SDP-664</a> (F): Clarify that SDP r20.1 supports Helix Core binaries up to r21.1.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_9">8.27. SDP 2020.1 Patch 9</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27820 (2021/06/19)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27763 up to 27820 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-648">SDP-648</a> (F): Updated p4d version-specific list of federated db.* files for edge servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-650">SDP-650</a> (B): clear_depot_Map_fields.sh doc is unclear for unload depots.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-651">SDP-651</a> (F): clear_depot_Map_fields.sh support for graph depots added.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-656">SDP-656</a> (B): replica_status.sh now captures all error output if replica is offline.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-657">SDP-657</a> (F): Enhanced mkdirs.sh checks for edge server setup.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_8_doc_only_no_functional_changes">8.28. SDP 2020.1 Patch 8 (Doc Only, No Functional Changes)</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27763 (2021/05/07)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27759 up to 27763 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-644">SDP-644</a> (B): Fix typo in SDP Legacy Upgrade Guide.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_7">8.29. SDP 2020.1 Patch 7</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27759 (2021/05/07)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27536 up to 27759 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-517">SDP-517</a> (B): Please use svcinst to start and stop the Perforce Service.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-616">SDP-616</a> (F): Clarify usage for mkrep.sh '-f <FromServerID>' option.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-617">SDP-617</a> (B): SDP on Windows should manage service only with svcinst.exe.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-618">SDP-618</a> (F): Port update_limits.py to Windows.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-619">SDP-619</a> (F): Clear up confusion between ServerID and SDP instance name.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-625">SDP-625</a> (B): upgrade.sh needs to bounce p4d for multi-instance patch-only upgrades.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-627">SDP-627</a> (F): Add verify_sdp.sh check for p4*.services files w/o world read access.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-630">SDP-630</a> (B): Bogus root ownership of ssl/config.txt after mkdirs.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-631">SDP-631</a> (B): verify_sdp.sh Invalid error re: crontab on proxy servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-638">SDP-638</a> (B): Address gaps in Legacy SDP Upgrade Guide for upgrades from 2014-era SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-639">SDP-639</a> (F): Make SDP password file check a skippable test in verify_sdp.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-640">SDP-640</a> (B): verify_sdp.sh check for password file existence does not run.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_6_doc_only_no_functional_changes">8.30. SDP 2020.1 Patch 6 (Doc Only, No Functional Changes)</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27536 (2021/02/28)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27524 up to 27536 (F=Feature, B=Bug):</p> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_5">8.31. SDP 2020.1 Patch 5</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27524 (2021/02/26)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27457 up to 27524 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-604">SDP-604</a> (F): Add more detail to Legacy SDP upgrade doc.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-605">SDP-605</a> (B): Default 'p4' binary is in /p4/sdp/helix_binaries.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-607">SDP-607</a> (F): Do not set submit.allowbgtransfer for new servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-609">SDP-609</a> (F): Enhanced SDP Guide (Unix) related to init scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-610">SDP-610</a> (F): Add doc coverage for using only limited sudo.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-611">SDP-611</a> (F): Add doc coverage for using multiple broker configs.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_4">8.32. SDP 2020.1 Patch 4</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27457 (2021/02/17)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27414 up to 27457 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-600">SDP-600</a> (F): Normalize usage of verify_sdp.sh as called from other scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-601">SDP-601</a> (B): Local setting of VERIFY_SDP_SKIP_TEST_LIST ignored by upgrade.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_3b">8.33. SDP 2020.1 Patch 3B</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27414 (2021/02/07)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27403 up to 27414 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-599">SDP-599</a> (B): Refinement needed to logic for test skipping p4root/offline_db.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_3a">8.34. SDP 2020.1 Patch 3A</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27403 (2021/02/06)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27398 up to 27403 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-598">SDP-598</a> (F): For verify_sdp.sh: Add check for P4TRUST files if SSL enabled.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_3">8.35. SDP 2020.1 Patch 3</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27398 (2021/02/06)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27357 up to 27398 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-592">SDP-592</a> (B): verify_sdp.sh reports same excess binary in path multiple times.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-593">SDP-593</a> (B): verify_sdp.sh should ignore dot '.' in PATH.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-594">SDP-594</a> (F): mkdirs.sh should not deploy p4p or p4dtg by default.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-595">SDP-595</a> (B): mkdirs.sh should not deploy p4d to p4p/p4broker only host.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-596">SDP-596</a> (B): Install errors when running mkdirs.sh on replica servers</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_2">8.36. SDP 2020.1 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27357 (2021/02/01)</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27351 up to 27357 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-591">SDP-591</a> (F): Release notes update only: Added GA/patch release headings.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_patch_1">8.37. SDP 2020.1 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27351 (2021/01/31) - Patch 1</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 27325 up to 27351 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-590">SDP-590</a> (F): Added sample script to implement rename of users for Swarm.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-589">SDP-589</a> (B): Correct version checks for p4d major version.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-570">SDP-570</a> (F): Add upgrade.sh '-M' manual option relinking binaries w/o -xu.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-588">SDP-588</a> (F): Enhance verify_sdp.sh to allow skipping offline_db checks.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2020_1_ga">8.38. SDP 2020.1 GA</h3> <div class="sidebarblock"> <div class="content"> <div class="title">SDP 2020.1 Release Overview</div> <div class="paragraph"> <p>In a nutshell, here is what the SDP r2020.1 release is all about:</p> </div> <div class="ulist"> <ul> <li> <p><strong>Improved Documentation</strong>. The SDP documentation has been reformatted to AsciiDoc. Documentation coverage has been expanded, new content added, and documentation for various scripts is now included in the main documentation.</p> </li> <li> <p>Publishing of <a href="SDP_Guide.Unix.html#_the_journalprefix_standard">The journalPrefix Standard</a>.</p> </li> <li> <p>Updating of the <a href="SDP_Guide.Unix.html#_server_spec_naming_standard">Server Spec Naming Standard</a>.</p> </li> <li> <p>Bug fixes and improvements to <code>load_checkpoint.sh</code>.</p> </li> <li> <p>Bug fixes and improvements to <code>p4verify.sh</code>. The <code>-recent</code> flag is fixed and verification of shelves has improved.</p> </li> <li> <p>Bug fixes and improvements to <code>mkrep.sh</code>, which adheres to documented standards.</p> </li> <li> <p><strong>Improved Helix Core Upgrades</strong>. The <code>upgrade.sh</code> script that upgrades <code>p4</code>, <code>p4d</code>, <code>p4broker</code>, and <code>p4p</code> has been greatly improved, and a new <code>get_helix_binaries.sh</code> script added. Documentation now covers how to do Global Topology "Outer to Inner" upgrades.</p> </li> <li> <p><strong>Improved Self-Verification</strong>. The <code>verify_sdp.sh</code> script has been improved to do many more checks. This script is also relied on by other SDP scripts to ensure things are in a good start before they start their processing. The <code>refresh_P4ROOT_from_offline_db.sh</code> and <code>upgrade.sh</code> scripts use <code>verify_sdp.sh</code>.</p> </li> <li> <p>The systemd interactions have been improved in a few key ways. Notably, on systems in which systemd is configured, a safety check now ensure that systemd is used, so that systemd’s concept of service status is reliable. The format of the systemd unit files changes with this release.</p> </li> </ul> </div> <div class="paragraph"> <p>More details is in the <a href="#_change_history">Chapter 8, <em>Change History</em></a> below.</p> </div> </div> </div> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2020.1/27325 (2021/01/29) - General Availability</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26494 up to 27325 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-245">SDP-245</a> (B): Prevent generation of db.* files in empty P4ROOT when sourcing p4_vars.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-246">SDP-246</a> (B): Sourcing p4_vars hangs if live_checkpoint.sh is running.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-373">SDP-373</a> (B): Typo on page 22 of guide (Section 4.2): modifed vs modified</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-397">SDP-397</a> (F): Support SDP hosts without p4d, p4p/p4broker or p4dtg only.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-428">SDP-428</a> (F): Add safety check to ensure systemd is used if required.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-432">SDP-432</a> (F): Enhance distinction of what is Supported and Unsupported.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-439">SDP-439</a> (B): DOC: SDP Guide for setting up a replica is missing key items.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-460">SDP-460</a> (B): Script 'broker_rotate.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-461">SDP-461</a> (B): Script 'edge_dump.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-462">SDP-462</a> (B): Script 'edge_shelf_replicate.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-463">SDP-463</a> (B): Script 'edge_vars' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-464">SDP-464</a> (B): Script 'gen_default_broker_cfg.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-465">SDP-465</a> (B): Script 'htd_move_logs.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-466">SDP-466</a> (B): Script 'journal_watch.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-467">SDP-467</a> (B): Script 'kill_idle.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-468">SDP-468</a> (B): Script 'load_checkpoint.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-469">SDP-469</a> (B): Script 'mkrep.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-470">SDP-470</a> (B): Script 'p4broker_base' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-471">SDP-471</a> (B): Script 'p4dstate.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-472">SDP-472</a> (B): Script 'p4ftpd_base' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-473">SDP-473</a> (B): Script 'p4login-super.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-474">SDP-474</a> (B): Script 'p4p_base' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-475">SDP-475</a> (B): Script 'p4pcm.pl' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-476">SDP-476</a> (B): Script 'p4review2.py' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-477">SDP-477</a> (B): Script 'p4sanity_check.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-478">SDP-478</a> (B): Script 'p4web_base' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-481">SDP-481</a> (B): Script 'ps_functions.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-482">SDP-482</a> (B): Script 'purge_revisions.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-483">SDP-483</a> (B): Script 'recover_edge.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-484">SDP-484</a> (B): Script 'replica_cleanup.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-485">SDP-485</a> (B): Script 'replica_status.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-486">SDP-486</a> (B): Script 'request_replica_checkpoint.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-487">SDP-487</a> (B): Script 'rotate_journal.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-488">SDP-488</a> (B): Script 'template.pl' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-489">SDP-489</a> (B): Script 'template.py' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-490">SDP-490</a> (B): Script 'template.py.cfg' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-491">SDP-491</a> (B): Script 'template.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-492">SDP-492</a> (B): Script 'update_limits.py' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-493">SDP-493</a> (B): Script 'verify_sdp.sh' is not mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-495">SDP-495</a> (B): SDP Guide mentions now-deleted/obsolete script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-496">SDP-496</a> (B): Script 'backup_functions.sh' is mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-497">SDP-497</a> (B): Script 'p4d_base' is mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-498">SDP-498</a> (B): Script 'p4verify.sh' is mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-499">SDP-499</a> (B): Script 'run_if_edge.sh' is mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-500">SDP-500</a> (B): Script 'run_if_master.sh' is mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-501">SDP-501</a> (B): Script 'run_if_replica.sh' is mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-502">SDP-502</a> (B): Script 'sync_replica.sh' is mentioned in the SDP Guide (Unix).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-503">SDP-503</a> (B): SDP Guide mentions some scripts by most of the filename, not all of it.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-504">SDP-504</a> (B): SDP Guide mentions "weekly_checkpoint" script under "daily_checkpoint":</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-505">SDP-505</a> (F): Added P4MASTERPORT checks to verify_sdp.sh</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-507">SDP-507</a> (B): p4d_1.service includes wrong doc link</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-508">SDP-508</a> (B): p4broker_1.service includes wrong doc link</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-509">SDP-509</a> (B): "sdp-administrator-guide.docx" needs to be removed or updated.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-512">SDP-512</a> (B): upgrade.sh needs clearer documented explanation</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-523">SDP-523</a> (B): Missing 'failover' document</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-535">SDP-535</a> (B): False-positive on journal corruption check w/multi-line journal entries.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-538">SDP-538</a> (F): Document systemd interactions with SDP init scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-541">SDP-541</a> (F): Make 'p4d' rather than 'p4d_N' safe to run.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-543">SDP-543</a> (B): The configure_new_server.sh failed with unbound LOGFILE variable error.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-545">SDP-545</a> (B): DOC: PDF contains "Reference source not found" errors.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-546">SDP-546</a> (B): Documentation out of date.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-548">SDP-548</a> (B): Standby won’t start pull if journal.NNN exists.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-554">SDP-554</a> (B): Incorrect Server ID when deploying an edge server.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-553">SDP-553</a> (B): Remove 'Operating System' from configurable rejectList.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-558">SDP-558</a> (B): Fix bug with '-recent' flag in p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-559">SDP-559</a> (B): Fix load_checkpoint.sh init issue if '-s <ServerID>' is used.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-564">SDP-564</a> (F): Normalized SDP Versioning will start in the SDP r20.1 release.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-565">SDP-565</a> (F): Enhance verify_sdp.sh to allow optional skip of some tests.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-566">SDP-566</a> (F): Add Support-recommended sysctl settings to SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-567">SDP-567</a> (F): Add setting for server.extensions.dir.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-569">SDP-569</a> (F): Rename upcoming /p4/sdp/exes to /p4/sdp/helix_binaries</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-572">SDP-572</a> (B): Fixed issue where No Checkpoints reported if 'find' doesn’t support '-printf'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-573">SDP-573</a> (B): mkdirs.sh is not respecting MASTER_ID from config file</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-574">SDP-574</a> (B): daily_checkpoint.sh hangs if journalPrefix is wrong.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-575">SDP-575</a> (B): The stop_p4d() function reports 'missing server.pid' error with systemd.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-576">SDP-576</a> (F): Added documentation for handling multiple broker configs with systemd.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-578">SDP-578</a> (B): The offline_db_usable.txt file is not updated when rotate_journal.sh is used.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-579">SDP-579</a> (B): Edge recover script fails to run if p4_vars not sourced first.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-581">SDP-581</a> (F): Added optional check that P4MASTER_ID starts with 'master' to verify_sdp.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-583">SDP-583</a> (E): Enhance verify_sdp.sh and upgrade.sh to handle proxy-only and broker-only machines.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_patch_7">8.39. SDP 2019.3 Patch 7</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26494 (2020/04/23).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26478 up to 26494 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-529">SDP-529</a> (F): Add ability to limit specific commands to one-per-user, e.g. populate.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-531">SDP-531</a> (B): The recover_edge.sh script needed updating to use new start/stop functions.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_patch_6">8.40. SDP 2019.3 Patch 6</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26478 (2020/04/12).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26472 up to 26478 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-527">SDP-527</a> (B): Patch to rotate_journal.sh and add test coverage for it.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-528">SDP-528</a> (F): Enhance dynamic check to work with replicas that do not set journalPrefix.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_patch_5">8.41. SDP 2019.3 Patch 5</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26472 (2020/04/10).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26468 up to 26472 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-526">SDP-526</a> (F): Use dynamic journalPrefix detection for non-master servers.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_patch_4">8.42. SDP 2019.3 Patch 4</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26468 (2020/04/10).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26407 up to 26468 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-446">SDP-446</a> (B): wrong variables used in recreate_offline_db_files</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-519">SDP-519</a> (B): Fixed missing variable initialization in load_checkpoint.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-520">SDP-520</a> (F): Add login and trust logic to load_checkpoint.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-521">SDP-521</a> (F): Have load_checkpoint.sh handle P4SSLDIR and cert creation automatically.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-522">SDP-522</a> (F): Have load_checkpoint.sh check for a license file.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-524">SDP-524</a> (B): Fix refresh_P4ROOT_from_offline_db.sh to work on a non-edge replica.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-525">SDP-525</a> (B): Remove parallel checkpoint scripts temporarily.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_patch_3">8.43. SDP 2019.3 Patch 3</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26407 (2020/03/28).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26400 up to 26407 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-427">SDP-427</a> (F): Use systemd consistently if availabile for p4d start/stop.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_patch_2">8.44. SDP 2019.3 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26400 (2020/03/28).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26239 up to 26400 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-427">SDP-427</a> (F): Use systemd consistently if availabile for p4d start/stop.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-431">SDP-431</a> (F): Make p4d startup resistant to timing issues for reboots & fast</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-436">SDP-436</a> (F): Provide snapshot hook for daily_checkpoint.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-444">SDP-444</a> (F): Add script to safely refresh P4ROOT db.* from offline_db.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-451">SDP-451</a> (F): Added '-f <P4TARGET>' flag to mkrep.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-452">SDP-452</a> (F): Enhance mkrep.sh to instruct using edge_dump.sh for edge servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-453">SDP-453</a> (F): For filtered replicas, have mkrep.sh instruct using '-P ServerID'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-454">SDP-454</a> (B): verify_sdp.sh should handle being run as root</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-455">SDP-455</a> (F): Add license expiration check to verify_sdp.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-510">SDP-510</a> (B): Fix issue with 'clean start' test suite run due to Python symlink issues.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_patch_1">8.45. SDP 2019.3 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26239 (2020/01/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 26159 up to 26239 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-423">SDP-423</a> (B): slight typo in comment /p4/INSTANCe/checkpoints</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-430">SDP-430</a> (B): Fixed typo causing os_tweaks.sh not to recognize Ubuntu 18.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-437">SDP-437</a> (F): Enhance mkdirs.sh for standby replicas to match other replica types.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-441">SDP-441</a> (B): Upgrade.ps1 fails with error for Windows SDP</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-443">SDP-443</a> (B): Fix in maint scripts to pickup SDP_INSTANCE if no arg passed.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_3_ga">8.46. SDP 2019.3 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.3/26159 (2019/11/06).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25949 up to 26159 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-448">SDP-448</a> (F): Enable 'p4 submit -b' by setting submit.allowbgtransfer=1 for P4D 2019.1.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-352">SDP-352</a> (F): Eliminate excessive journal rotations on p4d startup.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-412">SDP-412</a> (B): Backup failing as logs cannot be rotated as the server is too busy.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-424">SDP-424</a> (B): sync_replica.sh fails on standby replica w/rpl.journalcopy.location=1.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-425">SDP-425</a> (B): mkrep.sh fails for replica of replica due to ReplicatingFrom field hard coded to master.1</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-426">SDP-426</a> (F): Add -f flag to p4d -jr on SDP for Windows.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_2_patch_3">8.47. SDP 2019.2 Patch 3</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.2/25949 (2019/08/12).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25938 up to 25949 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-415">SDP-415</a> (B): Fixed typo in scripts for handling edge servers.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_2_patch_2">8.48. SDP 2019.2 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.2/25938 (2019/08/05).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25923 up to 25938 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-414">SDP-414</a> (B): Fixed issue with safety check in edge processing scripts.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_2_patch_1">8.49. SDP 2019.2 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.2/25923 (2019/08/05).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25594 up to 25923 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-398">SDP-398</a> (F): Disallow replicas from being initially mandatory per P4D 2019.1 requirement.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-400">SDP-400</a> (B): Fixed p4login bug where P4PORT value can have a value of Unset.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-401">SDP-401</a> (F): Enanced replica_status.sh to check archive replication.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-403">SDP-403</a> (B): Fixed root-owned symlinks in /p4/N after running mkdirs.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-404">SDP-404</a> (F): Update edge scripts to support 2019.1+ changes to edge servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-405">SDP-405</a> (F): Enhanced load_checkpoint.sh to handle case-insensitive checkpoints.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-410">SDP-410</a> (B): [R]CMDEXITCODE not set when [r]run() called with 'grep string' parameter.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-413">SDP-413</a> (F): Add script to request checkpoint on edge/replica.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_2_ga">8.50. SDP 2019.2 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.2/25594 (2019/05/02).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25480 up to 25594 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-356">SDP-356</a> (F): Reduce SDP Core to contain only software supported by Perforce Support.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-369">SDP-369</a> (F): Added flags to p4verify.sh to verify by type like shelved.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-374">SDP-374</a> (B): Fixed off-by-three-orders-of-magnitude error in proxy cleanup script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-378">SDP-378</a> (F): Removed journalPrefix as command line paramter during journal rotation, deferring to db.config values.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-380">SDP-380</a> (F): Removed journalPrefix as command line paramter during journal rotation, deferring to db.config values.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-383">SDP-383</a> (F): Added '-a' flag meant to be equivalent of most common set of flags.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-384">SDP-384</a> (B): Fixed failure to cleanup old logs in sdp_sync.sh on Ubuntu Linux.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-392">SDP-392</a> (B): upgrade.sh must handle new 19.1 features</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-393">SDP-393</a> (B): Fixed perms on purge_revisions.sh and journal_watch.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-394">SDP-394</a> (F): Added support for wildcards/globbing to purge_revisions.sh scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-395">SDP-395</a> (F): Added support for 2019.1 upgrades and testing of same.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_1_patch_6">8.51. SDP 2019.1 Patch 6</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.1/25480 (2019/04/11).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25386 up to 25480 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-382">SDP-382</a> (B): Fixed missing 'exit 1' in p4d_base after 'p4d -xvU' check failure.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-387">SDP-387</a> (F): Test harness should run verify_sdp.sh and look for errors.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-390">SDP-390</a> (B): Removed crontab refs to deleted scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-391">SDP-391</a> (B): In mkdir.sh, fixed root ownership of generated crontab file.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_1_patch_5">8.52. SDP 2019.1 Patch 5</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.1/25386 (2019/03/21).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25374 up to 25386 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-379">SDP-379</a> (B): Fixed mkdirs.sh issue with SSL-enabled installs due to chown issue.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_1_patch_4">8.53. SDP 2019.1 Patch 4</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.1/25374 (2019/03/21).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25320 up to 25374 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-302">SDP-302</a> (F): Parallelized checkpoint processing to reduce duration.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-375">SDP-375</a> (B): Fix ownership and missing symlink issues in mkdirs.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_1_patch_3">8.54. SDP 2019.1 Patch 3</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.1/25320 (2019/03/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25309 up to 25320 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-372">SDP-372</a> (B): Fixed breaking test - logic around $CN was misunderstood.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_1_patch_2">8.55. SDP 2019.1 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.1/25309 (2019/03/07).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25276 up to 25309 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-370">SDP-370</a> (B): Fix issue with mkdirs.sh -test mode.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-371">SDP-371</a> (B): Fixed install_sdp_perl to work with updated P4Perl.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_1_patch_1">8.56. SDP 2019.1 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.1/25276 (2019/03/06).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 25238 up to 25276 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-368">SDP-368</a> (B): Fix syntax errors for SDP_ADMIN_PASSWORD_FILE in backup_functions.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2019_1_ga">8.57. SDP 2019.1 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2019.1/25238 (2019/03/02).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 23583 up to 25238 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-198">SDP-198</a> (B): DOC: SDP Guide needs more detail on SDP-controlled replica setup.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-247">SDP-247</a> (B): Need a validation script to check current status, especially after an upgrade from older version of SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-255">SDP-255</a> (B): Update SDP documentation to deal with SSL enabled servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-256">SDP-256</a> (B): Update documentation to include mkdirs.cfg instead of updating mkdirs.sh</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-269">SDP-269</a> (F): Optimize journalPrefix values for master, edge, standby, replica.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-296">SDP-296</a> (B): Fixed bug where updates to os_tweaks.sh dropped support for RHEL 6.5.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-297">SDP-297</a> (B): Fixed handling of unlaod depots in p4verify.sh</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-298">SDP-298</a> (B): Avoid checking for shelved files in spec depot.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-299">SDP-299</a> (F): Enhanced HMS failover for standby/journalcopy replicas to use 'p4 admin end-journal'</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-300">SDP-300</a> (F): Set rpl.journalcopy.location=1 for p4d 2018.1+ servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-301">SDP-301</a> (B): Crontab spamming emails if configurable track=1</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-304">SDP-304</a> (B): Fixed issues with hms status for SSL-enabled servers, etc.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-305">SDP-305</a> (F): Enhancemnts in libcore.sh bail(), errmsg(), initlog(), and stoplog() functions.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-306">SDP-306</a> (B): Moved cset of P4JOURNAL so it’s done only on masteror edge server.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-307">SDP-307</a> (F): Changed hms remote spec for the Public Depot to be the default 'origin'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-308">SDP-308</a> (F): Set rpl.journalcopy.location=1 for 2018.1+ standby replicas.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-311">SDP-311</a> (B): Avoid unnecessary removal of rdb.lbr in db swap.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-313">SDP-313</a> (F): Batch of validate_sdp.sh enhancements.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-314">SDP-314</a> (B): Fixed scary but otherwise harmless error in Cmd.pm</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-315">SDP-315</a> (F): Reformat protections table comment format during upgrades.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-316">SDP-316</a> (F): Added script to rotate live journal due low disk space</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-317">SDP-317</a> (B): Fixed issue preventing failover from an edge servder.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-318">SDP-318</a> (B): Removed HMS references to /usr/local/bin/bash.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-319">SDP-319</a> (F): Use 'p4 monitor terminate' rather than 'kill' for idle pids.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-325">SDP-325</a> (F): Enhanced rejectList setting for P4EXP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-326">SDP-326</a> (F): Enhanced rejectList setting for P4EXP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-327">SDP-327</a> (B): DOC: must I create /hx*?</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-328">SDP-328</a> (B): DOC: mismatch between setup instructions and setup script</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-329">SDP-329</a> (B): DOC: folder permissions</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-330">SDP-330</a> (B): DOC: to where should we copy the tgz file?</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-331">SDP-331</a> (B): DOC: lack of clarity on folder ownership.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-332">SDP-332</a> (B): DOC: setting executable bit on p4 etc.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-333">SDP-333</a> (B): DOC: reorder the create user/group sequence on Linux.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-334">SDP-334</a> (B): DOC: no comment on mkdirs.N.cfg, referenced in the mkdirs.sh script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-335">SDP-335</a> (B): DOC: no comment on ssl certificate generation.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-337">SDP-337</a> (B): The upgrade.sh script, used to update your p4/p4d executables and corresponding database, starts with the message:</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-338">SDP-338</a> (F): DOC: server upgrades and checkpoint</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-339">SDP-339</a> (B): DOC: non-existent script referenced in docs</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-341">SDP-341</a> (B): Critical recreate_db_checkpoint.sh bug with shared /hxdepots shared.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-342">SDP-342</a> (B): Fixed issue with P4Triggers.py impacting CheckCaseTrigger.py, etc.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-345">SDP-345</a> (B): Implemented '-r' flag to clean up old logs in global_replica_status.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-347">SDP-347</a> (F): Enhance CaseCheckTrigger to work even if defaultChangeType is set to restricted.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-348">SDP-348</a> (F): Enhanced CheckCaseTrigger.py to enable bypass.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-350">SDP-350</a> (F): Support SELinux ("Security Enhanced Linux)") in enforcing mode.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-353">SDP-353</a> (F): Avoid doing 'p4d -cset' for P4JOURNAL, but preserve safety feature.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-362">SDP-362</a> (B): p4verify.sh -remote ignores SDP_RECENT_CHANGES_TO_VERIFY.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-366">SDP-366</a> (F): Optimize display of Support messaging.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-367">SDP-367</a> (B): p4verify.sh should also specify the -t (transfer) option for edge servers like it currently does for replicas.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-49">SDP-49</a> (B): SDP Guide: inconsistent user name used in setup instructions. Page 9 of the pdf, step 1 says create user 'p4admin'. The rest of the guide that I’ve read, and the mkdirs.sh script, all refer to user 'perforce'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-73">SDP-73</a> (F): Add Evil Twin detector/prevention trigger.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2018_patch_2">8.58. SDP 2018 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2018.1/23583.p2 (2019/01/23).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 23583.p1 up to 23583.p2 (F=Feature, B=Bug): * <a href="https://swarm.workshop.perforce.com/jobs/SDP-366">SDP-366</a> (F): Optimize display of Support messaging. * <a href="https://swarm.workshop.perforce.com/jobs/SDP-341">SDP-341</a> (B): Critical recreate_db_sync_replica.sh bug with shared /hxdepots shared.</p> </div> </div> <div class="sect2"> <h3 id="_sdp_2018_1_patch_1">8.59. SDP 2018.1 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2018.1/23583.p1 (2018/07/13).</p> </div> <div class="paragraph"> <p>PATCH release fixes * <a href="https://swarm.workshop.perforce.com/jobs/SDP-341">SDP-341</a>. * <a href="https://swarm.workshop.perforce.com/jobs/SDP-341">SDP-341</a> (B): Critical recreate_db_checkpoint.sh bug with shared /hxdepots shared.</p> </div> </div> <div class="sect2"> <h3 id="_sdp_2018_1_patch_0_5">8.60. SDP 2018.1 Patch 0.5</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2018.1/23583 (2018/02/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 23504 up to 23583 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-287">SDP-287</a> (B): Fixed mkdirs.sh bug fixing ownership of wrong dir. 2nd fx for * <a href="https://swarm.workshop.perforce.com/jobs/SDP-287">SDP-287</a>.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2018_1_ga">8.61. SDP 2018.1 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2018.1/23504 (2018/01/19).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 23354 up to 23504 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-285">SDP-285</a> (B): The use of "tee" in p4d_base causes start to hang on some systems with 2016.2 p4d</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-286">SDP-286</a> (B): Fixed: In configure_new_server.*, super user not logged in after restart.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-287">SDP-287</a> (B): Fixed mkdirs.sh bug fixing ownership of wrong dir.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-290">SDP-290</a> (F): Added SDP-standard Ruby to PATH.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-291">SDP-291</a> (F): Added workflow support triggers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-292">SDP-292</a> (F): Enhancements to p4dstate.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_4_patch_1">8.62. SDP 2017.4 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.4/23354 (2017/12/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 23329 up to 23354 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-281">SDP-281</a> (B): Fixed journalPrefix logic in mkdirs.sh</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_4_ga">8.63. SDP 2017.4 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.4/23329 (2017/12/05).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 23041 up to 23329 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-265">SDP-265</a> (B): sync_replica.sh and recreate_db_sync_replica.sh should avoid rsync compression</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-266">SDP-266</a> (B): Fixed logging issue with sync_replica.sh and recreate_db_sync_replica.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-267">SDP-267</a> (B): Fixed issue detecting an edge server; wrong EDGESERVER value.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-268">SDP-268</a> (F): Added basic comments to all functions in backup_functions.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-269">SDP-269</a> (F): Optimize journalPrefix values for master, edge, standby, replica.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-270">SDP-270</a> (F): Added trigger script to create Swarm reviews (and unit test).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-271">SDP-271</a> (F): Refactor to push common arg_parse into P4Triggers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-272">SDP-272</a> (F): Enhance p4login info in error output, added -d debug flag.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-273">SDP-273</a> (F): New RequireJob pre-submit trigger.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-274">SDP-274</a> (F): Added trigger to validate contents YAML files.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-276">SDP-276</a> (B): Make mkrep.sh work when /p4/hms instance does not exist.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-277">SDP-277</a> (F): Added license time remaining check script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-278">SDP-278</a> (F): Enhance upgrade.sh run on machines with only broker/proxy.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-279">SDP-279</a> (F): Added filetype.bypasslock=1 configurable, recommended for Swarm.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-280">SDP-280</a> (F): Updated Support coverage info and enhanced other info in SDP README file.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_3_patch_1">8.64. SDP 2017.3 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.3/23041 (2017/10/24).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 23003 up to 23041 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-143">SDP-143</a> (F): Enhance init scripts to display usage with no args.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-259">SDP-259</a> (B): Fixed logging issue in upgrade.sh - p4broker/p4p start/stop not captured.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-260">SDP-260</a> (F): Simplified stop_p4d() in backup function due to logic now in p4d_base.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-261">SDP-261</a> (B): Fixed minor issue message about rotating journal escaping log capture.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-262">SDP-262</a> (F): Take advantage of '--daemonsafe' arg in P4D 2017.1.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-263">SDP-263</a> (B): Fixed login count in p4login script.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_3_ga">8.65. SDP 2017.3 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.3/23003 (2017/10/19).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 22201 up to 23003 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-223">SDP-223</a> (B): Fix EDGESERVER check in p4d_base regression.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-224">SDP-224</a> (B): Fix os_tweaks.sh to work on RHEL/CentOS 6.9.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-225">SDP-225</a> (B): Updated hms_ts_setup.sh to adapt to mkdirs.cfg changes.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-226">SDP-226</a> (B): Fixed typo in variable name in libcore.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-227">SDP-227</a> (B): install_sdp_perl.sh: Added DVCS environment isolation safety feature.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-228">SDP-228</a> (F): install_sdp_perl.sh: Now uses r17.1 API.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-232">SDP-232</a> (F): Re-establish autologinprompt default behavior.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-233">SDP-233</a> (B): Fix bug in sdp_sync.sh related to args passed to rrun function.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-234">SDP-234</a> (B): Change Unix default server.id to be unique to support remote depots</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-236">SDP-236</a> (B): Avoid issues interacting with incompatible local Perl.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-237">SDP-237</a> (B): Scripts using libcore.sh display a harmless but scary error after all processing completes.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-239">SDP-239</a> (F): Renamed crontab templates files to be template.job.p4s rather than *.template.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-240">SDP-240</a> (B): Fixed cosmetic logging bug affecting several scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-241">SDP-241</a> (B): Update systemd templates to add new wait targets.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-242">SDP-242</a> (B): Corrected filetypes on some scripts to chmod +x.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-248">SDP-248</a> (F): Provide an override for diff between proxy listen and target ports.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-249">SDP-249</a> (F): Extended P4IGNORE for more Mac files.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-250">SDP-250</a> (F): Add value for db.monitor.shared configurable.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-251">SDP-251</a> (F): Tweaked versions for which net.tcpsize=0 is set.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-252">SDP-252</a> (B): SetWsOptionsAndView.py trigger should exit 0 when p4 client used w/ -t <template>.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-253">SDP-253</a> (F): Various Windows SDP enhancements.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-254">SDP-254</a> (F): Added SDP Overview slide preso to SDP.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_2_patch_1">8.66. SDP 2017.2 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.2/22201 (2017/05/18).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 22177 up to 22201 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-222">SDP-222</a> (B): Fixed issue with testing mkdirs.sh on Mac.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_2_ga">8.67. SDP 2017.2 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.2/22177 (2017/05/17).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21808 up to 22177 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-153">SDP-153</a> (B): Maintenance script unload_clients_with_delete.py needs to ignore swarm workspaces to avoid losing data.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-195">SDP-195</a> (F): Added new configurable setting: 'filesys.bufsize=1M'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-196">SDP-196</a> (B): Fixed bug in unload_labels.py, weeks passed in as days.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-197">SDP-197</a> (B): Fixed bug in Windows Powershell p4verify.ps1 script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-200">SDP-200</a> (B): Fixed issue with /tmp getting polluted with temp files.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-201">SDP-201</a> (F): Various scripts favor more scalable run()/rrun() over</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-202">SDP-202</a> (F): HMS scripts normalize to /bin/bash, check BASH_VERSION</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-203">SDP-203</a> (F): Added new JobIncrement trigger to simplify custom job name usage.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-210">SDP-210</a> (F): Enhanced P4DTG init script reliability.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-215">SDP-215</a> (F): Added new configurable setting: 'dm.user.loginattempts=7'.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-216">SDP-216</a> (F): Refactored mkdirs.sh extracting user-config into mkdirs.cfg.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-219">SDP-219</a> (B): Corrected logic on skipping the swarm user in remove_empty_pending_changes.py</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-220">SDP-220</a> (F): Added triggers using alternative file transfer for submit/pull.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-221">SDP-221</a> (F): Enhanced to rotate p4verify.log like other logs.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_1_patch_1">8.68. SDP 2017.1 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.1/21808 (2017/03/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21720 up to 21808 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-191">SDP-191</a> (B): Fixed default threshholds values in proxy cache cleaner.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-192">SDP-192</a> (B): User deletion maint script handles usernames with backslash.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-193">SDP-193</a> (F): Enhance proxy init script to incorporate monitoring, adding default value in p4_vars.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2017_1_ga">8.69. SDP 2017.1 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2017.1/21720 (2017/02/17).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21528 up to 21720 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-179">SDP-179</a> (F): Enhanced install_sdp_perl.sh to build with P4Perl from The Workshop</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-181">SDP-181</a> (B): Fixed issue keeping recreate_db_sync_replca.sh from fixing a replica out-of-sync issue.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-182">SDP-182</a> (F): Enhanced and updated install_sdp_perl.sh</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-183">SDP-183</a> (B): In recreate_db_sync_replica.sh, ensure P4ROOT and OFFLINE_DB are cleaned.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-184">SDP-184</a> (B): Fixed bug resulting in error sending email on Ubuntu.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-185">SDP-185</a> (F): Added PowerShell script p4verify.ps1 to verify on Windows.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-186">SDP-186</a> (F): Simplified Windows setup with batch wrappers to PowerShell scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-187">SDP-187</a> (F): General Unix doc enhancements.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-188">SDP-188</a> (F): Enhanced Perl library modules. SDP0190 (B): Fixed hms failover bug targeting wrong host with multiple possible targets.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_17">8.70. SDP 2016.2 Patch 17</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21528 (2017/01/14).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21489 up to 21528 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-160">SDP-160</a> (F): Enhanced P4Triggers.py to print exceptions encountered.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-175">SDP-175</a> (F): Added more exclusions to /p4/.pignore.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-176">SDP-176</a> (B): Fixed issues with hms_ts_setup.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-177">SDP-177</a> (B): Backed out clever tempdir feature that negatively impacted portability.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_16">8.71. SDP 2016.2 Patch 16</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21489 (2017/01/11).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21480 up to 21489 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-174">SDP-174</a> (B): Added Suffix field to spec depot in new servers.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_15">8.72. SDP 2016.2 Patch 15</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21480 (2017/01/11).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21379 up to 21480 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-167">SDP-167</a> (F): Added server.start.unlicensed configurable.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-168">SDP-168</a> (F): Work around RHEL/CentOS 7 command completion issue.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-169">SDP-169</a> (B): Fixed install_sdp_python.sh issue with building P4Python for SSL-enabled server.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-170">SDP-170</a> (F): Added script to lowercase a directory tree.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-171">SDP-171</a> (F): Added SSL support in hms_ts_setup.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-172">SDP-172</a> (B): Fixed bug in upgrade.sh introduced when truncate journal was changed to use p4 admin journal.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-173">SDP-173</a> (F): Enhanced SSL support in install_sdp_python.sh to account for varied OpenSSL installations.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_14">8.73. SDP 2016.2 Patch 14</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21379 (2016/12/20).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21328 up to 21379 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-165">SDP-165</a> (F): Simplified SSL autogen cert generation.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-166">SDP-166</a> (B): Re-login after setting auth.id, restart at end of script.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_13">8.74. SDP 2016.2 Patch 13</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21328 (2016/12/16).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21239 up to 21328 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-157">SDP-157</a> (F): Added sample /Users/perforce/.mailrc.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-158">SDP-158</a> (F): SDP-ified log, moving p4triggers.log to ${LOGS}.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-159">SDP-159</a> (F): Updated to hms tight ship setup script, still WIP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-161">SDP-161</a> (F): Added script to lowercase a dir tree.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-162">SDP-162</a> (F): Added initial HMS tight ship script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-163">SDP-163</a> (F): Standardized doc format to docx.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-164">SDP-164</a> (F): Enhanced to support enterprise environments with two metadata volumes.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_12">8.75. SDP 2016.2 Patch 12</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21239 (2016/12/06).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21193 up to 21239 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-154">SDP-154</a> (F): Enable auth.id for P4D 2016.1+ servers.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-155">SDP-155</a> (F): Suppress known-harmless errors in p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-156">SDP-156</a> (F): Enhance install_sdp_p* scripts to remove hard-coded dependency on an instance 1.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_11">8.76. SDP 2016.2 Patch 11</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21193 (2016/12/2).</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-138">SDP-138</a> (F): Take advantage of new 2016.2 configurables.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-147">SDP-147</a> (F): Add CentOS 7 support to os_tweaks.sh</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-148">SDP-148</a> (F): Update SDP Python/Perl install to use 'http:' rather than 'ftp:' in URLs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-150">SDP-150</a> (B): Correct cp path for ssl dir.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-151">SDP-151</a> (F): Enhance Windows SDP install to server.depot.root.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-152">SDP-152</a> (F): Enhance to support 2 volumes for root/offline_db.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_10">8.77. SDP 2016.2 Patch 10</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21123 (2016/11/22).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21103 up to 21123 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-149">SDP-149</a> (B): Fix shebang line for case check trigger.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-150">SDP-150</a> (B): Correct cp path for ssl dir.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_9">8.78. SDP 2016.2 Patch 9</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21103 (2016/11/21).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21101 up to 21103 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-146">SDP-146</a> (F): Added doc-only hms setup scripts.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_8">8.79. SDP 2016.2 Patch 8</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21101 (2016/11/21).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 21033 up to 21101 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-144">SDP-144</a> (F): Add CheckCaseTrigger.p to the SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-145">SDP-145</a> (F): Various doc update for hms and failover.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_7">8.80. SDP 2016.2 Patch 7</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/21033 (2016/11/10).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20995 up to 21033 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-139">SDP-139</a> (B): mkrep.sh: Add missing journalcopy to standby replicas.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-140">SDP-140</a> (B): hms: Fixed issues with script hang on local failover.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-141">SDP-141</a> (F): hms: Replaced hard-coded master ServerID value with configured value.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-142">SDP-142</a> (B): Fix p4verify.sh bug when -recent flag is used.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_6">8.81. SDP 2016.2 Patch 6</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/20995 (2016/11/07).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20972 up to 20995 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-134">SDP-134</a> (B): p4verify.sh is currently broken - use of an unbounded variable ($d); use of the -recent option fails as for verify -S you cannot specify a range (only @= is supported) ; stripping out archive,unload+remote depots also not working. get_verofy_rev_range used depot name incorrectly in changes</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-136">SDP-136</a> (B): Tweaked maint scripts to handle oddly named groups.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-137">SDP-137</a> (F): Added new CN setting for /p4/common to test folder paths.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_5">8.82. SDP 2016.2 Patch 5</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/20972 (2016/11/01).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20856 up to 20970 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-120">SDP-120</a> (F): Add -recent flag to p4verify.sh to verify recent changes.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-126">SDP-126</a> (B): p4login.*.log files are not being cleaned up by the standard clean-up mechanism (remove_old_logs in backup_function.sh).</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-127">SDP-127</a> (F): Allow for multiple depot volumes.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-128">SDP-128</a> (B): Fixed missing LOGFILE varialbe issue in p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-129">SDP-129</a> (B): Fix formatting of logs to use simple HTML line breaks for Windows SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-130">SDP-130</a> (B): Various test suite improvements.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-131">SDP-131</a> (B): fixed issue with broken def’n of P4PORT with multiple SSL prefixes.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-132">SDP-132</a> (F): Enhanced two-factor auth mechanims.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-133">SDP-133</a> (F): Tweak to slightly reduce mkdirs.sh configuration.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_4">8.83. SDP 2016.2 Patch 4</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/20856 (2016/10/04).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20805 up to 20856 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-121">SDP-121</a> (F): Enhanced logic to favor init scripts in /p4/N/bin over /etc/init.d.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-122">SDP-122</a> (B): Fixed quoting bug in p4login.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-123">SDP-123</a> (F): hms checks for cfg files in /p4/common/config.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-124">SDP-124</a> (B): Fixed hms bug re: wrong master host discovered in failback testing</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_3">8.84. SDP 2016.2 Patch 3</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/20805 (2016/10/02).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20790 up to 20805 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-116">SDP-116</a> (B): Fixed ssh hang issues with hms scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-117">SDP-117</a> (F): Implemented global/central start stop.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-118">SDP-118</a> (F): mkrep.sh: Added more replica types and journalcopy support.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-119">SDP-119</a> (F): Implement checkauth feature in HMS broker_wrapper.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_2">8.85. SDP 2016.2 Patch 2</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/20790 (2016/09/30).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20755 up to 20790 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-112">SDP-112</a> (B): Minor p4 login fix to show P4TICKETS output reliably.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-113">SDP-113</a> (B): Fix mkrep.sh to use $P4BIN instead of p4.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-114">SDP-114</a> (F): Added basic p4login-super.sh script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-115">SDP-115</a> (B): Added hms dir to mkdirs.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_patch_1">8.86. SDP 2016.2 Patch 1</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.2/20755 (2016/09/29).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20559 up to 20755 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-64">SDP-64</a> (F): Add option to install_sdp_python.sh to build P4Python with SSL.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-103">SDP-103</a> (B): Fix attempted login count in p4login.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-104">SDP-104</a> (B): Fixed order-of-operations issue that caused some log files to be lost on rotation.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-105">SDP-105</a> (B): Cosmetic fix to broker init script with 'status all' run w/no config files.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-106">SDP-106</a> (F): Add Helix Management System (HMS) files to SDP.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-107">SDP-107</a> (F): Enhance p4login to avoid hang issue with auth.id set.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-108">SDP-108</a> (F): Further test suite docker environment updates.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-109">SDP-109</a> (F): Add Two Factor Authentication sample auth script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-110">SDP-110</a> (B): Correct crontab to run sync_replica.sh every day.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-111">SDP-111</a> (B): Fix bugs in convert_label_to_autoreload.py.</p> </li> </ul> </div> <div class="paragraph"> <p>Jobs Fixed since change 20491 up to 20559 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-100">SDP-100</a> (B): Fix recent regression with 'restart' option in init scripts.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_2_ga">8.87. SDP 2016.2 GA</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/20491 (2016/09/09).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20460 up to 20491 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-99">SDP-99</a> (B): Fix special case env insulation bug running init scripts as root.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_13">8.88. SDP 2016.1 Patch 13</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/20460 (2016/09/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed since change 20395 up to 20460 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-94">SDP-94</a> (B): Fixed a typo inserted in mkdirs.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-98">SDP-98</a> (B): chmod +x fix on some scripts.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_12">8.89. SDP 2016.1 Patch 12</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/20395 (2016/09/04).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 20387 and 20395 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-94">SDP-94</a> (B): Fixed a typo inserted in mkdirs.sh.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_11">8.90. SDP 2016.1 Patch 11</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/20387 (2016/09/04).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 20348 and 20387 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-89">SDP-89</a> (B): Fixed several issues in email.sh maint script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-92">SDP-92</a> (B): Fixed using with runRemoteCmd getting error if USER not defined in non-core SDP script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-93">SDP-93</a> (B): Removed references to legacy names for checkpoint scripts (non-functional change).</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_10">8.91. SDP 2016.1 Patch 10</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/20348 (2016/09/02).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 20028 and 20348 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-64">SDP-64</a> (F): Add option to install_sdp_python.sh to build P4Python with SSL.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-74">SDP-74</a> (F): Add p4sanity_check.sh script from Battle School.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-75">SDP-75</a> (B): Fix missing echo of command into log file in p4verify.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-77">SDP-77</a> (F): Change adminspass to use hidden, and now instance-specific, password files</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-78">SDP-78</a> (F): Add mkrep script to simplify replica creation.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-79">SDP-79</a> (F): Update p4verify.sh to verify shelves on master/replicas.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-80">SDP-80</a> (F): Add script to convert labels to autoreload.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-81">SDP-81</a> (F): Add Evil Twin Detector maintenance script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-85">SDP-85</a> (F): Add script to simplify adoption of OS-level best practices recommended by Support.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-97">SDP-97</a> (B): Eliminate syntax error if user forgets start/stop/status arg; just display status.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-88">SDP-88</a> (F): Use pid to shutdown p4d rather than 'p4 admin stop' to enhance reliability.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_9">8.92. SDP 2016.1 Patch 9</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/20028 (2016/08/03).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 19888 and 20028 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-67">SDP-67</a> (F): Defend against environment hijacking of P4ENVIRO.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-72">SDP-72</a> (F): Revive external auth LDAP group mirror scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-69">SDP-69</a> (B): sdp_sync.sh v2.1.7: Fixed environment bug (missing defs), HMS support.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-70">SDP-70</a> (F): Simplify login ticket handling for sophisticated topologies.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-71">SDP-71</a> (F): Prevent cross-instance contamination if p4_vars is loaded multiple times.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_8">8.93. SDP 2016.1 Patch 8</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/19888 (2016/07/07).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 19838 and 19888 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-6">SDP-6</a> (B): SDP trigger breaks with Streams workspaces in P4V.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-66">SDP-66</a> (B): Daily/weekly_backup can fail leaving lock file present requiring manual intervention</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-67">SDP-67</a> (F): Defend against environment hijacking of P4ENVIRO.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_7">8.94. SDP 2016.1 Patch 7</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/19838 (2016/06/26).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 19768 and 19838 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-6">SDP-6</a> (B): SDP triggers break with Streams workspaces in P4V.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-65">SDP-65</a> (F): Add defense against known-misbehaving client versions.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_6">8.95. SDP 2016.1 Patch 6</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/19768 (2016/06/24).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 19661 and 19768 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-62">SDP-62</a> (F): Change to best-practice configurables; auth.autologinprompt=0.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-63">SDP-63</a> (B): p4master_run operates incorrectly as root.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_5">8.96. SDP 2016.1 Patch 5</h3> <div class="paragraph"> <p>Released: Rev. SDP/MultiArch/2016.1/19661 (2016/06/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 19410 and 19661 (F=Feature, B=Bug):</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-59">SDP-59</a> (F): Add KEEPJNLS to allow keeping more jnls than ckps.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-60">SDP-60</a> (F): Rename replica scripts to be consistent with earlier rename of checkpoint scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-61">SDP-61</a> (F): Enhance error checkong and logging replica handling scripts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-62">SDP-62</a> (F): Change to best-practice configurables; auth.autologinprompt=0.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_4">8.97. SDP 2016.1 Patch 4</h3> <div class="paragraph"> <p>Released: SDP/MultiArch/2016.1/19410 (2016/05/17).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 18958 and 19410:</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-50">SDP-50</a>: Work with license check in P4D 2016.1.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-51">SDP-51</a>: Change p4verify.sh to use -S to verify shelves on a replica instead</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-52">SDP-52</a>: Removed the HOST_IP settings from mkdirs and instance_vars since it</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-53">SDP-53</a>: Dockerify SDP test suite.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-54">SDP-54</a>: Add replica cleanup script on Windows.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-55">SDP-55</a>: Get p4verify.sh to check SHAREDDATA on replicas.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-56">SDP-56</a>: Avoid chmod on a replica if it shares data with the master.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-57">SDP-57</a>: Use 'p4 admin journal' on master to rotate journal.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_3">8.98. SDP 2016.1 Patch 3</h3> <div class="paragraph"> <p>Released: SDP/MultiArch/2016.1/18958 (2016/04/08).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 18619 and 18958:</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-39">SDP-39</a>: Proxy status init script can show proxy is up when it is not.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-41">SDP-41</a>: Moved ckp_running.txt to LOGS dir.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-42">SDP-42</a>: Fix missing LOGFILE= in replica_cleanup.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-43">SDP-43</a>: De-emphasized changeType=restricted.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-44">SDP-44</a>: Update Perl/P4Perl Python/P4Python</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-45">SDP-45</a>: Support multiple broker configs.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-46">SDP-46</a>: Enhanced p4_vars.template to support non-p4d hosts.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-47">SDP-47</a>: SDP-ify P4DTG init script.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-48">SDP-48</a>: Enhanced p4deleteuser.py to check for shelves, double-deletes.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_2">8.99. SDP 2016.1 Patch 2</h3> <div class="paragraph"> <p>Released: SDP/MultiArch/2016.1/18619 (2016/03/10).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 17297 and 18619:</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-30">SDP-30</a> on 2015/12/15 by ttyler <strong>closed</strong> 'Enhanced offline_db 'stale data'</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_patch_1">8.100. SDP 2016.1 Patch 1</h3> <div class="paragraph"> <p>Released: SDP/MultiArch/2016.1/17297 (2016/02/03).</p> </div> <div class="paragraph"> <p>Jobs Fixed between changelists 16784 and 17297:</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-32">SDP-32</a>: Support $MAILTO values with'#' char in gen_default_broker_cfg.sh.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-34">SDP-34</a>: sdp_sync.sh: Fix 'null crontab' bug.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-35">SDP-35</a>: p4d_base: When stopping p4d, send stderr to /dev/null.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-36">SDP-36</a>: global_replica_status.sh: Support instance-specifc host config.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-37">SDP-37</a>: Support email addresses starting with '#'.</p> </li> </ul> </div> </div> <div class="sect2"> <h3 id="_sdp_2016_1_ga">8.101. SDP 2016.1 GA</h3> <div class="paragraph"> <p>Released: SDP/MultiArch/2016.1/16784 (2016/01/12).</p> </div> <div class="paragraph"> <p>Jobs Fixed recently:</p> </div> <div class="ulist"> <ul> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-31">SDP-31</a>: Add documentation for sdp_sync.sh to SDP Guide.</p> </li> <li> <p><a href="https://swarm.workshop.perforce.com/jobs/SDP-32">SDP-32</a>: Support $MAILTO values with'#' char in gen_default_broker_cfg.sh.</p> </li> </ul> </div> </div> </div> </div> </div> <div id="footer"> <div id="footer-text"> Version v2024.1.1<br> Last updated 2024-11-21 09:05:29 -0500 </div> </div> </body> </html>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#44 | 30922 | C. Thomas Tyler |
This changeiis a minor web-only update to Release Notes. The SDP tarball will not be upated for this. |
||
#43 | 30920 | C. Thomas Tyler |
Released SDP 2024.1.30917 (2024/11/20). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#42 | 30915 | C. Thomas Tyler |
Released SDP 2024.1.30913 (2024/11/20). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#41 | 30455 | C. Thomas Tyler |
Hot patch to SDP docs to avoid URLs with Swarm 'projects' tags that have Apache redirects that are not working reliably (and are there for legacy reasons anyway). |
||
#40 | 30420 | C. Thomas Tyler | Hot patch of release notes only. | ||
#39 | 30396 | C. Thomas Tyler |
Hot Patch of Release Notes. Copy Up using 'p4 copy -r -b perforce_software-sdp-dev', with selective removal of work-in-progress files. |
||
#38 | 30388 | C. Thomas Tyler |
Released SDP 2024.1.30385 (2024/06/11). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#37 | 30297 | C. Thomas Tyler |
Released SDP 2023.2.30295 (2024/05/08). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#36 | 30043 | C. Thomas Tyler |
Released SDP 2023.2.30041 (2023/12/22). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#35 | 29954 | C. Thomas Tyler |
Released SDP 2023.1.29949 (2023/12/01). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#34 | 29895 | C. Thomas Tyler | Patched release notes. | ||
#33 | 29891 | C. Thomas Tyler |
Released SDP 2023.1.29699 (2023/07/11). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#32 | 29701 | C. Thomas Tyler |
Released SDP 2023.1.29699 (2023/07/11). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#31 | 29623 | C. Thomas Tyler |
Released SDP 2023.1.29621 (2023/05/25). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#30 | 29612 | C. Thomas Tyler |
Released SDP 2023.1.29610 (2023/05/25). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#29 | 29443 | C. Thomas Tyler |
Released SDP 2022.2.29441 (2023/02/27). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#28 | 29401 | C. Thomas Tyler |
Released SDP 2022.2.29399 (2023/02/06). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#27 | 29252 | C. Thomas Tyler |
Released SDP 2022.2.29250 (2022/12/08). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#26 | 29205 | C. Thomas Tyler |
Released SDP 2022.1.29203 (2022/11/22). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#25 | 29143 | C. Thomas Tyler |
Released SDP 2022.1.29141 (2022/10/29). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#24 | 28989 | C. Thomas Tyler |
Released SDP 2022.1.28987 (2022/08/25). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#23 | 28858 | C. Thomas Tyler |
Released SDP 2022.1.28855 (2022/05/27). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#22 | 28651 | C. Thomas Tyler |
Released SDP 2021.2.28649 (2022/03/03). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#21 | 28412 | C. Thomas Tyler |
Released SDP 2021.2.28410 (2021/11/24). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#20 | 28264 | C. Thomas Tyler |
Released SDP 2021.1.28261 (2021/11/13). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#19 | 28259 | C. Thomas Tyler |
Released SDP 2021.1.28253 (2021/11/13). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#18 | 28240 | C. Thomas Tyler |
Released SDP 2021.1.28238 (2021/11/12). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#17 | 27958 | C. Thomas Tyler |
Released SDP 2020.1.27955 (Patch 12, 2021/08/13). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev', with selective removal of work-in-progress files. |
||
#16 | 27921 | C. Thomas Tyler |
Released SDP 2020.1.27919 (2021/07/19). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#15 | 27901 | C. Thomas Tyler |
Released SDP 2020.1.27899 (2021/07/13). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#14 | 27822 | C. Thomas Tyler |
Released SDP 2020.1.27820 (2021/06/19). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#13 | 27765 | C. Thomas Tyler |
Released SDP 2020.1.27763 (2021/05/07). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#12 | 27761 | C. Thomas Tyler |
Released SDP 2020.1.27759 (2021/05/07). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#11 | 27541 | C. Thomas Tyler |
Released SDP 2020.1.27536 (2021/02/28). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#10 | 27527 | C. Thomas Tyler |
Released SDP 2020.1.27524 (2021/02/26). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#9 | 27470 | C. Thomas Tyler |
Released SDP 2020.1.27457 (2021/02/17). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#8 | 27463 | C. Thomas Tyler |
Released SDP 2020.1.27457 (2021/02/17). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#7 | 27416 | C. Thomas Tyler |
Released SDP 2020.1.27414 (2021/02/07). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#6 | 27407 | C. Thomas Tyler |
Released SDP 2020.1.27403 (2021/02/06). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#5 | 27400 | C. Thomas Tyler |
Released SDP 2020.1.27398 (2021/02/06). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#4 | 27364 | C. Thomas Tyler |
Released SDP 2020.1.27357 (2021/02/01). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#3 | 27360 | C. Thomas Tyler |
Released SDP 2020.1.27351 (2021/01/31). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#2 | 27354 | C. Thomas Tyler |
Released SDP 2020.1.27351 (2021/01/31). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
#1 | 27331 | C. Thomas Tyler |
Released SDP 2020.1.27325 (2021/01/29). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
//guest/perforce_software/sdp/dev/doc/ReleaseNotes.html | |||||
#8 | 27330 | C. Thomas Tyler | Updated Version to release SDP 2020.1.27325. | ||
#7 | 27324 | C. Thomas Tyler | Updated Version to release SDP 2020.1.27322. | ||
#6 | 27322 | C. Thomas Tyler | Updated AsciiDoc-generated files. | ||
#5 | 27213 | C. Thomas Tyler | Regenerated docs. | ||
#4 | 27171 | C. Thomas Tyler | Refinements to release notes. | ||
#3 | 27122 | C. Thomas Tyler | Refined release notes. | ||
#2 | 27121 | C. Thomas Tyler | Added "What's new in 2020.1" and other content to release notes. | ||
#1 | 27114 | C. Thomas Tyler |
Changed format of SDP Release Notes from Markdown to adoc. Updated old release notes content to use new format (using disposable link conversion scripts). |