misp-book/CONTRIBUTING.md

6.8 KiB
Raw Permalink Blame History

Contributing to MISP Book

Most of MISP's documentation pages are stored as plain text files in this dedicated misp-book repository. MISP Book is generic documentation for MISP including usage, API documentation, best practices, and specific configuration settings. The installation guides are held in the INSTALL and download sections of the core and website repositories respectively. By cloning and regularly pulling from this repo, users can maintain their own up-to-date offline copy of MISP documentation rather than relying solely on the web.

MISP book is generated in HTML, PDF, epub, and mobi using Honkit, which is a framework to write documentation in Markdown format. The documentation is regularly published on misp-project.org and circl.lu website.

Documentation guidelines

The documentation is a community effort. Volunteers work hard trying to keep everything accurate and comprehensive. If you notice a problem or some way it can be improved, please edit the documentation.

All pull requests against MISP must pass review before being merged. This process is designed to ensure that contributed text is accurate and non-malicious. Once a pull request passes review, the documentation maintainer then verifies that the pull request is mechanically sound (no merge conflicts or broken links). If so, the documentation maintainer then merges the pull request.

If you have a question about something you read in the documentation, you may ask into the Gitter Support channel or open an issue for it. If you see that something in the documentation should be fixed or improved, please contribute the change yourself.

How to make a contribution

Editing the documentation is easy, so if you see that a change should be made, please contribute it!

A few notes before we get started:

  • Every documentation change will be reviewed before its accepted. This allows us to maintain quality control and protect our users.
  • If your contribution would take a lot of time, please file an issue for it first so that we can make sure were on the same page before significant work begins. This ensures you do not spend time and effort on a contribution that we cant accept.

Thanks to GitHubs interface, you can edit MISP's documentation even if you dont know git at all. All you need to do to contribute is to fork and clone the misp-book repo, make your changes, then submit a pull request). You can also open issues if you find any errors or propose changes.

GitHub workflows (used for automatic integration) is included in misp-book and the book generation is tested at each commit. When you make a pull request, verify if your changes affect the result of the tests. If the checks fail, review the output at Travis and make fixes where possible.

For native English speakers

Most MISP developers are not native English speakers so you're more than welcome to correct or improve our English. For this, you can either submit a pull request or use another way that suits you better to share your improvements with us.

Organizational guidelines

  • Do not duplicate documentation. Duplicating documentation is almost always a bad idea. There are many reasons for this. The main one is that almost all documentation has to be updated at some point. When similar documentation appears in more than one place, it is very easy for it to get updated in one place but not the others (perhaps because the person updating it doesnt realize its in more than one place). Such traps are often more harmful than if the documentation never existed in the first place. The solution is to link to existing documentation rather than duplicating it. There are some exceptions to this policy (e.g., information that is certain not to change for a very long time), but they are rare.
  • We maintain only one set of documentation for MISP. We do not maintain a different set of documentation for each version of MISP. Our single set of MISP documentation is updated on a continual, rolling basis. Our first priority is to document all current, stable releases of MISP. Our second priority is to document the next, upcoming release (if any) that is currently in the beta or release candidate stage.
  • Instructions on how to install MISP are held in INSTALL and download sections of the core and website repositories respectively.

Style guidelines

  • Familiarize yourself with the terms defined in the glossary. Use these terms consistently and accurately throughout your writing.
  • The language in this book is American English. All the screenshots and examples are in English.

Markdown conventions

All the documentation is written in Markdown for maximum accessibility. When making contributions, please try to observe the following style conventions:

  • Use spaces instead of tabs.
  • To enable offline browsing, always use relative (rather than absolute) links, e.g., misp/automation/ instead of https://www.circl.lu/doc/misp/automation/. Examples of exceptions:
    • URLs that appear inside code blocks (e.g., in comments and code snippets)
    • Files like README.md and CONTRIBUTING.md
  • Insert a newline at, and only at, the end of each sentence. This practice results in one sentence per line, which is most appropriate for sources that consist primarily of natural language text. It results in the most useful diffs and facilitates translation into other languages while mostly preserving source readability.
  • If appropriate, make numerals in numbered lists match between Markdown source and HTML output. If a user is required to read the Markdown source directly, this will make it easier to follow, e.g., numbered steps in a set of instructions.
  • Use Atx-style headings: # h1, ## h2, ### h3, etc.
  • When writing code blocks, use syntax highlighting where possible and use [...] for anything omitted. (This is a great source for learning about Markdown.)

Git conventions

Please try to write good commit messages, according to the instructions in our wiki.

Translate MISP Book

You can help us make MISP Book available in your language. See MISP and Internationalization (i18n).