[Buildbot-devel] Questions on buildbot_www package (nine branch)

Pierre Tardy tardyp at gmail.com
Sun Oct 13 08:43:24 UTC 2013


On Sun, Oct 13, 2013 at 2:15 AM, Andrii Senkovych <jolly_roger at itblog.org.ua
> wrote:

> Hi,
>
> Yesterday I had some fun building the new web frontend for buildbot.
> While I managed to run master and display some neat pages, i had some
> troubles during build as well (see bug #2571).

I fixed the problem yesterday. the gruntfile has some slight bugs. I think
we should have some sort of automated test of release scripts all the way
through sdist


> I'm not familiar with
> frontend development,

Hehe, we are not too familiar as well, as this is our first big project
with grunt+angularjs being python guys in the first place.
Having made a lot of research lately, I'm pretty sure we are actually the
most ambitious open source project using angularjs.


> but I'd like to understand how this works since
> i'm going to package this for Debian once new web interface is ready.
> So I'd better prepare before this happens, because I already expect a
> lot of work on packaging. Here are my questions:
>
>  * what is a general layout of the AngularJS project (and buildobt_www) and
>  * what is its typical workflow
>
I think this is pretty well answered here:
https://github.com/buildbot/buildbot/blob/nine/master/docs/developer/www.rst

Please let me know if this doc is incomplete.


> Also I've found that it required to download 152Mb of thirdparty
> libraries to be downloaded by npm and bower to build a 350K javascript
> file at the end. That's quite impressive :)


Indeed. That is a weirdness of npm, which by design insist on downloading
several copies of the same components to allow several version to work
together. That's their way of solving the dependency hell problem.


> But this could be quite a
> challenge for Debian, because:
>
>  * it tends to satisfy all build-dependencies system-wide
>  * it requires all packages to be built from source
>  * it has /usr/bin/nodejs instead of /usr/bin/node
>
> Currently I doubt that python_www sdist tarball will fit to the second
> condition (due to minified/uglified javascript code compiled from
> coffeescript, etc.) that moves me to point that Debian package would
> require nodejs and npm as its build dependencies. And this moves to
> the first condition. However I'm not that happy to imagine packaging
> of that 152Mb of different javascript code into Debian packages.
>

I really think this is not the good option, as npm as this fundamental
difference in tracking the dependancy. npm is really meant to install the
dependancies locally
https://npmjs.org/doc/misc/npm-faq.html
I think this has indeed the advantage to deal with the ultra high pace of
nodejs component development.
Npm and bower have interesting idea, but does not have the same maturity as
other package manager. They dont have easy way to install mirrors for
example, which is very annoying for CI. They still are the de-facto
standard, and working without it would be much more annoying

I have to admit that we did not really thought about distro packaging. I
expect the fedora maintainer to have exactly the same issues.

I think the best option is to use the sdist tarball to build the
buildbot_www package even if it does not comply with rule two. You can also
start the discussion on how to manage translations of npm packages and
bower packages to .deb.

>
> Another potential issue for me is node.js itself, because it is
> installed as /usr/bin/nodejs and not /usr/bin/node like the upstream
> one.

This reminds my the "git-core" module which has been renamed by ubuntu to
"git" I think.
I personnally use https://launchpad.net/~chris-lea/+archive/node.js/

Which tracks upstream faster than ubuntu. This ecosystem is moving so fast
that at somepoint it required features of newer npm. Not sure how this will
work with debian


> I'm going to start similar conversation on Debian mailing list to
> clarify all the points on packaging. If you have any thoughts on this,
> I'd like to hear them.
>
Probably this may be a good idea to cross-post to npm mailing list. I'll be
happy to be in CC of this conversation also.
We though should be prepared of this to be a good source of flame :-)

Pierre
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20131013/36f3fda3/attachment.html>


More information about the devel mailing list