zcei / standard-readme

:star2: README Standard Style — One Style to Rule Them All
MIT License
57 stars 3 forks source link

[Draft] Outline of README #1

Open zcei opened 9 years ago

zcei commented 9 years ago

Updated: Wed Jun 03 2015 23:50:34 GMT+0200 (CEST) (1433368234571)

standard-readme

Constraints

joeybaker commented 9 years ago

I'd add a required block about how to develop

Developing

tunnckoCore commented 9 years ago

required block

It would be better to be optional block. git clone && npm i is trivial and is no need. For example I set npm test in the install block right after the npm i pkgname command.

And vote License to be moved to "optional blocks", cuz it looks weird to have:

## License
MIT

And because it is pretty simple thing like license - mit it make more sense to be badge. Furthermore now when npm applied SPDX identifiers.

mattdesl commented 9 years ago

Having a License at the bottom is pretty important. We are constantly dealing with legal issues -- big companies are still not very comfortable with the idea of hundreds of constantly shifting modules, any of which might have a potentially damaging license. The more visible the license is to non-technical people, the better.

How about Example before Install? I feel like most people only install a module once they've determined it suits their needs (i.e. looked at an example).

I also feel like API documentation should be required. In my readmes I just call it "Usage" and have sub-headers for API or CLI (or both) depending on the module.

zcei commented 9 years ago

I don't see the point in having Development / Developing a requirement.

The repetition for Installationis justified in my eyes, as sometimes it's not clear whether to install it globally, or you just want to c&p it out from there. (Hmm, would be quite a nice Chrome Plugin: Button next to install line to copy to clipboard)

But if you want to do further development, it often is just plain coding (git clone && npm i), without any differences like global or not.

As soon as it requires some more work than this, it obviously should be mentioned.

Development

Contribution

API as a requirement is okay for me, as long as CLI options are also mentioned in this block (especially for projects without any real API to code against)

As @mattdesl mentioned: for legal issues it's good to have it in the readme, but I fancy the idea of linking it in the Badges block. @tunnckoCore Shields.io is from the community, so for me making them mandatory isn't a real "vendor lock", wdyt?

Then the constraint is to have a badge linking to LICENSE file, or a block at the bottom of readme.

ungoldman commented 9 years ago

I think a required short description (one sentence, < 50 chars if possible, like package.json description field) and optional long description (more detail, context, links as necessary, preferably 1-2 paragraphs max) would make sense. It's nice to get a decent explanation of what the package does beyond a very terse description towards the top of a README.md.


package-name

Short description.

Travis Build Badge js-standard-style

Long description latte disrupt sticky note long shadow actionable insight big data pivot pair programming venture capital integrate SpaceTeam thinker-maker-doer. Minimum viable product engaging long shadow intuitive minimum viable product venture capital 360 campaign agile personas disrupt.

Install

npm install this

Usage

var etc = require('you-get-it')
etc('...')
tunnckoCore commented 9 years ago

The more visible the license is to non-technical people, the better.

it would be in the most visible place of the repo page, lol - next to the name of the repo, in first line of the readme. For me it enough visible and noticeable, plus it is link to license file with more expanded license text. There's absolutely no difference between to be at the bottom as heading and simple word "MIT" - whole new heading for one word and no link? nah. And why at the bottom? You're forced to scroll whole page to see the two words "LICENSE MIT"? nah, not make sense for me. If it is so important it is better to be at the front of the battleground (at the top of readme) and in most visible place of the page.

but I fancy the idea of linking it in the Badges block

I thought that when i thinking the style of my new repos style, but didn't like the idea to have whole new section and adding more pixels before the actual reason that users is on that page - usage, example, api etc. So yea, I calculate that I should place only most most important at heading like badges for version and license, then the badges for services - which must be maximum 5 to not continue to next line.

Hmm, would be quite a nice Chrome Plugin: Button next to install line to copy to clipboard

cool idea :+1:

And one more thing. The npm's step to apply standardized SPDX identifiers is cool and we should follow that step. And because license identifiers is standardized they are the best candidate for badges.

@ngoldman :+1:

mattdesl commented 9 years ago

it would be in the most visible place of the repo page, lol - next to the name of the repo, in first line of the readme.

Well, a couple issues:

I think it would be best to ask a few legal people (non-technical) and get their take on it, since they are the ones reviewing and clearing libraries.

ungoldman commented 9 years ago

@mattdesl++ ## License\n\n[LICENSE-TYPE](link-to-license-file) at the bottom of the file is definitely a broadly used standard that I expect to see in a good readme. I don't think it makes sense to replace that with a badge.

zcei commented 9 years ago

@ngoldman isn't this the repository short description?

@tunnckoCore I'm up for having a required license & version badge. Not quite sure about the version though. It's commonly handled by the Releases section, but still nice to have a direct look at it. Definitely license badge at first.

Second optional line for services as you call them totally makes sense, as they differ a lot, no assumptions should be taken here. This should also avoid confusing non-techies, the standard is then to look at the top two badges telling you whether the lib is in a legal context that you can use it, and mature enough for you.

There should be an option to have both in the same line, that's why license is always first. (Also for a cleaner look)

-1 for omitting the License section, just because we use a badge at top. It's just for a first glance, and some people might still want to have some short license text in the readme. It's at the very bottom of the file, so it won't hurt anyone. I'm more for avoiding possible legal issues (for sure it wasn't put in there for sake of putting it in) @mattdesl let's see if we find some ;)

LICENSE file should be at the same directory level as README.md and the existence should be checked, if a badge (or ## License\n\n[LICENSE-TYPE](link-to-license-file)) links to it.

tunnckoCore commented 9 years ago

next to a bunch of technical badges like build status, npm downloads, etc.

it won't be there, dont look me that I set there next to license badge the npm badge - i have some habits and sense for colors and love symmetric.

which a non-technical person would probably not understand and/or glance over

why? it is same text but as image, there's no matter.

zcei commented 9 years ago

Other point of view: The readme should be readable without GitHub, thus we shouldn't rely on badges at all.

tunnckoCore commented 9 years ago

The readme should be readable without GitHub, thus we shouldn't rely on badges at all.

agreed.

I'm up for having a required license & version badge.

Im for that they both be optional.

it's not clear you can click it to open the LICENSE.md file

it is link at the listing files of the repo lol, and for that these files are uppercased and always at the top of the list.

zcei commented 9 years ago

The more I think about it, the more I agree with my last comment. It definitely should be optional, just the position is defined if there are badges.

mattdesl commented 9 years ago

ping @kemitchell since he may have some thoughts on how some of the legal / non-technical folk might want to see a "license" field.

yoshuawuyts commented 9 years ago

I think that the @zcei's initial post is a good target for a first product, with the addition of API being made a requirement according to @mattdesl's suggestion.

There are probably a bunch of optional sections (such as events) that could use some formalization, but I suggest we focus on the core sections first. As it wasn't mentioned before, I'll put it out there: I think standard-readme should ignore sections it doesn't recognize, allowing users to add their own where they see fit.

tunnckoCore commented 9 years ago

This should also avoid confusing non-techies, the standard is then to look at the top two badges telling you whether the lib is in a legal context that you can use it, and mature enough for you.

exactly. it is the same to me for versions.

-1 for omitting the License section, just because we use a badge at top.

im not saying to restrict people to having it, lol - just to be optional and not throw if it not exists.

and some people might still want to have some short license text in the readme.

there's no reason to have license text at the readme, when you can just focus the license file on the moment when you visit the page and click on it if you want to read it. There's no sense to do needless clicks, scrolling, having "short license text at the bottom" and etc when you have what you need and it is on focus of your eyes from the moment you visit the page.

If you are in the page to search license or you are legal guy your first thing to think is to look the list of files of the repo, then package.json, then anything else - badge and bottom of the readme as last instance.

yoshuawuyts commented 9 years ago

@tunnckoCore I don't like calling people out, but with 10/23 posts on the thread I feel like you're generating a lot of noise. Can you please consolidate your comments to keep the conversation focused? Thanks!

zcei commented 9 years ago

Okay:

Other optional blocks can be proposed afterwards - I want to have a base consensus first!

Can everyone agree to this?

tunnckoCore commented 9 years ago

As it wasn't mentioned before, I'll put it out there: I think standard-readme should ignore sections it doesn't recognize, allowing users to add their own where they see fit.

:+1:

I feel like you're generating a lot of noise.

Oh my god... noise. We commenting, we are here to discuss.

RodrigoEspinosa commented 9 years ago

I'm thinking about images or gifs to show an application usage, as this example.

zcei commented 9 years ago

@RodrigoEspinosa: actually it's at the same syntactical position as the badges would be :D So there is no problem in having them there.

RodrigoEspinosa commented 9 years ago

@zcei that's ok then, I'm totally up for this standard :racehorse:

yoshuawuyts commented 9 years ago

@zcei

usage: if CLI it's the most common call to it

I assume it'll be called usage regardless if it's a cli, right?

zcei commented 9 years ago

@yoshuawuyts sure :)

tunnckoCore commented 9 years ago

I'm thinking about images or gifs to show an application usage, as this example.

I love when see it somewhere, but there's some modules/repos/libs/projects/packages that cant be displayed as gifs. That's why @yoshuawuyts is right, we should concentrate on the core.

Can everyone agree to this?

yep, except required license heading (block/section).

yoshuawuyts commented 9 years ago

@zcei Cool, +1 on the proposal.

edit: maybe update the opening post to reflect the latest proposal?

zcei commented 9 years ago

@yoshuawuyts did so.

Good work all :+1:

Will look into the markdown linting stuff tomorrow. Someone already started this? Let me know in case you want collaborator access

yoshuawuyts commented 9 years ago

@zcei Neat!

I've done markdown parsing with marked in mdjson, it might serve as a good reference implementation. Someone suggested using mdast in another thread though, it definitely looks worth checking out.

junosuarez commented 9 years ago

Here's what @writethedocs has to say about the rough "what to write" outline of a readme http://docs.writethedocs.org/writing/beginners-guide-to-docs/#what-to-write

wooorm commented 9 years ago

I really think mdast to be a good markdown listing tool. Then again, I'm the author ;)

in my defence, mdast has a lot of features, such as a warning interface built-in, which will require less boilerplate for a markdown/readme validator.

Regarding linting itself, I'm almost done with a markdown validator. which does similar things to standard-readme, but focuses more on syntax and less on semantics.

It's currently a private repo but I'd be glad to add anyone who wants to take a peek as a collaborator.

zcei commented 9 years ago

@wooorm For sure I'd like to have a look at it. I'm sure it will help a lot!

Also it's nice to have the owner of the used lib involved in the discussion here, so I'll give mdast a try. Weather will be awesome here, but I try to get a first draft this weekend. Stay tuned!

caspervonb commented 9 years ago

Documentation section, links to reference manuals (internal, external or wiki etc)

zcei commented 9 years ago

Wanted to post a little update:

Together with @wooorm s superb mdast-lint I'll try to build it as an external rule. A bit like standard is doing with eslint.

I opened a ticket and hope to get my hands dirty this evening, as I'm having a little pre-battlehack sit-in which hopefully results in hacking.

donaldjarmstrong commented 9 years ago

+1