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 created this task.Apr 3 2015, 1:45 PM
hashar raised the priority of this task from to Normal.
hashar updated the task description. (Show Details)
hashar added subscribers: hashar, Aklapper, Krinkle.
hashar added a project: Blocked-on-Operations.
hashar set Security to None.
Andrew added a subscriber: Andrew.Apr 6 2015, 4:06 PM

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?

hashar added a comment.May 6 2015, 4:34 PM

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

Dzahn claimed this task.May 26 2015, 9:17 PM
Dzahn added a comment.May 26 2015, 9:59 PM

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.

hashar added a comment.EditedJun 10 2015, 8:25 PM

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.

akosiaris closed this task as Resolved.Jun 11 2015, 9:55 AM

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

hashar reopened this task as Open.Jun 24 2015, 7:46 PM

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 still blocked on operations?

Restricted Application added a subscriber: Matanya. · View Herald TranscriptJul 20 2015, 9:35 AM
hashar closed this task as Declined.Jul 20 2015, 9:56 AM
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.

hashar reopened this task as Open.Jul 20 2015, 9:58 AM

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

hashar closed this task as Resolved.Jul 20 2015, 1:25 PM

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 :)