[devel at bb.net] Review of "Expert Twisted" chapter

Dustin J. Mitchell dustin at buildbot.net
Sat Dec 16 21:45:37 UTC 2017


2017-12-12 7:06 GMT-05:00 Vit Ry <frodox at zoho.com>:

> Hi! According to PR12 build (https://31-103838017-gh.
> circle-artifacts.com/0/root/repo/out/10-Buildbot.pdf)
>
> > Buildbot is a framework for building continuous integration applications.
>
> I'm confusing with this every time. What is "CI application" ? CI - is a
> process, a culture...
> I don't hear often 'CI application' term, and what is the meaning then?
>

A CI application is an application that implements a continuous integration
process.  I'm trying to make the point here that if you're going to use
Buildbot, you're going to have to implement what you want (your
application) *on top* of Buildbot (a framework).  Do you have a better term?


> > It is a popular choice for organizations and projects with complex and
> unusual
> build, test, and release requirements.
>
> add "workflow" here also.
>

Where?  Isn't a workflow just a complex requirement?


> > but is not as simple to set up or use as tools like Joomla or Wordpress.
>
> it *might* not be as simple. But in some cases it would be simple enough,
> and in some cases it would be hard to setup Joomla for user requirements :)
>

I think the analogy is clearer without caveats :)


> > into CVS
>
> What is CVS? VCS may be?
>

https://en.wikipedia.org/wiki/Concurrent_Versions_System


> > After leaving the router company, he built a clean re-implementation of
> the build system, in part as a way to learn Twisted, and the result became
> Buildbot.
>
> When?! When? So, when actuall Buildbot 0.7 was borne..?
>
> Looks like 2006.  Let's add year reference.
> commit 1bb1c105adac5c47aa9f78840d6215ed29ec74d5 (tag: v0.7.1)
> Author: warner-buildbot <warner-buildbot at lothar.com>
> Date:   Sun Mar 12 12:18:43 2006 +0100
>
>     TAG buildbot-0.7.1
>
>
0.7.1 definitely wasn't the first version of Buildbot.  That first version
has been lost to the sands of experimental version control systems, but I
suspect it was closer to 2003.  Brian (copied) - do you have a more
accurate datestamp for your departure from "the router company"?


> > For example WorkerManager is dependent on the MessageQueueConnector, but
> are actually both childs of the masterService.
>
> but *they* are both childes
>

> We jump from async world to sync world using self.db.pool.do

> self.db.pool.do is - method. Should be `self.db.pool.do(...)` then
>
> If we take into account not only experts of async readers,
> it would be cool to add some minimal clarification, or rephrase some parts,
> that it would be clear (for 2017):
> * which code/functions is async one (either return Defferred or yield
> Defferred - what difference)
> * in which case we should use wrappers (+ py2 vs py3)
>
> it is a bit mess in my newbie head due to history, the evolution and so on.
>

We could include a sentence or two defining that in the history section,
for sure -- it is truly the case that we have had a few functions in our
history that were both (sometimes returned a value, sometimes a Deferred).
I added:

We are now accusomted to referring to functions as asynchronous (meaning
they return a Deferred) and synchronous (meaning they do not).
In these dark ages, the distinction was not so clear and there were
functions in Buildbot which could return a Deferred or an immediate value,
depending on the circumstances.
Needless to say, such functions were difficult to call correctly and were
refactored to be strictly synchronous or asynchronous.


>
> requests paragraph
>
> > HttpClientService takes either one according to what is installed in
> your environment.
>
> And what if I have both? Which one in priority?
>

txrequests.  That feels like a detail best left in the docs, and not the
chapter?


>
>  very big code example of class GitHubStatusPush(http.HttpStatusPushBase):
>
> My suggestion to add some note, what is this 2 page code example
> illustrates :)
> And keep it as minimum as possible to achieve goal of illustration. Hard
> to understand for me
>

I will defer to Pierre for that.


>
> > https://github.com/twisted/twisted/blob/trunk/src/
> twisted/internet/defer.py#L1538
>
> would not be correct after few months
>

I took the link out.  I think links in a book probably aren't that useful :)


> > Perspective Broker
>
> looks like not finished yet. What is PB and what is goal if chapter?
>

I'll remove that and the other unfinished sections.


> >  Are there sections that have too much detail?
> I think about Async Services and RaceCondition chapters, a bit tricky/need
> deeper understanding
>
>
> +in gh PR some comments
>  ---
>
> Generally we have very good outline and structure, chapter content :)
>
>
Thank you for your feedback!  I've incorporated it into a new branch I'll
be pushing for review shortly.

Dustin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.buildbot.net/pipermail/devel/attachments/20171216/a7436c3f/attachment.html>


More information about the devel mailing list