[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Pkg-javascript-devel] Bug#754551: ITP: node-ms -- milliseconds conversion utility

On Sat, Jul 12, 2014 at 3:57 AM, Frederic Peters <fpeters@debian.org> wrote:
Steve McIntyre wrote:

> I've seen ITPs for a massive set of tiny-looking node libraries go
> past on -devel in the last few months, so I thought it was about time
> I looked at one. I'm a bit worried by what I've seen, considering
> typical discussions in the past about really small packages.

I am largely responsible for this. However many of the ITPs I have filed I managed to avoid as (indirect) dependencies by submitting patches upstream and when appropriate, inlining the dependency. Most of the problematic ones you saw are closed now, including the 2 at the end of this email.
> [...]
> tack:~/debian/ms.js$ wc -l index.js
> 111 index.js
> Am I missing something, or is the working code in this package really
> just 111 lines? Why isn't this bundled up into something more
> reasonable in size for the packaging system?

Consider my perspective for a moment here. I am trying to package groovebasin, which depends on various modules:

groovebasin (1.2.0) # waiting on dependencies
...many more dependencies...
├─ zip-stream (~0.3.0) # waiting for node-debug to update
│  └─ debug (~1.0.2) # l3on is waiting for node-ms in the NEW queue
│      └─ ms (~0.6.2) # waiting in the NEW queue...
...many more dependencies...

So now I'm waiting for node-ms in the NEW queue and people are complaining that 111 lines is too small for a code module?

What do you expect me to do? It would be very easy to just bundle all node_modules with the package but that is against Debian guidelines. Each dependency must track upstream. So that's exactly what we're doing and we're getting flak for it.

It seems that Debian wants 2 contradictory things from me at the same time.
ITP: node-ansi-regex
 $ git clone https://github.com/sindresorhus/ansi-regex
 $ cat ansi-regex/index.js
'use strict';
module.exports = function () {
        return /\u001b\[(?:[0-9]{1,3}(?:;[0-9]{1,3})*)?[m|K]/g;

ITP: node-quotemeta
 $ git clone https://github.com/substack/quotemeta.git
 $ cat quotemeta/index.js
module.exports = function (str) {
    return String(str).replace(/(\W)/g, '\\$1');

These 2 are indeed stupidly small. I have managed to work around packaging these 2 modules up and closed the ITPs.

I have taken a lot of time to try to avoid packaging modules for Debian which could be avoided. I have done this by painstakingly getting patches merged in many upstream projects to change dependencies to better ones, or fewer ones. When I started it looked like there were about 80 packages to create, but I have brought that number down by a factor of 2.

I do not think that node-ms is stupidly small. 104 other packages depend on it in the NPM registry: https://www.npmjs.org/package/ms

Please consider uploading node-ms and know that I am aware of the pain of small packages and I am working hard to strike the balance between properly tracking upstream and avoiding cruft.


Reply to: