diff --git a/core/CONTRIBUTING.md b/core/CONTRIBUTING.md new file mode 100644 index 00000000000..e27af03bc81 --- /dev/null +++ b/core/CONTRIBUTING.md @@ -0,0 +1,121 @@ +# Contribution guide + +## Contribute to Ionic Core + +Ionic Core is the fundation of Ionic v4. It's based in [Stencil](https://stenciljs.com) and consist in a set of web components a long of JS and CSS utils. + + +### Installing dependencies + +Before you can build ionic, we assume the following list of software is already installed in your system + +- Git +- Node 8 or higher +- Npm 6.0 or higher + + +### Fork repository + +In order to contributo to Ionic, you must have a github account so you can push code and create a new Pull Request (PR). + +Once you are all setup, following the Github's guide of how to fork a repository: https://guides.github.com/activities/forking/ + + +### Build Ionic Core + +```bash +# Clone your Github repository: +git clone https://github.com//ionic.git + +# Go to the core directory: +cd ionic/core + +# Install npm dependencies +npm install + +# Run Ionic dev server +npm run dev +``` + +### Development Workflow + +#### 1. Run Dev Server + +```bash +# Move to the core folder +cd core + +# Run dev server +npm run dev +``` + +You should be able to navigate to `http://localhost:3333` which will look like a file browser. + +E2E tests are located inside the `src/component` folder, in the following way: `http://localhost:3333/src/components/{COMPONENT}/test/` + + +**Path examples:** + +- ActionSheet basic test: http://localhost:3333/src/components/action-sheet/test/basic +- Nav basic test: http://localhost:3333/src/components/nav/test/basic +- Button basic test: +http://localhost:3333/src/components/button/test/basic + + +**IMPORTANT** + +Leave the dev server running in the background while you make changes. The dev server listen for changes and automatically recompile Ionic for you. + + + +#### 2. Open `core` folder in your IDE + +Components implementations live inside the `core/src/components` folder. + +You can find each ionic component inside their directory. + + +#### 3. Run test suite + +Before commiting your changes make sure tests are passing: + +``` +npm run validate +``` + +#### 4. Create a branch and commit + +```bash +# Create a git branch +git checkout -b my-improvement + +# Add changes +git add . + +# Create commit +git commit -m "fix(component): message" +``` + +Create a PR: +https://guides.github.com/activities/forking/ + + +### Summary + +```bash +# Clone repo +git clone git@github.com:ionic-team/ionic.git + +# Move to ionic/core folder +cd ionic/core + +# Install npm dependencies +npm i + +# Run dev server +npm run dev + +# Run test suite +npm run validate +``` + diff --git a/core/README.md b/core/README.md index e45cf7504f3..4692a6c6bde 100644 --- a/core/README.md +++ b/core/README.md @@ -39,6 +39,10 @@ The `@ionic/core` package can by used in simple HTML, or by vanilla JavaScript w * [@ionic/angular](https://www.npmjs.com/package/@ionic/angular) +## How to contribute + +[Check out the CONTRIBUTE guide](CONTRIBUTING.md) + ## Related * [Ionic Documentation](https://ionicframework.com/docs/)