From fee18b42dbf226fe746d4e225d4771e03780a168 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Sep 2025 07:11:59 +0000 Subject: [PATCH] Add comprehensive GitHub Copilot instructions for Laragon repository Co-authored-by: alxndr-w <3855487+alxndr-w@users.noreply.github.com> --- .github/copilot-instructions.md | 217 ++++++++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 00000000..730cdccc --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,217 @@ +# 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 5.4.9 (Windows VC9 x86) + - MySQL 5.1.72 (Windows 32-bit) + - Nginx 1.14.0 + - Apache (configurable) + - Composer (PHP dependency manager) + - HeidiSQL (database management GUI) + - Cmder (terminal emulator) + - Notepad++ (text editor) + - Sendmail (mail handling) + +### 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 +- **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 +grep "Version=" usr/laragon.ini + +# List available software in bin directory +ls bin/ +``` + +### 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. \ No newline at end of file