[Pkg-javascript-devel] node packages in NEW

Xavier yadd at debian.org
Mon Sep 10 16:09:35 BST 2018


Le 10/09/2018 à 07:59, Bastien ROUCARIES a écrit :
> On Mon, Sep 10, 2018 at 7:33 AM Xavier <yadd at debian.org> wrote:
>>
>> Le 09/09/2018 à 23:36, Bastien ROUCARIES a écrit :
>>> On Sat, Sep 8, 2018 at 6:17 PM Xavier <yadd at debian.org> wrote:
>>>>
>>>> Le 07/09/2018 à 16:36, Xavier a écrit :
>>>>> Le 07/09/2018 à 13:38, Bastien ROUCARIES a écrit :
>>>>>> On Thu, Sep 6, 2018 at 9:45 PM Thorsten Alteholz <debian at alteholz.de> wrote:
>>>>>>>
>>>>>>> Hi Bastien,
>>>>>>>
>>>>>>> On Wed, 5 Sep 2018, Bastien ROUCARIES wrote:
>>>>>>>>>   - put together packages that belong together; I am not sure here, but
>>>>>>>>>     wouldn't it be fine to have just one package node-d3 or node-babel
>>>>>>>>>     that contains all corresponding modules (though their different versions
>>>>>>>>>     might create problems in keeping track of them)?
>>>>>>>>
>>>>>>>> I strongly oppose to keep different version.#
>>>>>>>
>>>>>>> I don't meant to have different versions of one package here, but
>>>>>>> bundling several packages with different versions, so that it might not be
>>>>>>> clear what version the resulting package might get.
>>>>>>
>>>>>> I agree with this maybe we could get something like:
>>>>>> mainpackage+embded-nameembded1-version+embded-namembdedversion2-version+version
>>>>>> ?
>>>>>>
>>>>>> Bastien
>>>>>
>>>>> Hello,
>>>>>
>>>>> I've written a little draft:
>>>>> https://wiki.debian.org/Javascript/GroupedSourcePackageProxy
>>>>
>>>> I've updated draft to build a stateless proxy: DB was a bad idea since
>>>> it can be modified at each request.
>>>> I started to build groupedsources.cgi. The function to build grouped
>>>> upstream sources works. Now I'm going to write the download part. When
>>>> ready, you will be able to test with node-tap, simply by changing
>>>> debian/watch.
>>>
>>> No I will not use as is. Actually node-tap use upstream tar ball
>>> renamed as per dpkg spec [1].
>>>
>>> You solution use a repack...
>>>
>>>
>>> uscan support multiple tar (in V4) but only with one version. Your
>>> redirector could help by fixing the version problem.
>>
>> OK, my redirector is ready. It provides all component with the same
>> version. Example of debian/watch:
>>
>> # Main
>> https://qa.debian.org/cgi-bin/groupedsources.cgi?upstream=npmjs/nodedbi+nmpjs/own-or
>> \
>>   .*=mainUpstream-(\d.*)\.(?:tgz|tar\.(?:gz|bz2|xz))
>> # Component own-or
>> opts=component=own-or \
>> https://qa.debian.org/cgi-bin/groupedsources.cgi?upstream=npmjs/nodedbi+nmpjs/own-or&component=own-or&
>> \
>>   .*=mainUpstream-(\d.*)\.(?:tgz|tar\.(?:gz|bz2|xz))
>> ...
>>
>> Downloads are redirected to npmjs and not built by groupedsources.cgi
>>
>>> A minor point about version, it should be + instead of ~. Embded
>>> version are after normal version. I think the best will be to use +~
>>> to separate embed version. It is unlikey someone will use +~ and it is
>>> a perfectly legal string.
>>>
>>> so I will recommend as version
>>> mainversion+dsembded+~version1+~version2+~version3
>>
>> OK, to simplify version, the second part is a cumulative version (sum of
>> digits of each component). Example: 1.2.3+~6.2.4
>> There is a "over" parameter in CGI to increase first digit (in case it
>> was decreased due to the removal of 1 component)
> I prefer the previous version of version string. Sorry no sum please. Be stupid.
> 
>>>> If this proposition is acceptable, I'll propose a policy patch to
>>>> authorize JS grouped sources and a JS policy patch for details.
>>>
>>> [1] https://raphaelhertzog.com/2010/09/07/how-to-use-multiple-upstream-tarballs-in-debian-source-packages/

OK, it works now. I've rebuild node-mongodb including its 2 dependencies
not yet available. If you want to test:
 * install groupedsources.cgi in your local /usr/lib/cgi-bin:
 https://salsa.debian.org/yadd/qa/blob/master/cgi-bin/groupedsources.cgi
 * clone https://salsa.debian.org/js-team/node-mongodb
 * `git checkout groupedsources`

This works:
 * `uscan -dd` installs the 3 sources
 * sbuild or `gbp buildpackage` installs the 3 node modules

Note:
 * since mongodb build doesn't need dependencies, they are not installed
   in node_modules directory during build. A simple mkdir+ln-s would be
   enough if this was needed
 * debian/copyright not yet updated (=> lintian warnings)
 * a suffix may be required here

Any advice or contribution are welcome!

Cheers,
Xavier



More information about the Pkg-javascript-devel mailing list