Merge pull request #1304 from leokhoa/copilot/fix-1303
Add comprehensive GitHub Copilot instructions with accurate version information for Laragon repository
This commit is contained in:
223
.github/copilot-instructions.md
vendored
Normal file
223
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,223 @@
|
||||
# Laragon - Windows Development Environment
|
||||
|
||||
Laragon is a portable, isolated Windows development environment for PHP, Node.js, and Python. This repository contains the distribution files and configuration templates for Laragon.
|
||||
|
||||
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
|
||||
|
||||
## Critical Limitations
|
||||
|
||||
**WINDOWS-ONLY ENVIRONMENT**: Laragon is exclusively a Windows GUI application. The main executable (laragon.exe) is a Windows PE32+ binary that cannot run on Linux or macOS. Development and testing of the actual Laragon environment requires Windows.
|
||||
|
||||
**NO BUILD PROCESS**: This repository contains pre-built binaries and configuration files. There is no source code compilation, build system, or CI/CD pipeline.
|
||||
|
||||
**NO AUTOMATED TESTS**: This is a packaged application distribution, not a development project with test suites.
|
||||
|
||||
## Working Effectively on Linux/macOS
|
||||
|
||||
While you cannot run Laragon itself, you can:
|
||||
|
||||
### Repository Structure Exploration
|
||||
- View and understand the file structure: `ls -la /path/to/laragon`
|
||||
- Examine configuration files: `find . -name "*.ini" -o -name "*.conf"`
|
||||
- Check included software versions: `grep -r "Version=" usr/laragon.ini`
|
||||
- List bundled tools: `ls -la bin/`
|
||||
|
||||
### Configuration Management
|
||||
- View main configuration: `cat usr/laragon.ini`
|
||||
- Check site templates: `cat usr/sites.conf`
|
||||
- Examine Procfile format: `cat usr/Procfile`
|
||||
- Review user customization: `cat usr/user.cmd`
|
||||
|
||||
### Documentation Tasks
|
||||
- Edit README.md and documentation files
|
||||
- Update configuration templates
|
||||
- Modify default project templates in www/
|
||||
- Update site configuration examples
|
||||
|
||||
## Laragon Architecture
|
||||
|
||||
### Core Components
|
||||
- **laragon.exe**: Main Windows GUI application (5.3MB PE32+ executable)
|
||||
- **bin/**: Bundled software packages
|
||||
- PHP (current versions with auto-update support)
|
||||
- MySQL (current versions with auto-update support)
|
||||
- Nginx (current versions)
|
||||
- Apache (configurable)
|
||||
- Composer (PHP dependency manager)
|
||||
- HeidiSQL (database management GUI)
|
||||
- Cmder (terminal emulator)
|
||||
- Notepad++ (text editor)
|
||||
- Sendmail (mail handling)
|
||||
|
||||
**Note**: This repository contains historical/example versions (PHP 5.4.9, MySQL 5.1.72, Nginx 1.14.0) but actual Laragon releases bundle current software versions with an integrated auto-update system for minor version updates.
|
||||
|
||||
### Configuration Files
|
||||
- **usr/laragon.ini**: Main configuration (service versions, preferences)
|
||||
- **usr/sites.conf**: Project template definitions
|
||||
- **usr/Procfile**: Custom service definitions
|
||||
- **usr/user.cmd**: User startup customizations
|
||||
- **etc/**: Service-specific configurations (Apache, Nginx, PHP)
|
||||
|
||||
### Directory Structure
|
||||
```
|
||||
laragon/
|
||||
├── laragon.exe # Main Windows GUI application
|
||||
├── bin/ # Bundled software (PHP, MySQL, Nginx, etc.)
|
||||
├── etc/ # Configuration files for services
|
||||
├── usr/ # User configurations and templates
|
||||
├── www/ # Default web root directory
|
||||
├── README.md # Project documentation
|
||||
├── CHANGELOG.md # Version history
|
||||
└── SECURITY.md # Security policy
|
||||
```
|
||||
|
||||
## Key Features
|
||||
- **Portable**: Entire environment can be moved between Windows machines
|
||||
- **Auto-configuration**: Services are automatically configured when started
|
||||
- **Auto-update system**: Integrated minor version updates for bundled software
|
||||
- **Current software versions**: Ships with up-to-date PHP, MySQL, Apache, and other tools
|
||||
- **Pretty URLs**: Uses `.test` domains instead of localhost
|
||||
- **Multi-version support**: Can switch between different PHP/MySQL versions
|
||||
- **Project templates**: Built-in templates for WordPress, Laravel, Symfony
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### Examining Service Versions
|
||||
```bash
|
||||
# Check configured versions (note: repository contains historical versions)
|
||||
grep "Version=" usr/laragon.ini
|
||||
|
||||
# List available software in bin directory (historical snapshot)
|
||||
ls bin/
|
||||
```
|
||||
|
||||
**Important**: The versions shown in this repository (PHP 5.4.9, MySQL 5.1.72, etc.) are historical examples. Actual Laragon installations include current software versions with automatic update capabilities.
|
||||
|
||||
### Configuration File Management
|
||||
```bash
|
||||
# View main configuration
|
||||
cat usr/laragon.ini
|
||||
|
||||
# Check site template definitions
|
||||
cat usr/sites.conf
|
||||
|
||||
# Examine user customization file
|
||||
cat usr/user.cmd
|
||||
```
|
||||
|
||||
### Project Template Analysis
|
||||
```bash
|
||||
# Check available project types
|
||||
grep "^[A-Za-z]" usr/sites.conf | grep "="
|
||||
|
||||
# View default web page
|
||||
cat www/index.php
|
||||
```
|
||||
|
||||
### Structure Exploration
|
||||
```bash
|
||||
# Repository root contents
|
||||
ls -la
|
||||
|
||||
# Find all configuration files
|
||||
find . -name "*.ini" -o -name "*.conf" | head -10
|
||||
|
||||
# Check documentation files
|
||||
find . -name "*.md"
|
||||
```
|
||||
|
||||
## Validation on Windows
|
||||
|
||||
**Note**: These steps can only be performed on a Windows machine with Laragon installed:
|
||||
|
||||
### Basic Functionality Testing
|
||||
1. Start Laragon GUI application
|
||||
2. Verify all services start (Apache/Nginx, MySQL, PHP)
|
||||
3. Access http://localhost to see default page
|
||||
4. Create a test project using quick app creation
|
||||
5. Verify pretty URLs work (e.g., http://testapp.test)
|
||||
|
||||
### Configuration Validation
|
||||
1. Modify usr/laragon.ini settings
|
||||
2. Restart Laragon to apply changes
|
||||
3. Verify service versions match configuration
|
||||
4. Test custom Procfile entries
|
||||
5. Validate user.cmd customizations
|
||||
|
||||
## File Editing Guidelines
|
||||
|
||||
### Safe to Edit
|
||||
- **Documentation**: README.md, CHANGELOG.md, SECURITY.md
|
||||
- **Configuration templates**: usr/laragon.ini, usr/sites.conf
|
||||
- **Default web content**: www/index.php
|
||||
- **User scripts**: usr/user.cmd, usr/Procfile
|
||||
|
||||
### Do Not Modify
|
||||
- **Binary files**: laragon.exe, all files in bin/
|
||||
- **Service configurations**: etc/ files (unless creating templates)
|
||||
- **Git ignored items**: See .gitignore for excluded files
|
||||
|
||||
## Development Workflow
|
||||
|
||||
### For Configuration Changes
|
||||
1. Edit configuration files using text editors
|
||||
2. Validate syntax if applicable (e.g., INI format for laragon.ini)
|
||||
3. Test changes on Windows Laragon installation
|
||||
4. Document changes in comments or README
|
||||
|
||||
### For Documentation Updates
|
||||
1. Edit Markdown files directly
|
||||
2. Ensure proper formatting and links
|
||||
3. Validate Markdown syntax
|
||||
4. No special testing required
|
||||
|
||||
## Repository Maintenance
|
||||
|
||||
### Adding New Project Templates
|
||||
1. Edit usr/sites.conf
|
||||
2. Follow existing format: `ProjectName=installation_command`
|
||||
3. Test template on Windows Laragon installation
|
||||
4. Document new template in README if needed
|
||||
|
||||
### Configuration Updates
|
||||
1. Modify relevant .ini or .conf files
|
||||
2. Ensure Windows compatibility
|
||||
3. Test with actual Laragon installation
|
||||
4. Update documentation if behavior changes
|
||||
|
||||
## Common File Locations
|
||||
|
||||
### Frequently Referenced Files
|
||||
```bash
|
||||
# Main configuration
|
||||
usr/laragon.ini
|
||||
|
||||
# Project templates
|
||||
usr/sites.conf
|
||||
|
||||
# Default web page
|
||||
www/index.php
|
||||
|
||||
# User customization
|
||||
usr/user.cmd
|
||||
|
||||
# Main documentation
|
||||
README.md
|
||||
```
|
||||
|
||||
### Configuration Paths
|
||||
```bash
|
||||
# Apache configuration
|
||||
etc/apache2/
|
||||
|
||||
# Nginx configuration
|
||||
etc/nginx/
|
||||
|
||||
# PHP configuration
|
||||
etc/php/
|
||||
|
||||
# SSL certificates
|
||||
etc/ssl/
|
||||
```
|
||||
|
||||
This repository serves as the distribution package for Laragon. All development and testing of the actual development environment functionality must be done on Windows machines with Laragon installed.
|
||||
Reference in New Issue
Block a user