<div dir="ltr">Hi Nicolas<br><br><div class="gmail_quote"><div dir="ltr">On Wed, Apr 5, 2017 at 10:57 AM nicolas.lecureuil nicolas.lecureuil <<a href="mailto:nicolas.lecureuil@siveo.net">nicolas.lecureuil@siveo.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u class="gmail_msg"></u>

    
<div class="gmail_msg"><p class="gmail_msg">Hi,<br class="gmail_msg"></p><p class="gmail_msg"><br class="gmail_msg"></p><p class="gmail_msg">i use Buildbot to build deb packages.<br class="gmail_msg"></p><p class="gmail_msg">i have a small question because i use :<br class="gmail_msg"></p><p class="gmail_msg"><br class="gmail_msg"></p><p class="gmail_msg">class UpstreamGetVersion(ShellCommand):<br class="gmail_msg"> name ="upstreamgetversion"<br class="gmail_msg"> command='grep version setup.py | grep = | cut -d = -f2 | cut -d"\'" -f2 '</p><p class="gmail_msg">def evaluateCommand(self, cmd):<br class="gmail_msg"> shell.SetPropertyFromCommand(command='grep version setup.py | grep = | cut -d = -f2 | cut -d"\'" -f2 ', property="upstreamPkgVer")<br class="gmail_msg"> return ShellCommand.evaluateCommand(self, cmd)</p></div></blockquote><div>Your email agent mangled the whitespace, which does not make you code easy to read.</div><div><br></div><div>looks like you are not using shell.SetPropertyFromCommand in the way it is meant.</div><div>It is not a method you call in the evaluateCommand context, it is a step by itself</div><div>So you don't need any custom evaluateCommand step, you just need</div><div><br></div><div>f1.addStep(shell.SetPropertyFromCommand(command='grep version setup.py | grep = | cut -d = -f2 | cut -d"\'" -f2 ', property="upstreamPkgVer"))<br class="gmail_msg"></div><div><br></div><div>Note that you can debug your properties setup in the properties tab of the UI.</div><div><br></div><div>Then, it is recommended to use new style steps for your customizations.</div><div>It is exactly the same except you redefine run(), and you do "return SUCCESS" instead of self.finished(SUCCESS).</div><div>Those new style steps are easier to use, and will avoid Buildbot to setup  eight compatibility layer.</div><div>Last, you should know that self.getProperty() exists, and should simplify your code.</div><div>Instead of printing, you can also call self.addLog:</div><div><br></div><div>stdio_log = self.addLog("stdio")<br></div><div>stdio_log.addStdout(<span class="inbox-inbox-Apple-converted-space" style="color:rgb(33,33,33);font-size:13px"> </span><span style="color:rgb(33,33,33);font-size:13px">'Debian package upstream version: {}'.format(self.debver))</span><br></div><div><span style="color:rgb(33,33,33);font-size:13px">You debug logs will be found in the buildbot UI instead of twisted.log</span></div><div><span style="color:rgb(33,33,33);font-size:13px"><br></span></div><div><span style="color:rgb(33,33,33);font-size:13px">Regards</span></div><div><span style="color:rgb(33,33,33);font-size:13px">Pierre</span></div><div><span style="color:rgb(33,33,33);font-size:13px"><br></span></div></div></div>