Skip to content

Latest commit

 

History

History
140 lines (85 loc) · 6.19 KB

CONTRIBUTING.md

File metadata and controls

140 lines (85 loc) · 6.19 KB

What should I know before I get started?

Code of Conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to support@mjml.io.

Packages

MJML is made up of different packages, which make it very modular but might also make it hard for you to know how it is organized.

There are 3 types of packages:

  • mjml-core: the engine that renders mjml components

  • mjml-cli: the client, base on the mjml-core interface

  • mjml: a standalone client including the standard library of components

  • one standalone package for each component

How Can I Contribute?

Reporting Bugs

Here are the guidelines to help maintainers and the community better understand and solve your issue.

Before Submitting a Bug Report or Enhancement

  • Check the FAQ for a list of common questions and problems

  • Check the documentation for more details on how to use MJML, MJML components, how to create a custom component and more

  • Search issues and pull requests to see if a similar one might have been already asked before

How To Submit A Good Bug Report or Enhancement?

Explain the problem you’re facing and include as many details as you can to help maintainers reproduce the problem:

  • Use a clear and self-explanatory title

  • Provide all the specific information that might be needed to reproduce the problem, such as:

    • How you’re using MJML (whether you’re using the try it live, running it locally, using the app, or any other way)

    • The version of MJML you’re using

    • The MJML code you used to encounter this bug, as copy/pasteable snippets, using Markdown Code Blocks

    • The name and version of the email client(s) on which a bug is encountered

    • Screenshots of the issue / behaviour before enhancement on the given email clients

    • Explain why what you encountered is a bug / how your enhancement would improve MJML: what did you expect to see and why?

  • If you want MJML to support a new styling attribute, **add screenshots **from Litmus or Email On Acid showing that this attribute is supported for email clients supported by MJML

Template For Submitting Bug Reports

  [Short description of problem here]

  **Reproduction Steps:**

  1. [First Step]
  2. [Second Step]
  3. [Other Steps...]

  **Expected behavior:**

  [Describe expected behavior here]

  **Observed behavior:**

  [Describe observed behavior here]

  **Screenshots and GIFs**

  ![Screenshots and GIFs which follow reproduction steps to demonstrate the problem](url)

  **MJML version:**

  [Enter MJML version here]

  **Email clients the bug is seen on:**

  [Enter email clients names and versions here]

Your First Code Contribution

If you’re not sure how you can contribute to MJML, start looking for the beginner and help-wanted labels.

How to Submit A Good Pull Request

  • Document your code
  • Update the documentation (example: table of a component’s supported attributes if you add an attribute to this component)
  • Test your pull request locally
  • Include screenshots from Litmus or Email On Acid showing that your feature is supported for email clients supported by MJML
  • Provide the MJML code you used to test locally and on the screenshots
  • We suggest following the React Styleguide by Airbnb

Additional Notes

Discussions vs Bugs & Enhancements

Tags categories

Type of issue and issue state

Type of Issue and Issue State

Label name Description
Feature request Feature requests or improvements
Bug Confirmed bugs or reports likely to be bugs
Community-help-wanted The MJML team would appreciate help from the community in implementing these issues
Beginner Less complex issues that would be good first issues to work on for users who want to contribute to MJML
More information needed We need more information to solve this issue (see How to submit a good bug report or enhancement)
Needs reproduction Likely bugs we couldn’t reproduce
Duplicate Issues that are duplicates of other issues
Invalid Issues which aren’t valid (e.g user errors)
Tooling idea Feature requests that might be good candidates for tools around MJML instead of extending MJML

Topic categories

Label name Description
Not rendering the engine won’t render a template without a valid reason
General rendering issue the HTML rendered is not responsive while respecting MJML’s best practices
Email client name The HTML rendered is not responsive for a specific email client
CLI issues related to the MJML Command Line Interface
Documentation issues related to the MJML documentation

Pull Requests labels

Label name Description
Work in progress PR which are still being worked on, more changes will follow
Needs review Pull requests which need code review and approval
Under review PR being reviewed
Requires changes PR which need to be updated based on review comments and then reviewed again
Needs testing PRs which need testing on Litmus or Email On Acid