|
| 1 | +# Contributing to Nylo |
| 2 | + |
| 3 | +--- |
| 4 | + |
| 5 | +<a name="section-1"></a> |
| 6 | +- [Introduction](#introduction "Introduction to contributing") |
| 7 | +- [Getting Started](#getting-started "Getting started with contributions") |
| 8 | +- [Development Guidelines](#development-guidelines "Development guidelines") |
| 9 | +- [Submitting Changes](#submitting-changes "How to submit changes") |
| 10 | +- [Reporting Issues](#reporting-issues "How to report issues") |
| 11 | + |
| 12 | +<a name="introduction"></a> |
| 13 | +<br> |
| 14 | + |
| 15 | +## Introduction |
| 16 | + |
| 17 | +Thank you for considering contributing to Nylo! |
| 18 | + |
| 19 | +This guide will help you understand how you can contribute to the micro-framework, no matter your experience level. |
| 20 | + |
| 21 | +Whether you're a beginner or an experienced developer, your contributions are valuable to the Nylo community. |
| 22 | + |
| 23 | +<a name="getting-started"></a> |
| 24 | +<br> |
| 25 | + |
| 26 | +## Getting Started |
| 27 | + |
| 28 | +Before you begin contributing to Nylo, please ensure you have the following: |
| 29 | + |
| 30 | +1. Fork the Nylo repositories |
| 31 | + - <a href="https://github.com/nylo-core/nylo/fork" target="_BLANK">Nylo</a> |
| 32 | + - <a href="https://github.com/nylo-core/framework/fork" target="_BLANK">Framework</a> |
| 33 | + - <a href="https://github.com/nylo-core/support/fork" target="_BLANK">Support</a> |
| 34 | +2. Clone your forks locally |
| 35 | + - `git clone https://github.com/nylo-core/nylo` |
| 36 | + - `git clone https://github.com/nylo-core/framework` |
| 37 | + - `git clone https://github.com/nylo-core/support` |
| 38 | +3. Open the repositories in your preferred code editor |
| 39 | + |
| 40 | +## Set up your development environment |
| 41 | + |
| 42 | +Open the <a href="https://github.com/nylo-core/nylo" target="_BLANK">Nylo</a> repository in your code editor and add the following: |
| 43 | + |
| 44 | +**pubspec.yaml** |
| 45 | +``` yaml |
| 46 | +... |
| 47 | +dependency_overrides: |
| 48 | + nylo_framework: |
| 49 | + path: ../framework # Path to your local framework repository |
| 50 | + nylo_support: |
| 51 | + path: ../support # Path to your local support repository |
| 52 | +``` |
| 53 | +
|
| 54 | +Next, run `flutter pub get` to install the dependencies. |
| 55 | + |
| 56 | +Now, you should be able to run the Nylo project with your local framework and support repositories. |
| 57 | + |
| 58 | +Any changes you make to the framework or support repositories will be reflected in the Nylo project. |
| 59 | + |
| 60 | +<a name="submitting-changes"></a> |
| 61 | +<br> |
| 62 | + |
| 63 | +### Submitting Changes |
| 64 | + |
| 65 | +If you have an idea, it's best to discuss it with the community first. |
| 66 | + |
| 67 | +You can do this by creating a new discussion on GitHub <a href="https://github.com/nylo-core/nylo/discussions" target="_BLANK">here</a>. |
| 68 | + |
| 69 | +Once you have a clear idea of the feature you want to add, you can start working on it. |
| 70 | + |
| 71 | +``` bash |
| 72 | +# Create a new branch |
| 73 | +git checkout -b feature/your-feature-name |
| 74 | +``` |
| 75 | + |
| 76 | +Once you've completed the feature, commit your changes and push them to your fork. |
| 77 | + |
| 78 | +``` bash |
| 79 | +# Commit your changes |
| 80 | +git commit -m "Add: Your feature description" |
| 81 | +
|
| 82 | +# Push your changes |
| 83 | +git push origin feature/your-feature-name |
| 84 | +``` |
| 85 | + |
| 86 | +Finally, submit a pull request into the repository you forked from. |
| 87 | + |
| 88 | + |
| 89 | +<a name="development-guidelines"></a> |
| 90 | +<br> |
| 91 | + |
| 92 | +## Development Guidelines |
| 93 | + |
| 94 | +When contributing to Nylo, please follow these guidelines: |
| 95 | + |
| 96 | +### Code Style |
| 97 | + |
| 98 | +- Follow the official <a href="https://dart.dev/guides/language/effective-dart/style" target="_BLANK">Dart style guide</a> |
| 99 | +- Use meaningful variable and function names |
| 100 | +- Write clear comments for complex logic |
| 101 | +- Include documentation for public APIs |
| 102 | +- Keep code modular and maintainable |
| 103 | + |
| 104 | +### Testing |
| 105 | + |
| 106 | +Before submitting your changes: |
| 107 | + |
| 108 | +- Verify backwards compatibility |
| 109 | +- Check for any breaking changes |
| 110 | +- Test your changes on IOS and Android devices |
| 111 | + |
| 112 | +### Pull Request Guidelines |
| 113 | + |
| 114 | +- Provide a clear description of your changes |
| 115 | +- Reference any related issues |
| 116 | +- Include screenshots or code examples if applicable |
| 117 | +- Ensure your PR addresses only one concern |
| 118 | +- Keep changes focused and atomic |
| 119 | + |
| 120 | +<a name="reporting-issues"></a> |
| 121 | +<br> |
| 122 | + |
| 123 | +## Reporting Issues |
| 124 | + |
| 125 | +When reporting issues: |
| 126 | + |
| 127 | +1. Use the GitHub issue tracker |
| 128 | +2. Check if the issue already exists |
| 129 | +3. Include detailed reproduction steps |
| 130 | +4. Provide system information: |
| 131 | + - Flutter version `flutter --version` |
| 132 | + - Nylo framework version from pubspec.yaml, e.g. `nylo_framework: ^6.5.0` |
| 133 | + - Device information (if relevant) |
| 134 | + |
| 135 | +Example of a good issue report: |
| 136 | +``` markdown |
| 137 | +### Description |
| 138 | +Brief description of the issue |
| 139 | +
|
| 140 | +### Steps to Reproduce |
| 141 | +1. Step one |
| 142 | +2. Step two |
| 143 | +3. Step three |
| 144 | +
|
| 145 | +### Expected Behavior |
| 146 | +What should happen |
| 147 | +
|
| 148 | +### Actual Behavior |
| 149 | +What actually happens |
| 150 | +
|
| 151 | +### Environment |
| 152 | +- Flutter: 3.x.x |
| 153 | +- Nylo: x.x.x |
| 154 | +- OS: macOS/Windows/Linux |
| 155 | +- Device: iPhone 13/Pixel 6 (if applicable) |
| 156 | +``` |
0 commit comments