Page MenuHomePhabricator

Build Debian package ruby-jsduck for Jessie
Closed, DeclinedPublic

Description

jsduck is a ruby application we use to generate JavaScript documentation. The Debian package is not available in Debian, we build it ourselve.

Original request in RT {T82278}, the matching bugzilla entry with some more details is T48236: Create Debian package for ruby gem "jsduck" (operations/debs/jsduck)

jsduck depends on a few more gems that would need additional packages. On Trusty we have the following versions:

ruby-jsduck5.3.4
ruby-parallel0.6.3
ruby-dimensions1.2.0
ruby-rkelly-remix0.0.6

I guess it is easier to stick to the same versions for now.

Event Timeline

hashar raised the priority of this task from to Medium.
hashar updated the task description. (Show Details)
hashar added subscribers: hashar, Aklapper, Krinkle.

So, to clarify -- you have the packages already built and in the repo for Trusty? Is this as simple as adding those same packages to the Jessie repo, or do the existing packages not install there?

The packages are already build for Trusty but I don't think they will work as is on Jessie (ex: different ruby version).

The Debian source are in Gerrit operations/debs/ruby-* repos ( https://gerrit.wikimedia.org/r/#/admin/projects/?filter=operations%252Fdebs%252Fruby ). Maybe they build just fine and produce a usable package.

I can't remember / find out why we ended up with Debian packages instead of using ruby gems directly.

Change 213954 had a related patch set uploaded (by Dzahn):
build 5.3.4 for jessie, remove old patches

https://gerrit.wikimedia.org/r/213954

eh... and now i found T83282 . same thing? how did that get resolved when changelog of the package was still at 4.10.4 ? (https://gerrit.wikimedia.org/r/#/c/213954/3/debian/changelog )

@akosiaris does that mean i am supposed to build "5.3.4-1wmfjessie1"?

also, how about https://gerrit.wikimedia.org/r/#/c/213954/

@Dzahn, I left some comments in https://gerrit.wikimedia.org/r/#/c/213954/ .

As far as the "5.3.4-1wmfjessie1", yes unfortunately you do need that. well known reprepro limitation.

If the packaging work is daunting, we can get rid of the ruby-jsduck deb package and let CI install the requirements using gem / bundler. We are already doing that for python/javascript/php.

The reason we went with a debian package back in 2013 was that we only had production machines. Nowadays we have slaves in labs which make it easier to bring packages from outside.

Built and uploaded ruby-jsduck_5.3.4 and ruby-rkelly-remix_0.0.6 on jessie-wikimedia/main. Resolving

@hashar. I 've built those 2 packages just because it was done for precise/trusty and it probably makes sense to keep things compatible for now. But you are absolutely right. The slaves in labs using gem/bundler/pip/virtualenv/tox/whatever_language_package_manager to build environments on demand for running CI tests is way more flexible and sane. And it obviously decouples everyone's tests from depending on ops finding the time and skill to build packages. AFAICT, it should be the way to move forward in the future.

Change 213954 abandoned by Alexandros Kosiaris:
build 5.3.4 for jessie, remove old patches

Reason:
Already done. See https://phabricator.wikimedia.org/rODCNf48c683faa2290e7e0a8c5c787a5b64ec75ef9ea

https://gerrit.wikimedia.org/r/213954

Not yet :-(

integration-slave-jessie-1001# apt-get install ruby-jsduck
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ruby-jsduck : Depends: ruby-dimensions but it is not installable
               Depends: ruby-parallel but it is not installable
E: Unable to correct problems, you have held broken packages.

From my earlier comment in T95008#1354512 , we should probably abandon that package and use bundler / rubygems instead. That is less maintenance trouble.

Dzahn removed Dzahn as the assignee of this task.Jun 25 2015, 2:17 AM

@hashar

Indeed. And, you are obviously right about bundler/gems. I did the porting of ruby-rkelly-remix and ruby-jsduck for consistency's sake but packaging those dependencies is indeed becoming way more trouble than it's worth. I agree with you. Let's go down the env/bundler/gems road. Got a plan ?

hashar claimed this task.

Nop, we will migrate to provide jsduck via rubygems.org . Saves us the troubles from packaging multiple gems and we already use rubygems for a bunch of other jobs :-)

Sorry for the delay.

Reopening because we need some cleanup actions. We need to remove on our apt for jessie-wikimedia the packages:

ruby-rkelly-remix
ruby-jsduck

Note they should be left for the Ubuntu repos :-)

{{done}}

root@carbon:~# reprepro remove jessie-wikimedia ruby-jsduck
Exporting indices...
Deleting files no longer referenced...
root@carbon:~# reprepro remove jessie-wikimedia ruby-rkelly-remix
Exporting indices...
Deleting files no longer referenced...
root@carbon:~# reprepro list jessie-wikimedia ruby-jsduck
root@carbon:~# reprepro list jessie-wikimedia ruby-rkelly-remix

Change 225866 had a related patch set uploaded (by Hashar):
contint: drop jsduck from Debian slaves

https://gerrit.wikimedia.org/r/225866

Change 225866 merged by Filippo Giunchedi:
contint: drop jsduck from Debian slaves

https://gerrit.wikimedia.org/r/225866

It is gone now. Thanks!

hashar changed the task status from Resolved to Declined.Aug 26 2015, 1:28 PM

We ended up NOT building Debian package ruby-jsduck for Jessie. So adjust status to Declined.

Hi how will we still use jsduck when migrating to Jessie npm 4.3.

@Paladox by using the rake-jessie job which rely on bundler to download dependencies from ruby gems. That is the topic of T109005 :)