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 ), 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 ) 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 ), 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 , but there were
>>> others.
>>>
>>> And there are some existing solutions to do that, for example 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
>>> 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.
>>>
>>>
>
> --
> --
> 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.
>
>

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