> Actually, Yahoo! has had an internal customised version of npm under the 
> name 'ynpm' for about 2 years now. It's not published to the public 
> registry because the changes and extensions relate to proprietary 
> technologies.
>
 
They already have? Well, fair enough, changing a name now.

I guess that's another argument why npm needs namespaces. :)

 

> Oh well... could you please suggest another name? I really so bad at 
>> naming things...
>>
>
> I'm not good at naming things either. A few ideas off the top of my head: 
> alt-npm, yapm, ypkg, yaml-pkg, ypnpm (yaml-patched npm). Did I say I was no 
> good at naming things? :-)
>

Actually, "yapm" sounds pretty good... I think I'll pick that one. Changing 
repository/package name as well because bin name and package name should 
match to avoid confusion: https://npmjs.org/package/yapm

--
Regards,
alex

Special keys are obviously ugly and generate too much noise. Besides, 
>> originally I wanted to comment dependencies, so it can't be used anyway. 
>> This was discussed over and over in the past. There was just one acceptable 
>> solution (it's javascript instead of json which compiles to json when 
>> publishing), but it's long gone now. :(
>>
>>
>>
>> On Monday, June 24, 2013 7:37:07 PM UTC+4, Isaac Schlueter wrote:
>>
>>> As with using CoffeeScript or Streamline to write your JavaScript, I 
>>> have no problem with stuff like this for publishing to npm, as long as 
>>> what ends up in the registry is "regular" json and javascript. 
>>>
>>> I'd recommend against using `ynpm` as the bin name, if only because 
>>> I'm an ex-yahoo, and `ynpm` sounds like Yahoo!'s fork of npm ;) 
>>>
>>> You know, you CAN put comments in JSON by just using a key that isn't 
>>> used for anything else.  You can't put it in places (such as 
>>> `dependencies`) where the key name is relevant information, of course. 
>>>  But at the top-level, this is fine: 
>>>
>>> ```json 
>>> { "name": "silverware-drawer" 
>>> , "description": "BECAUSE ITS FULL OF FORKS GET IT!?" 
>>> , "//": 
>>>   [ "This package.json file has a lot of forks on github" 
>>>   , "of things that I've forked and added patches to." 
>>>   , "I'll use the 'real' one once they're merged." ] 
>>> , "//0": "Use an ID on multiple comments so they don't clobber" 
>>> , "//1": {"this":"may","not":"be","**ideal":"but","it":"works"} 
>>> , "dependencies": { "foo":"my/fork" } 
>>> } 
>>> ``` 
>>>
>>>
>>> On Sun, Jun 23, 2013 at 11:59 AM, Alex Kocharin <[email protected]> 
>>> wrote: 
>>> > 
>>> > When ynpm looks in a directory, it sees both files: real yaml file and 
>>> a 
>>> > "virtual" json file. So it packs both. 
>>> > 
>>> > It's very much intentional to ensure interoperability. We can use 
>>> whatever 
>>> > we want in development enviroment (coffee-script, package.yaml, other 
>>> cool 
>>> > stuff), but other people who will install a package from registry 
>>> should 
>>> > have as little issues with it as possible, which means compiled to 
>>> > javascript modules and a package.json format. 
>>> > 
>>> > 
>>> > 
>>> > On Sunday, June 23, 2013 10:32:19 PM UTC+4, José F. Romaniello wrote: 
>>> >> 
>>> >> Do you pack/publish with package.yaml inside? How does that works 
>>> with the 
>>> >> npm service? 
>>> >> 
>>> >> El 23/06/2013 13:12, "Alex Kocharin" <[email protected]> escribió: 
>>> >>> 
>>> >>> Hi guys, 
>>> >>> 
>>> >>> TL;DR: I developed a package that monkey-patches npm to work with 
>>> >>> package.yaml files without any json ever written to a disk. Hope it 
>>> will be 
>>> >>> useful. 
>>> >>> 
>>> >>> Published as npm module a month ago: https://npmjs.org/package/ynpm 
>>> >>> (github: 
>>> >>> https://github.com/rlidwka/**ynpm<https://github.com/rlidwka/ynpm>), 
>>> >>> and I think it's ready to use 
>>> >>> now. 
>>> >>> 
>>> >>> So, 6 months ago I asked in the mailing list about how to place 
>>> comments 
>>> >>> in package.json files ( 
>>> >>> https://groups.google.com/**forum/?fromgroups#!topic/**
>>> nodejs/NmL7jdeuw0M<https://groups.google.com/forum/?fromgroups#!topic/nodejs/NmL7jdeuw0M>)
>>>  and 
>>> >>> found no good answer for that. So for a long time I used package.js 
>>> and a 
>>> >>> Makefile to generate package.json. Rather ugly solution. 
>>> >>> 
>>> >>> We were developing a large and complex project, and I submitted 
>>> dozens 
>>> >>> pull requests to other packages. But until these PR were merged, I 
>>> needed to 
>>> >>> point these dependencies to my git repositories with these changes 
>>> in place. 
>>> >>> And THAT is why I desperately needed comments. 
>>> >>> 
>>> >>> So anyway... these are fundamental issues with JSON: 
>>> >>> 
>>> >>> 1. JSON have no comments, you can't comment out why did you put some 
>>> >>> dependency, but not the other. 
>>> >>> 2. JSON have no trailing comma. So you can't easily remove an item, 
>>> add 
>>> >>> an item or interchange two arbitrary lines in a list. 
>>> >>> 3. JSON require ugly enquoting both keys and values in object. 
>>> Javascript 
>>> >>> require enquoting values only, and YAML doesn't require quotes in 
>>> most 
>>> >>> cases. 
>>> >>> 
>>> >>> JSON is designed to be written by computers, not humans. Humans 
>>> could 
>>> >>> read it easily, but maintaining JSON is a pain. 
>>> >>> 
>>> >>> Why YAML? Well, I would certainly not use XML. :) Anyway, YAML it's 
>>> >>> easier to read and edit than all other widely known serialization 
>>> formats, 
>>> >>> and it solves all issues described above. I would fully support if 
>>> Isaacs 
>>> >>> returns package.js back to work (see 3y old github issue 
>>> >>> https://github.com/isaacs/npm/**issues/408<https://github.com/isaacs/npm/issues/408>),
>>> >>>  it would be good enough, but it 
>>> >>> doesn't seem to happen. 
>>> >>> 
>>> >>> So, a lot of other people suggested to use YAML. That's the most 
>>> recent 
>>> >>> github issue 
>>> >>> https://github.com/isaacs/npm/**issues/3336<https://github.com/isaacs/npm/issues/3336>,
>>> >>>  but there were 
>>> >>> others. 
>>> >>> 
>>> >>> And there are some existing solutions to do that, for example 
>>> npm-yaml: 
>>> >>> https://npmjs.org/package/npm-**yaml<https://npmjs.org/package/npm-yaml>.
>>> >>>  
>>> But all these solutions just pre-compile 
>>> >>> package.yaml before npm is executed. It's not good enough because 
>>> json 
>>> >>> remains written on the disk, and if npm modifies json, yaml remains 
>>> >>> unmodified. 
>>> >>> 
>>> >>> So, I wrote a wrapper that replaces fs.* calls, so whenever npm 
>>> reads 
>>> >>> package.json file, and if there is a yaml file, we compile and 
>>> return yaml 
>>> >>> contents. If npm writes package.json, we change yaml instead. 
>>> >>> 
>>> >>> I made sure that all npm functionality is working with this new 
>>> approach. 
>>> >>> For example, in order to make `npm version` working I replaced 
>>> >>> execFile("git", ["add", "package.json"]) with an appropriate 
>>> substitute. 
>>> >>> Other features required to replace readdir and file streams, and so 
>>> on. 
>>> >>> 
>>> >>> If something is wrong with this approach or if something breaks 
>>> beyond 
>>> >>> fixing with future npm versions, I'll go for a fork. But as for now 
>>> things 
>>> >>> seem to work out nicely. 
>>> >>> 
>>> >>> PS: to guys who write YAML parsers: could you please write a module 
>>> to 
>>> >>> change one particular node in YAML file without rewriting the entire 
>>> file? 
>>> >>> Because it is the only thing here that ain't very good. I know it 
>>> can't be 
>>> >>> done in a general case, but it doesn't mean we shouldn't try. 
>>> >>> 
>>> >>> Regards, 
>>> >>> alex 
>>> >>> 
>>> >>> -- 
>>> >>> -- 
>>> >>> Job Board: http://jobs.nodejs.org/ 
>>> >>> Posting guidelines: 
>>> >>> https://github.com/joyent/**node/wiki/Mailing-List-**
>>> Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>>  
>>> >>> You received this message because you are subscribed to the Google 
>>> >>> Groups "nodejs" group. 
>>> >>> To post to this group, send email to [email protected] 
>>> >>> 
>>> >>> To unsubscribe from this group, send email to 
>>> >>> [email protected] 
>>> >>> 
>>> >>> For more options, visit this group at 
>>> >>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>> >>>  
>>> >>> 
>>> >>> --- 
>>> >>> You received this message because you are subscribed to the Google 
>>> Groups 
>>> >>> "nodejs" group. 
>>> >>> To unsubscribe from this group and stop receiving emails from it, 
>>> send an 
>>> >>> email to [email protected]. 
>>> >>> 
>>> >>> For more options, visit 
>>> >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>.
>>> >>>  
>>>
>>> >>> 
>>> >>> 
>>> > 
>>> > -- 
>>> > -- 
>>> > Job Board: http://jobs.nodejs.org/ 
>>> > Posting guidelines: 
>>> > https://github.com/joyent/**node/wiki/Mailing-List-**
>>> Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>>>  
>>> > You received this message because you are subscribed to the Google 
>>> > Groups "nodejs" group. 
>>> > To post to this group, send email to [email protected] 
>>> > To unsubscribe from this group, send email to 
>>> > nodejs+un...@**googlegroups.com 
>>> > For more options, visit this group at 
>>> > http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>> >  
>>> > 
>>> > --- 
>>> > You received this message because you are subscribed to the Google 
>>> Groups 
>>> > "nodejs" group. 
>>> > To unsubscribe from this group and stop receiving emails from it, send 
>>> an 
>>> > email to nodejs+un...@**googlegroups.com. 
>>> > For more options, visit 
>>> > https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>.
>>> >  
>>>
>>> > 
>>> > 
>>>
>>  -- 
>> -- 
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines: 
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]<javascript:>
>> To unsubscribe from this group, send email to
>> [email protected] <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>  
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "nodejs" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>  
>>  
>>
>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to