Contributing to Ionic
Thanks for the interest in contributing to Ionic Framework!
Contributing Etiquette
Please see the Contributor Code of Conduct for information on the rules of conduct.
Creating an Issue
-
If you have a question about using the framework, please ask on the Ionic Forum.
-
It is required that you clearly describe the steps necessary to reproduce the issue you are running into. Although we would love to help our users as much as possible, diagnosing issues without clear reproduction steps is extremely time-consuming and simply not sustainable.
-
The issue list of the Ionic repository is exclusively for bug reports and feature requests. Non-conforming issues will be closed immediately.
-
Issues with no clear steps to reproduce will not be triaged. If an issue is labeled with "needs: reply" and receives no further replies from the author of the issue for more than 14 days, it will be closed.
-
If you think you have found a bug, or have a new feature idea, please start by making sure it hasn't already been reported. You can search through existing issues to see if there is a similar one reported. Include closed issues as it may have been closed with a solution.
-
Next, create a new issue that thoroughly explains the problem. Please fill out the populated issue form before submitting the issue.
Creating a Good Code Reproduction
What is a Code Reproduction?
A code reproduction is a small application that is built to demonstrate a particular issue. The code reproduction should contain the minimum amount of code needed to recreate the issue and should focus on a single issue.
Why Should You Create a Reproduction?
A code reproduction of the issue you are experiencing helps us better isolate the cause of the problem. This is an important first step to getting any bug fixed!
Without a reliable code reproduction, it is unlikely we will be able to resolve the issue, leading to it being closed. In other words, creating a code reproduction of the issue helps us help you.
How to Create a Reproduction
- Create a new Ionic application using one of our starter templates. The
blankstarter application is a great choice for this. You can create one using the following Ionic CLI command:ionic start myApp blank - Add the minimum amount of code needed to recreate the issue you are experiencing. Do not include anything that is not required to reproduce the issue. This includes any 3rd party plugins you have installed.
- Publish the application on GitHub and include a link to it when creating an issue.
- Be sure to include steps to reproduce the issue. These steps should be clear and easy to follow.
Benefits of Creating a Reproduction
- Uses the latest version of Ionic: By creating a new Ionic application, you are ensuring that you are testing against the latest version of the framework. Sometimes the issues you are experiencing have already been resolved in a newer version of the framework!
- Minimal surface area: By removing code that is not needed in order to reproduce the issue, it makes it easier to identify the cause of the issue.
- No secret code needed: Creating a minimal reproduction of the issue prevents you from having to publish any proprietary code used in your project.
- Get help fixing the issue: If we can reliably reproduce an issue, there is a good chance we will be able to address it.
Creating a Pull Request
-
We appreciate you taking the time to contribute! Before submitting a pull request, we ask that you please create an issue that explains the bug or feature request and let us know that you plan on creating a pull request for it. If an issue already exists, please comment on that issue letting us know you would like to submit a pull request for it. This helps us to keep track of the pull request and make sure there isn't duplicated effort.
-
Looking for an issue to fix? Make sure to look through our issues with the help wanted label!
Setup
- Download the installer for the LTS version of Node.js. This is the best way to also install npm.
- Fork the Ionic repository.
- Clone your fork.
- Create a new branch from master for your change.
- Navigate into the directory of the package you wish to modify (core, angular, etc.).
- Run
npm installto install dependencies for this package. - Follow the steps for the specific package below.