Contributing to Nylo Website
Introduction
Thank you for considering contributing to Nylo Website!
This guide will help you understand how to contribute to the micro-framework. Whether you're fixing bugs, adding features, or improving documentation, your contributions are valuable to the Nylo Website community.
Nylo Website is split into three repositories:
| Repository | Purpose |
|---|---|
| nylo | The boilerplate application |
| framework | Core framework classes (nylo_framework) |
| support | Support library with widgets, helpers, utilities (nylo_support) |
Getting Started
Fork the Repositories
Fork the repositories you want to contribute to:
Clone Your Forks
git clone https://github.com/YOUR-USERNAME/nylo
git clone https://github.com/YOUR-USERNAME/framework
git clone https://github.com/YOUR-USERNAME/support
Development Environment
Requirements
Ensure you have the following installed:
| Requirement | Minimum Version |
|---|---|
| Flutter | 3.24.0 or higher |
| Dart SDK | 3.10.7 or higher |
Link Local Packages
Open the Nylo boilerplate in your editor and add dependency overrides to use your local framework and support repositories:
pubspec.yaml
dependency_overrides:
nylo_framework:
path: ../framework # Path to your local framework repository
nylo_support:
path: ../support # Path to your local support repository
Run flutter pub get to install dependencies.
Now changes you make to the framework or support repositories will be reflected in the Nylo boilerplate.
Testing Your Changes
Run the boilerplate app to test your changes:
flutter run
For widget or helper changes, consider adding tests in the appropriate repository.
Development Guidelines
Code Style
- Follow the official Dart style guide
- Use meaningful variable and function names
- Write clear comments for complex logic
- Include documentation for public APIs
- Keep code modular and maintainable
Documentation
When adding new features:
- Add dartdoc comments to public classes and methods
- Update the relevant documentation files if needed
- Include code examples in documentation
Testing
Before submitting changes:
- Test on both iOS and Android devices/simulators
- Verify backwards compatibility where possible
- Document any breaking changes clearly
- Run existing tests to ensure nothing is broken
Submitting Changes
Discuss First
For new features, it's best to discuss with the community first:
Create a Branch
git checkout -b feature/your-feature-name
Use descriptive branch names:
feature/collection-view-paginationfix/storage-null-handlingdocs/update-networking-guide
Commit Your Changes
git add .
git commit -m "Add: Your feature description"
Use clear commit messages:
Add: CollectionView grid mode supportFix: NyStorage returning null on first readUpdate: Improve router documentation
Push and Create Pull Request
git push origin feature/your-feature-name
Then create a pull request on GitHub.
Pull Request Guidelines
- Provide a clear description of your changes
- Reference any related issues
- Include screenshots or code examples if applicable
- Ensure your PR addresses only one concern
- Keep changes focused and atomic
Reporting Issues
Before Reporting
- Check if the issue already exists on GitHub
- Ensure you're using the latest version
- Try to reproduce the issue in a fresh project
Where to Report
Report issues on the appropriate repository:
- Boilerplate issues: nylo/issues
- Framework issues: framework/issues
- Support library issues: support/issues
Issue Template
Provide detailed information:
### Description
Brief description of the issue
### Steps to Reproduce
1. Step one
2. Step two
3. Step three
### Expected Behavior
What should happen
### Actual Behavior
What actually happens
### Environment
- Flutter: 3.24.x
- Dart SDK: 3.10.x
- nylo_framework: ^7.0.0
- OS: macOS/Windows/Linux
- Device: iPhone 15/Pixel 8 (if applicable)
### Code Example
```dart
// Minimal code to reproduce the issue
### Getting Version Information
``` bash
# Flutter and Dart versions
flutter --version
# Check your pubspec.yaml for Nylo version
# nylo_framework: ^7.0.0