tldr/CONTRIBUTING.md

4.8 KiB

Contributing

Gitter chat Merged PRs Issue stats GitHub contributors CLA assistant license

Contributions are most welcome! All tldr pages are stored in Markdown right here on GitHub. Just open an issue or send a pull request and we'll incorporate it as soon as possible. To get started, please sign the Contributor License Agreement.

Note: when submitting a new command, don't forget to check if there's already a pull request in progress for it.

Guidelines

The basic format of a tldr page is a set of concrete usage examples. Here are a few guidelines to get started:

  1. Try to keep pages at around 5 examples. Pages can be longer if needed, but don't exceed 8 examples. Remember, it's OK if the page doesn't cover everything; that's what man is for.
  2. When in doubt, keep new command-line users in mind. Err on the side of clarity rather than terseness. For example, commands that require sudo should include it directly in the examples.
  3. Try to incorporate the spelled-out version of single-letter options in the example's description. The goal is to allow people to understand the syntax of the commands, not just memorize it.
  4. Introduce options gradually, starting with the simplest command invocations, and using more complex examples progressively.
  5. Focus on details specific to the command, and avoid explaining general UNIX concepts that could apply to any command (ex: relative/absolute paths, glob patterns/wildcards, special character escaping...).

These are all guidelines, not strict rules. Use proper judgement, keeping simplicity and user-friendliness as the top priority.

When in doubt, have a look at a few existing pages :).

Markdown format

As a quick reference, the format of each page should match the following template:

# command-name

> Short, snappy description.
> Preferably one line; two are acceptable if necessary.

- Example description:

`command -opt1 -opt2 -arg1 {{arg_value}}`

- Example description:

`command -opt1 -opt2`

For more detailed page formatting guidelines, refer to the style guide.

Submitting a pull request

For submitting changes, you can use whatever workflow you're more comfortable with.

Using Github's web interface

The easiest way to submit a change is to just edit the page directly on the Github interface. Check out the step-by-step instructions (with screenshots) on Github Help.

Using the command line

Alternatively, you can do most of the process using the command line:

  • fork the repository on the github web interface

  • clone your fork locally:
    git clone https://github.com/{{your_username}}/tldr.git && cd tldr

  • create a feature branch, e.g. named after the command you plan to edit:
    git checkout -b {{branch_name}}

  • make your changes (edit existing files or create a new one)

  • commit the changes:
    git commit --all -m "{{commit_message}}"

  • push to your fork:
    git push origin {{branch_name}}

  • go to the github page for your fork and click the green pull request button.

Please send only related changes in the same pull request. Typically a pull request will include changes in a single file.

Commit message

For the commit message, use the following format:

<command>: type of change

Examples:

  • ls: add page
  • cat: fix typo
  • git-push: add --force example

Licensing

tldr is licensed under the MIT license.

Any contributions to this project are governed by the Contributor License Agreement.