diff --git a/.gitattributes b/.gitattributes index fb1d399e6..8c0a69e43 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,4 +5,4 @@ /.gitattributes export-ignore /.github/FUNDING.yml export-ignore -/.vortex export-ignore +/.vortex export-ignore diff --git a/.vortex/installer/src/Command/InstallCommand.php b/.vortex/installer/src/Command/InstallCommand.php index a68cb3ac8..9fb14a266 100644 --- a/.vortex/installer/src/Command/InstallCommand.php +++ b/.vortex/installer/src/Command/InstallCommand.php @@ -350,7 +350,7 @@ protected function handleDemo(): array|string { protected function header(): void { $logo = <<config->get(Config::REF); if ($ref == Downloader::REF_STABLE) { - $content .= 'This will install the latest version of Vortex into your project.' . PHP_EOL; + $content .= 'This tool will guide you through installing the latest version of Vortex into your project.' . PHP_EOL; } elseif ($ref == Downloader::REF_HEAD) { - $content .= 'This will install the latest development version of Vortex into your project.' . PHP_EOL; + $content .= 'This tool will guide you through installing the latest development version of Vortex into your project.' . PHP_EOL; } else { - $content .= sprintf('This will install Vortex into your project at commit "%s".', $ref) . PHP_EOL; + $content .= sprintf('This tool will guide you through installing the version of Vortex into your project at commit "%s".', $ref) . PHP_EOL; } $content .= PHP_EOL; @@ -399,12 +399,13 @@ protected function header(): void { $title = 'Welcome to Vortex non-interactive installer'; } else { - $content .= 'Please answer the questions below to install configuration relevant to your site.' . PHP_EOL; - $content .= 'No changes will be applied until the last confirmation step.' . PHP_EOL; + $content .= 'You’ll be asked a few questions to tailor the configuration to your site.' . PHP_EOL; + $content .= 'No changes will be made until you confirm everything at the end.' . PHP_EOL; $content .= PHP_EOL; - $content .= 'Existing committed files may be modified. You will need to resolve any changes manually.' . PHP_EOL; + $content .= 'If you proceed, some committed files may be modified after confirmation, and you may need to resolve any changes manually.' . PHP_EOL; $content .= PHP_EOL; - $content .= 'Press Ctrl+C at any time to exit this installer.' . PHP_EOL; + $content .= 'Press Ctrl+C at any time to exit the installer.' . PHP_EOL; + $content .= 'Press Ctrl+U at any time to go back to the previous step.' . PHP_EOL; } Tui::box($content, $title); diff --git a/.vortex/installer/src/Prompts/Handlers/AiCodeInstructions.php b/.vortex/installer/src/Prompts/Handlers/AiCodeInstructions.php new file mode 100644 index 000000000..a5ed1fb28 --- /dev/null +++ b/.vortex/installer/src/Prompts/Handlers/AiCodeInstructions.php @@ -0,0 +1,40 @@ +isInstalled()) { + return NULL; + } + + if (is_readable($this->dstDir . '/CLAUDE.md')) { + return self::CLAUDE; + } + + return self::NONE; + } + + /** + * {@inheritdoc} + */ + public function process(): void { + $v = $this->getResponseAsString(); + $t = $this->tmpDir; + + if ($v !== self::CLAUDE) { + @unlink($t . '/CLAUDE.md'); + } + } + +} diff --git a/.vortex/installer/src/Prompts/PromptManager.php b/.vortex/installer/src/Prompts/PromptManager.php index fa65eab55..d58bcae84 100644 --- a/.vortex/installer/src/Prompts/PromptManager.php +++ b/.vortex/installer/src/Prompts/PromptManager.php @@ -5,6 +5,7 @@ namespace DrevOps\VortexInstaller\Prompts; use DrevOps\VortexInstaller\Prompts\Handlers\AbstractHandler; +use DrevOps\VortexInstaller\Prompts\Handlers\AiCodeInstructions; use DrevOps\VortexInstaller\Prompts\Handlers\AssignAuthorPr; use DrevOps\VortexInstaller\Prompts\Handlers\CiProvider; use DrevOps\VortexInstaller\Prompts\Handlers\CodeProvider; @@ -60,6 +61,20 @@ class PromptManager { */ protected array $responses = []; + /** + * Total number of top-level responses. + * + * Used to display the progress of the prompts. + */ + protected int $totalResponses = 21; + + /** + * Current response number. + * + * Used to display the progress of the prompts. + */ + protected int $currentResponse = 0; + /** * Array of handlers. * @@ -94,11 +109,13 @@ public function prompt(): void { // @formatter:off // phpcs:disable Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma // phpcs:disable Drupal.WhiteSpace.Comma.TooManySpaces + // phpcs:disable Drupal.WhiteSpace.ObjectOperatorIndent.Indent + // phpcs:disable Drupal.WhiteSpace.ScopeIndent.IncorrectExact $responses = form() ->intro('General information') ->add(fn($r, $pr, $n): string => text( - label: '🔖 Site name', + label: $this->label('🔖 Site name'), hint: 'We will use this name in the project and in the documentation.', placeholder: 'E.g. My Site', required: TRUE, @@ -108,7 +125,7 @@ public function prompt(): void { ), Name::id()) ->add(fn($r, $pr, $n): string => text( - label: '🔖 Site machine name', + label: $this->label('🔖 Site machine name'), hint: 'We will use this name for the project directory and in the code.', placeholder: 'E.g. my_site', required: TRUE, @@ -118,7 +135,7 @@ public function prompt(): void { ), MachineName::id()) ->add(fn($r, $pr, $n): string => text( - label: '🏢 Organization name', + label: $this->label('🏢 Organization name'), hint: 'We will use this name in the project and in the documentation.', placeholder: 'E.g. My Org', required: TRUE, @@ -128,7 +145,7 @@ public function prompt(): void { ), Org::id()) ->add(fn($r, $pr, $n): string => text( - label: '🏢 Organization machine name', + label: $this->label('🏢 Organization machine name'), hint: 'We will use this name for the project directory and in the code.', placeholder: 'E.g. my_org', required: TRUE, @@ -138,7 +155,7 @@ public function prompt(): void { ), OrgMachineName::id()) ->add(fn($r, $pr, $n): string => text( - label: '🌐 Public domain', + label: $this->label('🌐 Public domain'), hint: 'Domain name without protocol and trailing slash.', placeholder: 'E.g. example.com', required: TRUE, @@ -150,7 +167,7 @@ public function prompt(): void { ->intro('Code repository') ->add(fn($r, $pr, $n): int|string => select( - label: '⚙️ Repository provider', + label: $this->label('🗄️ Repository provider'), hint: 'Vortex offers full automation with GitHub, while support for other providers is limited.', options: [ CodeProvider::GITHUB => 'GitHub', @@ -169,12 +186,13 @@ public function prompt(): void { function ($r, $pr, $n): string { $value = $this->default($n); if (!empty($value)) { - Tui::ok('GitHub access token is already set in the environment.'); + Tui::ok($this->label('GitHub access token is already set in the environment.', 'a')); + return $value; } return password( - label: '🔑 GitHub access token (optional)', + label: $this->label('🔑 GitHub access token (optional)', 'a'), hint: Env::get('GITHUB_TOKEN') ? 'Read from GITHUB_TOKEN environment variable.' : 'Create a new token with "repo" scopes at https://github.com/settings/tokens/new', placeholder: 'E.g. ghp_1234567890', transform: fn(string $v): string => trim($v), @@ -182,22 +200,22 @@ function ($r, $pr, $n): string { ); }, GithubToken::id()) - ->addIf( - fn($r): bool => !empty($r[GithubToken::id()]), - fn($r, $pr, $n): string => text( - label: 'What is your GitHub project name?', - hint: 'We will use this name to create new or find an existing repository.', - placeholder: 'E.g. myorg/myproject', - default: $this->default($n, $r[OrgMachineName::id()] . '/' . $r[MachineName::id()]), - transform: fn(string $v): string => trim($v), - validate: fn(string $v): ?string => !empty($v) && !Validator::githubProject($v) ? 'Please enter a valid project name in the format "myorg/myproject"' : NULL, - ), GithubRepo::id()) + ->addIf( + fn($r): bool => !empty($r[GithubToken::id()]), + fn($r, $pr, $n): string => text( + label: $this->label('What is your GitHub project name?', 'b'), + hint: 'We will use this name to create new or find an existing repository.', + placeholder: 'E.g. myorg/myproject', + default: $this->default($n, $r[OrgMachineName::id()] . '/' . $r[MachineName::id()]), + transform: fn(string $v): string => trim($v), + validate: fn(string $v): ?string => !empty($v) && !Validator::githubProject($v) ? 'Please enter a valid project name in the format "myorg/myproject"' : NULL, + ), GithubRepo::id()) ->intro('Drupal') ->add(function ($r, $pr, $n): int|string { $profile = select( - label: 'Profile', + label: $this->label('🧾 Profile'), hint: 'Select which profile to use', options: [ Profile::STANDARD => 'Standard', @@ -211,7 +229,7 @@ function ($r, $pr, $n): string { if ($profile === Profile::CUSTOM) { $profile = text( - label: 'Custom profile machine name', + label: $this->label('Custom profile machine name', 'a'), placeholder: 'E.g. my_profile', required: TRUE, default: $this->default($n), @@ -224,7 +242,7 @@ function ($r, $pr, $n): string { }, Profile::id()) ->add(fn($r, $pr, $n): string => text( - label: '🧩 Module prefix', + label: $this->label('🧩 Module prefix'), hint: 'We will use this name for custom modules.', placeholder: 'E.g. ms (for My Site)', required: TRUE, @@ -234,7 +252,7 @@ function ($r, $pr, $n): string { ), ModulePrefix::id()) ->add(fn($r, $pr, $n): string => text( - label: '🎨 Theme machine name', + label: $this->label('🎨 Theme machine name'), hint: 'We will use this name for the theme directory. Leave empty to skip the theme scaffold.', placeholder: 'E.g. mytheme', default: $this->default($n, Converter::machine($r[MachineName::id()])), @@ -245,13 +263,13 @@ function ($r, $pr, $n): string { ->addIf( fn($r): bool => !empty($r[Theme::id()]), fn($r, $pr, $n): int|string => select( - label: 'Compile theme assest during build using a task runner?', + label: $this->label('Compile theme assest during build using a task runner?'), hint: 'Useful to avoid committing compiled theme assets to the repository.', options: [ ThemeRunner::GRUNT => '🐗 Grunt', ThemeRunner::GULP => '🥤 Gulp', ThemeRunner::WEBPACK => '📦 Webpack', - ThemeRunner::NONE => '⭕ None', + ThemeRunner::NONE => '🚫 None', ], required: TRUE, default: $this->default($n, ThemeRunner::GRUNT), @@ -260,12 +278,12 @@ function ($r, $pr, $n): string { ->intro('Services') ->add(fn($r, $pr, $n): array => multiselect( - label: '🔌 Services', + label: $this->label('🔌 Services'), hint: 'Select the services you want to use in the project.', options: [ Services::CLAMAV => '🦠 ClamAV', Services::SOLR => '🔍 Solr', - Services::VALKEY => '🔴 Valkey', + Services::VALKEY => '🗃️ Valkey', ], default: $this->default($n, [Services::CLAMAV, Services::SOLR, Services::VALKEY]), ), Services::id()) @@ -273,13 +291,13 @@ function ($r, $pr, $n): string { ->intro('Hosting') ->add(fn($r, $pr, $n): int|string => select( - label: '🏠 Hosting provider', + label: $this->label('🏠 Hosting provider'), hint: 'Select the hosting provider where the project is hosted. The web root directory will be set accordingly.', options: [ - HostingProvider::NONE => '⭕ None', HostingProvider::ACQUIA => '💧 Acquia Cloud', HostingProvider::LAGOON => '🌊 Lagoon', HostingProvider::OTHER => '🧩 Other', + HostingProvider::NONE => '🚫 None', ], required: TRUE, default: $this->default($n, 'none'), @@ -297,7 +315,7 @@ function ($r, $pr, $n): string { } else { $webroot = text( - label: '📁 Custom web root directory', + label: $this->label('📁 Custom web root directory', 'a'), hint: 'Custom directory where the web server serves the site.', placeholder: 'E.g. ' . implode(', ', [Webroot::WEB, Webroot::DOCROOT]), required: TRUE, @@ -335,7 +353,7 @@ function ($r, $pr, $n): string { } return multiselect( - label: '🚚 Deployment types', + label: $this->label('🚚 Deployment types'), hint: 'You can deploy code using one or more methods.', options: $options, default: $this->default($n, $defaults), @@ -347,7 +365,7 @@ function ($r, $pr, $n): string { ->add(fn($r, $pr, $n) => Tui::note('Provisioning is the process of setting up the site in the environment with an already built codebase.')) ->add(fn($r, $pr, $n): int|string => select( - label: 'Provision type', + label: $this->label('Provision type'), hint: 'Selecting "Profile" will install site from a profile rather than a database dump.', options: [ ProvisionType::DATABASE => 'Import from database dump', @@ -357,9 +375,9 @@ function ($r, $pr, $n): string { ), ProvisionType::id()) ->add(function (array $r, $pr, $n): int|string { - if ($r[ProvisionType::id()] === ProvisionType::PROFILE) { - return DatabaseDownloadSource::NONE; - } + if ($r[ProvisionType::id()] === ProvisionType::PROFILE) { + return DatabaseDownloadSource::NONE; + } $options = [ DatabaseDownloadSource::URL => '🌍 URL download', @@ -367,7 +385,7 @@ function ($r, $pr, $n): string { DatabaseDownloadSource::ACQUIA => '💧 Acquia backup', DatabaseDownloadSource::LAGOON => '🌊 Lagoon environment', DatabaseDownloadSource::CONTAINER_REGISTRY => '🐳 Container registry', - DatabaseDownloadSource::NONE => '⭕ None', + DatabaseDownloadSource::NONE => '🚫 None', ]; if ($r[HostingProvider::id()] === HostingProvider::ACQUIA) { @@ -379,7 +397,7 @@ function ($r, $pr, $n): string { } return select( - label: 'Database dump source', + label: $this->label('Database dump source', 'a'), hint: 'The database can be downloaded as an exported dump file or pre-packaged in a container image.', options: $options, default: $this->default($n, match ($r[HostingProvider::id()]) { @@ -393,7 +411,7 @@ function ($r, $pr, $n): string { ->addIf( fn($r): bool => $r[DatabaseDownloadSource::id()] === DatabaseDownloadSource::CONTAINER_REGISTRY, fn($r, $pr, $n): string => text( - label: 'What is your database container image name and a tag?', + label: $this->label('What is your database container image name and a tag?', 'a'), hint: 'Use "latest" tag for the latest version. CI will be building this image overnight.', placeholder: sprintf('E.g. %s/%s-data:latest', Converter::phpNamespace($r[OrgMachineName::id()]), Converter::phpNamespace($r[MachineName::id()])), default: $this->default($n, sprintf('%s/%s-data:latest', Converter::phpNamespace($r[OrgMachineName::id()]), Converter::phpNamespace($r[MachineName::id()]))), @@ -415,7 +433,7 @@ function ($r, $pr, $n): string { } return select( - label: '♻️ Continuous Integration provider', + label: $this->label('🔄 Continuous Integration provider'), hint: 'Both providers support equivalent workflow.', options: $options, default: $this->default($n, CiProvider::GITHUB_ACTIONS), @@ -425,24 +443,24 @@ function ($r, $pr, $n): string { ->intro('Automations') ->add(fn($r, $pr, $n): int|string => select( - label: '⬆️ Dependency updates provider', + label: $this->label('⬆️ Dependency updates provider'), hint: 'Use a self-hosted service if you can’t install a GitHub app.', options: [ - DependencyUpdatesProvider::RENOVATEBOT_CI => '🤖 + ♻️ Renovate self-hosted in CI', + DependencyUpdatesProvider::RENOVATEBOT_CI => '🤖 + 🔄 Renovate self-hosted in CI', DependencyUpdatesProvider::RENOVATEBOT_APP => '🤖 Renovate GitHub app', - DependencyUpdatesProvider::NONE => '⭕ None', + DependencyUpdatesProvider::NONE => '🚫 None', ], default: $this->default($n, DependencyUpdatesProvider::RENOVATEBOT_CI), ), DependencyUpdatesProvider::id()) ->add(fn($r, $pr, $n): bool => confirm( - label: '👤 Auto-assign the author to their PR?', + label: $this->label('👤 Auto-assign the author to their PR?'), hint: 'Helps to keep the PRs organized.', default: $this->default($n, TRUE), ), AssignAuthorPr::id()) ->add(fn($r, $pr, $n): bool => confirm( - label: '🎫 Auto-add a CONFLICT label to a PR when conflicts occur?', + label: $this->label('🎫 Auto-add a CONFLICT label to a PR when conflicts occur?'), hint: 'Helps to keep quickly identify PRs that need attention.', default: $this->default($n, TRUE), ), LabelMergeConflictsPr::id()) @@ -450,22 +468,36 @@ function ($r, $pr, $n): string { ->intro('Documentation') ->add(fn($r, $pr, $n): bool => confirm( - label: '📚 Preserve project documentation?', + label: $this->label('📚 Preserve project documentation?'), hint: 'Helps to maintain the project documentation within the repository.', default: $this->default($n, TRUE), ), PreserveDocsProject::id()) ->add(fn($r, $pr, $n): bool => confirm( - label: '📋 Preserve onboarding checklist?', + label: $this->label('📋 Preserve onboarding checklist?'), hint: 'Helps to track onboarding to Vortex within the repository.', default: $this->default($n, TRUE), ), PreserveDocsOnboarding::id()) + ->intro('AI') + + ->add(fn($r, $pr, $n): int|string => select( + label: $this->label('🤖 AI code assistant instructions'), + hint: 'Helps AI coding assistants to understand the project better.', + options: [ + AiCodeInstructions::CLAUDE => 'Anthropic Claude', + AiCodeInstructions::NONE => 'None', + ], + default: $this->default($n, AiCodeInstructions::NONE), + ), AiCodeInstructions::id()) + ->submit(); // @formatter:on // phpcs:enable Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma // phpcs:enable Drupal.WhiteSpace.Comma.TooManySpaces + // phpcs:enable Drupal.WhiteSpace.ObjectOperatorIndent.Indent + // phpcs:enable Drupal.WhiteSpace.ScopeIndent.IncorrectExact // Filter out elements with numeric keys returned from intro()'s. $responses = array_filter($responses, function ($key): bool { @@ -495,6 +527,7 @@ public function process(): void { // more specific values first, and the more generic ones last. $ids = [ Webroot::id(), + AiCodeInstructions::id(), PreserveDocsOnboarding::id(), PreserveDocsProject::id(), LabelMergeConflictsPr::id(), @@ -608,6 +641,9 @@ public function getResponsesSummary(): array { $values['📚 Preserve project documentation'] = Converter::bool($responses[PreserveDocsProject::id()]); $values['📋 Preserve onboarding checklist'] = Converter::bool($responses[PreserveDocsOnboarding::id()]); + $values['AI'] = Tui::LIST_SECTION_TITLE; + $values['AI code assistant instructions'] = $responses[AiCodeInstructions::id()]; + $values['Locations'] = Tui::LIST_SECTION_TITLE; $values['Current directory'] = $this->config->getRoot(); $values['Destination directory'] = $this->config->getDst(); @@ -617,6 +653,27 @@ public function getResponsesSummary(): array { return $values; } + /** + * Generate a label for a prompt. + * + * @param string $text + * The text to display in the label. + * @param string|null $suffix + * An optional suffix to display in the label. + * + * @return string + * The formatted label text. + */ + protected function label(string $text, ?string $suffix = NULL): string { + if (is_null($suffix)) { + $this->currentResponse++; + } + + $suffix = $suffix !== NULL ? $this->currentResponse . '.' . $suffix : $this->currentResponse; + + return $text . ' ' . Tui::dim('(' . $suffix . '/' . $this->totalResponses . ')'); + } + /** * Get a default value for a response. * diff --git a/.vortex/installer/src/Utils/Tui.php b/.vortex/installer/src/Utils/Tui.php index e2418807f..3d761a38e 100644 --- a/.vortex/installer/src/Utils/Tui.php +++ b/.vortex/installer/src/Utils/Tui.php @@ -90,7 +90,7 @@ public static function box(string $content, ?string $title = NULL, int $width = if ($title) { $rows[] = [static::green($title)]; - $rows[] = [static::green(str_repeat('-', Strings::strlenPlain($title))) . PHP_EOL]; + $rows[] = [static::green(str_repeat('─', Strings::strlenPlain($title))) . PHP_EOL]; } $rows[] = [$content]; diff --git a/.vortex/installer/tests/Fixtures/install/_baseline/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/ai_instructions_claude/CLAUDE.md similarity index 73% rename from .vortex/installer/tests/Fixtures/install/_baseline/CLAUDE.md rename to .vortex/installer/tests/Fixtures/install/ai_instructions_claude/CLAUDE.md index ebf3a6560..f56e1c3c1 100644 --- a/.vortex/installer/tests/Fixtures/install/_baseline/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/ai_instructions_claude/CLAUDE.md @@ -1,9 +1,5 @@ # Vortex Drupal Project - Development Guide -> **🚀 PROJECT MODE**: This guide helps with **developing Drupal projects** created from the Vortex template. -> -> For **maintaining the Vortex template itself**, see the maintenance guide: `.vortex/CLAUDE.md` - ## Project Overview This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. @@ -21,42 +17,52 @@ ahoy up ahoy info ``` -## Development Workflows +## Local Development Commands (Ahoy) -### Local Development Commands (Ahoy) +### Environment management ```bash -# Environment management ahoy up # Start Docker containers ahoy down # Stop Docker containers ahoy restart # Restart containers ahoy info # Show project information and URLs +``` -# Site building and provisioning +### Site building and provisioning + +```bash ahoy build # Build site from scratch ahoy provision # Provision site (install/import DB) ahoy reset # Reset to clean state +``` + +### Database operations -# Database operations +```bash ahoy download-db # Download fresh database ahoy export-db # Export current database ahoy import-db # Import database from file +``` + +### Development tools -# Development tools +```bash ahoy drush [command] # Run Drush commands ahoy composer [command] # Run Composer commands ahoy phpcs # Run code style checks ahoy phpcbf # Fix code style issues ``` -### Code Quality and Testing +### Code Quality ```bash -# Linting and code standards ahoy lint # Run all linting checks ahoy lint-fix # Fix automatically fixable issues +``` -# Testing +### Testing + +```bash ahoy test-unit # Run PHPUnit tests ahoy test-bdd # Run Behat (BDD) tests ahoy test # Run all tests @@ -87,6 +93,7 @@ ahoy test # Run all tests ## Configuration Management ### Exporting Configuration + ```bash # Export all configuration changes ahoy drush config:export @@ -96,6 +103,7 @@ ahoy drush config:export --diff ``` ### Importing Configuration + ```bash # Import configuration (usually part of deployment) ahoy drush config:import @@ -104,50 +112,26 @@ ahoy drush config:import ahoy drush config:import --source=../config/stage ``` -## Custom Development - -### Creating Custom Modules -```bash -# Generate module scaffold -ahoy drush generate:module [module_name] - -# Enable custom module -ahoy drush pm:install [module_name] -``` - ### Theme Development + ```bash # Navigate to custom theme -cd web/themes/custom/[theme_name] +cd web/themes/custom/star_wars # Install theme dependencies (if using npm/yarn) -npm install +yarn install # Build theme assets -npm run build +yarn run build # Watch for changes during development -npm run watch +yarn run watch ``` ## Database and Content -### Database Operations -```bash -# Download latest database -ahoy download-db - -# Import database from file -ahoy import-db path/to/database.sql - -# Create database snapshot -ahoy export-db-file - -# Reset to fresh install -ahoy provision --override-db -``` - ### Content Management + - Use Configuration Management for structure (content types, fields, views) - Use database imports for content in non-production environments - Use migration modules for structured content imports in production @@ -155,6 +139,7 @@ ahoy provision --override-db ## Services Integration ### Solr Search + ```bash # Check Solr status ahoy drush search-api:status @@ -167,6 +152,7 @@ ahoy drush search-api:clear ``` ### Valkey (Redis-compatible caching) + ```bash # Check cache status ahoy drush cache:rebuild @@ -176,6 +162,7 @@ ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" ``` ### ClamAV Virus Scanning + ```bash # Test virus scanning functionality ahoy drush clamav:scan @@ -184,29 +171,6 @@ ahoy drush clamav:scan ahoy drush clamav:status ``` -## Environment Configuration - -### Environment Variables (.env) -Key variables for local development: -```bash -# Project identification -VORTEX_PROJECT=your_project_name - -# Database configuration -DRUPAL_DATABASE_NAME=drupal -DRUPAL_DATABASE_USERNAME=drupal -DRUPAL_DATABASE_PASSWORD=drupal - -# Development settings -VORTEX_DEV_MODE=1 -VORTEX_DEBUG=1 -``` - -### Environment-Specific Settings -- **Development**: Full error reporting, development modules enabled -- **Staging**: Production-like but with debug capabilities -- **Production**: Error logging, caching enabled, development modules disabled - ## Deployment ### CI/CD Pipeline @@ -216,30 +180,26 @@ The project includes automated deployment via: - **Container Registry** deployments for containerized environments -### Manual Deployment Steps -```bash -# Build deployment artifact -./scripts/vortex/deploy.sh - -# Deploy via webhook -./scripts/vortex/deploy-webhook.sh -``` - ## Common Tasks ### Adding Dependencies + ```bash # Add Drupal modules ahoy composer require drupal/module_name -# Add development dependencies +# Add development dependencies ahoy composer require --dev drupal/devel +``` -# Add theme build tools -cd web/themes/custom/[theme] && npm install [package] +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] ``` ### Dependency Management + Dependencies are automatically updated via RenovateBot: - **Composer dependencies**: Updated automatically with compatibility checks - **Node.js dependencies**: Updated in theme directories @@ -251,6 +211,7 @@ ahoy composer outdated ``` ### Debugging + ```bash # Enable development modules ahoy drush pm:install devel webprofiler @@ -263,6 +224,7 @@ ahoy drush cache:rebuild ``` ### Performance + ```bash # Enable caching ahoy drush config:set system.performance css.preprocess 1 @@ -289,19 +251,6 @@ docker-compose ps ahoy reset # Rebuild if needed ``` -**Permission issues:** -```bash -# Fix file permissions -ahoy fix-permissions -``` - -**Memory issues:** -```bash -# Increase PHP memory limit in docker-compose.yml -# Or use ahoy with more memory -ahoy drush --memory-limit=512M [command] -``` - ## Resources - **Vortex Documentation**: https://vortex.drevops.com @@ -318,4 +267,4 @@ ahoy drush --memory-limit=512M [command] --- -*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* \ No newline at end of file +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/ai_instructions_none/.ignorecontent b/.vortex/installer/tests/Fixtures/install/ai_instructions_none/.ignorecontent new file mode 100644 index 000000000..7490f6cc2 --- /dev/null +++ b/.vortex/installer/tests/Fixtures/install/ai_instructions_none/.ignorecontent @@ -0,0 +1 @@ +# Default diff --git a/.vortex/installer/tests/Fixtures/install/ciprovider_circleci/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/ciprovider_circleci/CLAUDE.md index dbefbce3f..ab2a41510 100644 --- a/.vortex/installer/tests/Fixtures/install/ciprovider_circleci/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/ciprovider_circleci/CLAUDE.md @@ -1,9 +1,270 @@ -@@ -212,7 +212,7 @@ - ### CI/CD Pipeline - The project includes automated deployment via: - --- **GitHub Actions** for CI/CD -+- **CircleCI** for CI/CD - - - **Container Registry** deployments for containerized environments - +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **CircleCI** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/ciprovider_gha/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/ciprovider_gha/CLAUDE.md new file mode 100644 index 000000000..f56e1c3c1 --- /dev/null +++ b/.vortex/installer/tests/Fixtures/install/ciprovider_gha/CLAUDE.md @@ -0,0 +1,270 @@ +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/db_download_source_container_registry/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/db_download_source_container_registry/CLAUDE.md new file mode 100644 index 000000000..f56e1c3c1 --- /dev/null +++ b/.vortex/installer/tests/Fixtures/install/db_download_source_container_registry/CLAUDE.md @@ -0,0 +1,270 @@ +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/deploy_type_all_circleci/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/deploy_type_all_circleci/CLAUDE.md deleted file mode 100644 index dbefbce3f..000000000 --- a/.vortex/installer/tests/Fixtures/install/deploy_type_all_circleci/CLAUDE.md +++ /dev/null @@ -1,9 +0,0 @@ -@@ -212,7 +212,7 @@ - ### CI/CD Pipeline - The project includes automated deployment via: - --- **GitHub Actions** for CI/CD -+- **CircleCI** for CI/CD - - - **Container Registry** deployments for containerized environments - diff --git a/.vortex/installer/tests/Fixtures/install/deploy_type_none_circleci/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/deploy_type_none_circleci/CLAUDE.md deleted file mode 100644 index dbefbce3f..000000000 --- a/.vortex/installer/tests/Fixtures/install/deploy_type_none_circleci/CLAUDE.md +++ /dev/null @@ -1,9 +0,0 @@ -@@ -212,7 +212,7 @@ - ### CI/CD Pipeline - The project includes automated deployment via: - --- **GitHub Actions** for CI/CD -+- **CircleCI** for CI/CD - - - **Container Registry** deployments for containerized environments - diff --git a/.vortex/installer/tests/Fixtures/install/deps_updates_provider_ci_circleci/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/deps_updates_provider_ci_circleci/CLAUDE.md deleted file mode 100644 index dbefbce3f..000000000 --- a/.vortex/installer/tests/Fixtures/install/deps_updates_provider_ci_circleci/CLAUDE.md +++ /dev/null @@ -1,9 +0,0 @@ -@@ -212,7 +212,7 @@ - ### CI/CD Pipeline - The project includes automated deployment via: - --- **GitHub Actions** for CI/CD -+- **CircleCI** for CI/CD - - - **Container Registry** deployments for containerized environments - diff --git a/.vortex/installer/tests/Fixtures/install/deps_updates_provider_none/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/deps_updates_provider_none/CLAUDE.md deleted file mode 100644 index 26c421955..000000000 --- a/.vortex/installer/tests/Fixtures/install/deps_updates_provider_none/CLAUDE.md +++ /dev/null @@ -1,18 +0,0 @@ -@@ -239,17 +239,6 @@ - cd web/themes/custom/[theme] && npm install [package] - ``` - --### Dependency Management --Dependencies are automatically updated via RenovateBot: --- **Composer dependencies**: Updated automatically with compatibility checks --- **Node.js dependencies**: Updated in theme directories --- **Docker images**: Base image updates for containers -- --To manually check for updates: --```bash --ahoy composer outdated --``` -- - ### Debugging - ```bash - # Enable development modules diff --git a/.vortex/installer/tests/Fixtures/install/hosting_acquia/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/hosting_acquia/CLAUDE.md index ed99ae1ce..9e1adb5c1 100644 --- a/.vortex/installer/tests/Fixtures/install/hosting_acquia/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/hosting_acquia/CLAUDE.md @@ -1,62 +1,272 @@ -@@ -73,7 +73,7 @@ - ├── scripts/ - │ ├── vortex/ # Core Vortex deployment scripts - │ └── custom/ # Project-specific custom scripts --├── web/ # Drupal webroot -+├── docroot/ # Drupal webroot - │ ├── modules/custom/ # Custom modules - │ ├── themes/custom/ # Custom themes - │ └── sites/default/ # Drupal site configuration -@@ -118,7 +118,7 @@ - ### Theme Development - ```bash - # Navigate to custom theme --cd web/themes/custom/[theme_name] -+cd docroot/themes/custom/[theme_name] - - # Install theme dependencies (if using npm/yarn) - npm install -@@ -214,6 +214,8 @@ - - - **GitHub Actions** for CI/CD - -+- **Acquia** for hosting -+ - - **Container Registry** deployments for containerized environments - - ### Manual Deployment Steps -@@ -221,10 +223,25 @@ - # Build deployment artifact - ./scripts/vortex/deploy.sh - -+# Deploy to Acquia environment -+./scripts/vortex/deploy-acquia.sh -+ - # Deploy via webhook - ./scripts/vortex/deploy-webhook.sh - ``` - -+### Acquia-Specific Commands -+```bash -+# Download database from Acquia -+ahoy download-db-acquia -+ -+# Copy files from Acquia -+ahoy copy-files-acquia -+ -+# Deploy code to Acquia -+ahoy deploy-acquia -+``` -+ - ## Common Tasks - - ### Adding Dependencies -@@ -236,7 +253,7 @@ - ahoy composer require --dev drupal/devel - - # Add theme build tools --cd web/themes/custom/[theme] && npm install [package] -+cd docroot/themes/custom/[theme] && npm install [package] - ``` - - ### Dependency Management +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── docroot/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd docroot/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Acquia** for hosting + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd docroot/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/hosting_lagoon/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/hosting_lagoon/CLAUDE.md index 75f9abd7d..132807bc9 100644 --- a/.vortex/installer/tests/Fixtures/install/hosting_lagoon/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/hosting_lagoon/CLAUDE.md @@ -1,33 +1,272 @@ -@@ -214,6 +214,8 @@ - - - **GitHub Actions** for CI/CD - -+- **Lagoon** for hosting -+ - - **Container Registry** deployments for containerized environments - - ### Manual Deployment Steps -@@ -221,8 +223,23 @@ - # Build deployment artifact - ./scripts/vortex/deploy.sh - -+# Deploy to Lagoon environment -+./scripts/vortex/deploy-lagoon.sh -+ - # Deploy via webhook - ./scripts/vortex/deploy-webhook.sh -+``` -+ -+### Lagoon-Specific Commands -+```bash -+# Login to Lagoon -+lagoon login -+ -+# Check environment status -+lagoon list projects -+ -+# View deployment logs -+lagoon logs - ``` - - ## Common Tasks +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Lagoon** for hosting + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/provision_database_lagoon/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/provision_database_lagoon/CLAUDE.md index 75f9abd7d..132807bc9 100644 --- a/.vortex/installer/tests/Fixtures/install/provision_database_lagoon/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/provision_database_lagoon/CLAUDE.md @@ -1,33 +1,272 @@ -@@ -214,6 +214,8 @@ - - - **GitHub Actions** for CI/CD - -+- **Lagoon** for hosting -+ - - **Container Registry** deployments for containerized environments - - ### Manual Deployment Steps -@@ -221,8 +223,23 @@ - # Build deployment artifact - ./scripts/vortex/deploy.sh - -+# Deploy to Lagoon environment -+./scripts/vortex/deploy-lagoon.sh -+ - # Deploy via webhook - ./scripts/vortex/deploy-webhook.sh -+``` -+ -+### Lagoon-Specific Commands -+```bash -+# Login to Lagoon -+lagoon login -+ -+# Check environment status -+lagoon list projects -+ -+# View deployment logs -+lagoon logs - ``` - - ## Common Tasks +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Lagoon** for hosting + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/provision_profile/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/provision_profile/CLAUDE.md new file mode 100644 index 000000000..f56e1c3c1 --- /dev/null +++ b/.vortex/installer/tests/Fixtures/install/provision_profile/CLAUDE.md @@ -0,0 +1,270 @@ +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/services_no_clamav/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/services_no_clamav/CLAUDE.md index f2ae00787..ff7004f81 100644 --- a/.vortex/installer/tests/Fixtures/install/services_no_clamav/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/services_no_clamav/CLAUDE.md @@ -1,16 +1,260 @@ -@@ -175,15 +175,6 @@ - ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" - ``` - --### ClamAV Virus Scanning --```bash --# Test virus scanning functionality --ahoy drush clamav:scan -- --# Check ClamAV status --ahoy drush clamav:status --``` -- - ## Environment Configuration - - ### Environment Variables (.env) +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/services_no_solr/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/services_no_solr/CLAUDE.md index da66bf715..fb3297fc5 100644 --- a/.vortex/installer/tests/Fixtures/install/services_no_solr/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/services_no_solr/CLAUDE.md @@ -1,19 +1,257 @@ -@@ -154,18 +154,6 @@ - - ## Services Integration - --### Solr Search --```bash --# Check Solr status --ahoy drush search-api:status -- --# Index content --ahoy drush search-api:index -- --# Clear Solr index --ahoy drush search-api:clear --``` -- - ### Valkey (Redis-compatible caching) - ```bash - # Check cache status +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/services_no_valkey/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/services_no_valkey/CLAUDE.md index 265160335..e62ac0921 100644 --- a/.vortex/installer/tests/Fixtures/install/services_no_valkey/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/services_no_valkey/CLAUDE.md @@ -1,16 +1,260 @@ -@@ -166,15 +166,6 @@ - ahoy drush search-api:clear - ``` - --### Valkey (Redis-compatible caching) --```bash --# Check cache status --ahoy drush cache:rebuild -- --# Clear Redis/Valkey cache --ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" --``` -- - ### ClamAV Virus Scanning - ```bash - # Test virus scanning functionality +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +### Theme Development + +```bash +# Navigate to custom theme +cd web/themes/custom/star_wars + +# Install theme dependencies (if using npm/yarn) +yarn install + +# Build theme assets +yarn run build + +# Watch for changes during development +yarn run watch +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Add theme build tools + +```bash +cd web/themes/custom/star_wars && npm install [package] +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Fixtures/install/services_none/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/services_none/CLAUDE.md deleted file mode 100644 index e68df8acb..000000000 --- a/.vortex/installer/tests/Fixtures/install/services_none/CLAUDE.md +++ /dev/null @@ -1,37 +0,0 @@ -@@ -154,36 +154,6 @@ - - ## Services Integration - --### Solr Search --```bash --# Check Solr status --ahoy drush search-api:status -- --# Index content --ahoy drush search-api:index -- --# Clear Solr index --ahoy drush search-api:clear --``` -- --### Valkey (Redis-compatible caching) --```bash --# Check cache status --ahoy drush cache:rebuild -- --# Clear Redis/Valkey cache --ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" --``` -- --### ClamAV Virus Scanning --```bash --# Test virus scanning functionality --ahoy drush clamav:scan -- --# Check ClamAV status --ahoy drush clamav:status --``` -- - ## Environment Configuration - - ### Environment Variables (.env) diff --git a/.vortex/installer/tests/Fixtures/install/theme_absent/CLAUDE.md b/.vortex/installer/tests/Fixtures/install/theme_absent/CLAUDE.md index 3cd7e928f..1e6ec1e42 100644 --- a/.vortex/installer/tests/Fixtures/install/theme_absent/CLAUDE.md +++ b/.vortex/installer/tests/Fixtures/install/theme_absent/CLAUDE.md @@ -1,39 +1,248 @@ -@@ -75,7 +75,6 @@ - │ └── custom/ # Project-specific custom scripts - ├── web/ # Drupal webroot - │ ├── modules/custom/ # Custom modules --│ ├── themes/custom/ # Custom themes - │ └── sites/default/ # Drupal site configuration - ├── tests/ - │ ├── behat/ # Behavioral tests (BDD) -@@ -115,21 +114,6 @@ - ahoy drush pm:install [module_name] - ``` - --### Theme Development --```bash --# Navigate to custom theme --cd web/themes/custom/[theme_name] -- --# Install theme dependencies (if using npm/yarn) --npm install -- --# Build theme assets --npm run build -- --# Watch for changes during development --npm run watch --``` -- - ## Database and Content - - ### Database Operations -@@ -235,8 +219,6 @@ - # Add development dependencies - ahoy composer require --dev drupal/devel - --# Add theme build tools --cd web/themes/custom/[theme] && npm install [package] - ``` - - ### Dependency Management +# Vortex Drupal Project - Development Guide + +## Project Overview + +This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. + +## Quick Start + +```bash +# Build the site locally +ahoy build + +# Start development environment +ahoy up + +# Access the site +ahoy info +``` + +## Local Development Commands (Ahoy) + +### Environment management + +```bash +ahoy up # Start Docker containers +ahoy down # Stop Docker containers +ahoy restart # Restart containers +ahoy info # Show project information and URLs +``` + +### Site building and provisioning + +```bash +ahoy build # Build site from scratch +ahoy provision # Provision site (install/import DB) +ahoy reset # Reset to clean state +``` + +### Database operations + +```bash +ahoy download-db # Download fresh database +ahoy export-db # Export current database +ahoy import-db # Import database from file +``` + +### Development tools + +```bash +ahoy drush [command] # Run Drush commands +ahoy composer [command] # Run Composer commands +ahoy phpcs # Run code style checks +ahoy phpcbf # Fix code style issues +``` + +### Code Quality + +```bash +ahoy lint # Run all linting checks +ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing + +```bash +ahoy test-unit # Run PHPUnit tests +ahoy test-bdd # Run Behat (BDD) tests +ahoy test # Run all tests +``` + +## Project Structure + +``` +├── config/ # Drupal configuration (exported) +│ ├── default/ # Default configuration +│ ├── dev/ # Development-specific config +│ ├── stage/ # Staging-specific config +│ └── ci/ # CI-specific config +├── scripts/ +│ ├── vortex/ # Core Vortex deployment scripts +│ └── custom/ # Project-specific custom scripts +├── web/ # Drupal webroot +│ ├── modules/custom/ # Custom modules +│ ├── themes/custom/ # Custom themes +│ └── sites/default/ # Drupal site configuration +├── tests/ +│ ├── behat/ # Behavioral tests (BDD) +│ └── phpunit/ # Unit/integration tests +├── docker-compose.yml # Local development environment +└── .env # Environment configuration +``` + +## Configuration Management + +### Exporting Configuration + +```bash +# Export all configuration changes +ahoy drush config:export + +# Export specific configuration +ahoy drush config:export --diff +``` + +### Importing Configuration + +```bash +# Import configuration (usually part of deployment) +ahoy drush config:import + +# Import with specific source +ahoy drush config:import --source=../config/stage +``` + +## Database and Content + +### Content Management + +- Use Configuration Management for structure (content types, fields, views) +- Use database imports for content in non-production environments +- Use migration modules for structured content imports in production + +## Services Integration + +### Solr Search + +```bash +# Check Solr status +ahoy drush search-api:status + +# Index content +ahoy drush search-api:index + +# Clear Solr index +ahoy drush search-api:clear +``` + +### Valkey (Redis-compatible caching) + +```bash +# Check cache status +ahoy drush cache:rebuild + +# Clear Redis/Valkey cache +ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" +``` + +### ClamAV Virus Scanning + +```bash +# Test virus scanning functionality +ahoy drush clamav:scan + +# Check ClamAV status +ahoy drush clamav:status +``` + +## Deployment + +### CI/CD Pipeline +The project includes automated deployment via: + +- **GitHub Actions** for CI/CD + +- **Container Registry** deployments for containerized environments + +## Common Tasks + +### Adding Dependencies + +```bash +# Add Drupal modules +ahoy composer require drupal/module_name + +# Add development dependencies +ahoy composer require --dev drupal/devel +``` + +### Dependency Management + +Dependencies are automatically updated via RenovateBot: +- **Composer dependencies**: Updated automatically with compatibility checks +- **Node.js dependencies**: Updated in theme directories +- **Docker images**: Base image updates for containers + +To manually check for updates: +```bash +ahoy composer outdated +``` + +### Debugging + +```bash +# Enable development modules +ahoy drush pm:install devel webprofiler + +# View logs +ahoy drush watchdog:show + +# Clear caches +ahoy drush cache:rebuild +``` + +### Performance + +```bash +# Enable caching +ahoy drush config:set system.performance css.preprocess 1 +ahoy drush config:set system.performance js.preprocess 1 + +# Clear specific caches +ahoy drush cache:rebuild-external +``` + +## Troubleshooting + +### Common Issues + +**Site not loading locally:** +```bash +ahoy down && ahoy up +ahoy info # Check URLs and container status +``` + +**Database connection issues:** +```bash +# Check database container +docker-compose ps +ahoy reset # Rebuild if needed +``` + +## Resources + +- **Vortex Documentation**: https://vortex.drevops.com +- **Drupal Documentation**: https://www.drupal.org/docs +- **Drush Documentation**: https://www.drush.org +- **Ahoy Documentation**: https://github.com/ahoy-cli/ahoy + +## Getting Help + +- Check `ahoy --help` for available commands +- Use `ahoy [command] --help` for specific command help +- Review project-specific documentation in `/docs` (if available) +- Check environment logs: `ahoy logs` + +--- + +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* diff --git a/.vortex/installer/tests/Functional/InstallTest.php b/.vortex/installer/tests/Functional/InstallTest.php index 6d578f94e..4a877d9ae 100644 --- a/.vortex/installer/tests/Functional/InstallTest.php +++ b/.vortex/installer/tests/Functional/InstallTest.php @@ -5,6 +5,7 @@ namespace DrevOps\VortexInstaller\Tests\Functional; use DrevOps\VortexInstaller\Command\InstallCommand; +use DrevOps\VortexInstaller\Prompts\Handlers\AiCodeInstructions; use DrevOps\VortexInstaller\Prompts\Handlers\AssignAuthorPr; use DrevOps\VortexInstaller\Prompts\Handlers\CiProvider; use DrevOps\VortexInstaller\Prompts\Handlers\CodeProvider; @@ -173,11 +174,15 @@ public static function dataProviderInstall(): array { ], 'theme, absent' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(Theme::id()), '')), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(Theme::id()), ''); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), static::cw(fn(FunctionalTestCase $test) => $test->assertDirectoryNotContainsString('themes/custom', static::$sut, [ '.gitignore', 'scripts/vortex', 'composer.json', + 'CLAUDE.md', ])), ], @@ -187,15 +192,24 @@ public static function dataProviderInstall(): array { ], 'services, no clamav' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(Services::id()), Converter::toList([Services::SOLR, Services::VALKEY]))), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(Services::id()), Converter::toList([Services::SOLR, Services::VALKEY])); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), static::cw(fn(FunctionalTestCase $test) => $test->assertSutNotContains('clamav')), ], 'services, no valkey' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(Services::id()), Converter::toList([Services::CLAMAV, Services::SOLR]))), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(Services::id()), Converter::toList([Services::CLAMAV, Services::SOLR])); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), static::cw(fn(FunctionalTestCase $test) => $test->assertSutNotContains(['valkey', 'redis'])), ], 'services, no solr' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(Services::id()), Converter::toList([Services::CLAMAV, Services::VALKEY]))), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(Services::id()), Converter::toList([Services::CLAMAV, Services::VALKEY])); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), static::cw(fn(FunctionalTestCase $test) => $test->assertSutNotContains('solr')), ], 'services, none' => [ @@ -208,10 +222,16 @@ public static function dataProviderInstall(): array { ], 'hosting, acquia' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(HostingProvider::id()), HostingProvider::ACQUIA)), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(HostingProvider::id()), HostingProvider::ACQUIA); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), ], 'hosting, lagoon' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(HostingProvider::id()), HostingProvider::LAGOON)), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(HostingProvider::id()), HostingProvider::LAGOON); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), static::cw(fn(FunctionalTestCase $test) => $test->assertSutNotContains('acquia')), ], @@ -231,6 +251,7 @@ public static function dataProviderInstall(): array { static::cw(function (): void { Env::put(PromptManager::makeEnvName(DatabaseDownloadSource::id()), DatabaseDownloadSource::CONTAINER_REGISTRY); Env::put(PromptManager::makeEnvName(DatabaseImage::id()), 'the_empire/star_wars:latest'); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); }), ], @@ -272,17 +293,27 @@ public static function dataProviderInstall(): array { static::cw(function (): void { Env::put(PromptManager::makeEnvName(ProvisionType::id()), ProvisionType::DATABASE); Env::put(PromptManager::makeEnvName(HostingProvider::id()), HostingProvider::LAGOON); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); }), ], 'provision, profile' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(ProvisionType::id()), ProvisionType::PROFILE)), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(ProvisionType::id()), ProvisionType::PROFILE); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), ], 'ciprovider, gha' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(CiProvider::id()), CiProvider::GITHUB_ACTIONS)), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(CiProvider::id()), CiProvider::GITHUB_ACTIONS); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), ], 'ciprovider, circleci' => [ - static::cw(fn() => Env::put(PromptManager::makeEnvName(CiProvider::id()), CiProvider::CIRCLECI)), + static::cw(function (): void { + Env::put(PromptManager::makeEnvName(CiProvider::id()), CiProvider::CIRCLECI); + Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE); + }), ], 'deps updates provider, ci, gha' => [ @@ -328,6 +359,13 @@ public static function dataProviderInstall(): array { 'preserve docs onboarding, disabled' => [ static::cw(fn() => Env::put(PromptManager::makeEnvName(PreserveDocsOnboarding::id()), Env::FALSE)), ], + + 'ai instructions, claude' => [ + static::cw(fn() => Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::CLAUDE)), + ], + 'ai instructions, none' => [ + static::cw(fn() => Env::put(PromptManager::makeEnvName(AiCodeInstructions::id()), AiCodeInstructions::NONE)), + ], ]; } diff --git a/.vortex/installer/tests/Unit/PromptManagerTest.php b/.vortex/installer/tests/Unit/PromptManagerTest.php index f1c468b96..f2d8b0ce6 100644 --- a/.vortex/installer/tests/Unit/PromptManagerTest.php +++ b/.vortex/installer/tests/Unit/PromptManagerTest.php @@ -5,14 +5,7 @@ namespace DrevOps\VortexInstaller\Tests\Unit; use AlexSkrypnyk\PhpunitHelpers\Traits\TuiTrait as UpstreamTuiTrait; -use DrevOps\VortexInstaller\Prompts\Handlers\Internal; -use DrevOps\VortexInstaller\Tests\Traits\TuiTrait; -use DrevOps\VortexInstaller\Utils\Composer; -use DrevOps\VortexInstaller\Utils\Env; -use DrevOps\VortexInstaller\Utils\Tui; -use Laravel\Prompts\Prompt; -use PHPUnit\Framework\Attributes\CoversClass; -use PHPUnit\Framework\Attributes\DataProvider; +use DrevOps\VortexInstaller\Prompts\Handlers\AiCodeInstructions; use DrevOps\VortexInstaller\Prompts\Handlers\AssignAuthorPr; use DrevOps\VortexInstaller\Prompts\Handlers\CiProvider; use DrevOps\VortexInstaller\Prompts\Handlers\CodeProvider; @@ -24,6 +17,7 @@ use DrevOps\VortexInstaller\Prompts\Handlers\GithubRepo; use DrevOps\VortexInstaller\Prompts\Handlers\GithubToken; use DrevOps\VortexInstaller\Prompts\Handlers\HostingProvider; +use DrevOps\VortexInstaller\Prompts\Handlers\Internal; use DrevOps\VortexInstaller\Prompts\Handlers\LabelMergeConflictsPr; use DrevOps\VortexInstaller\Prompts\Handlers\MachineName; use DrevOps\VortexInstaller\Prompts\Handlers\ModulePrefix; @@ -39,26 +33,32 @@ use DrevOps\VortexInstaller\Prompts\Handlers\ThemeRunner; use DrevOps\VortexInstaller\Prompts\Handlers\Webroot; use DrevOps\VortexInstaller\Prompts\PromptManager; +use DrevOps\VortexInstaller\Tests\Traits\TuiTrait; +use DrevOps\VortexInstaller\Utils\Composer; use DrevOps\VortexInstaller\Utils\Config; use DrevOps\VortexInstaller\Utils\Converter; +use DrevOps\VortexInstaller\Utils\Env; use DrevOps\VortexInstaller\Utils\File; use DrevOps\VortexInstaller\Utils\Git; +use DrevOps\VortexInstaller\Utils\Tui; use Laravel\Prompts\Key; +use Laravel\Prompts\Prompt; +use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Component\Yaml\Yaml; -#[CoversClass(PromptManager::class)] -#[CoversClass(Tui::class)] -#[CoversClass(Env::class)] -#[CoversClass(Converter::class)] -#[CoversClass(Composer::class)] +#[CoversClass(AiCodeInstructions::class)] #[CoversClass(AssignAuthorPr::class)] #[CoversClass(CiProvider::class)] #[CoversClass(CodeProvider::class)] +#[CoversClass(Composer::class)] +#[CoversClass(Converter::class)] #[CoversClass(DatabaseDownloadSource::class)] #[CoversClass(DatabaseImage::class)] #[CoversClass(DependencyUpdatesProvider::class)] #[CoversClass(DeployType::class)] #[CoversClass(Domain::class)] +#[CoversClass(Env::class)] #[CoversClass(GithubRepo::class)] #[CoversClass(GithubToken::class)] #[CoversClass(HostingProvider::class)] @@ -72,10 +72,12 @@ #[CoversClass(PreserveDocsOnboarding::class)] #[CoversClass(PreserveDocsProject::class)] #[CoversClass(Profile::class)] +#[CoversClass(PromptManager::class)] #[CoversClass(ProvisionType::class)] #[CoversClass(Services::class)] #[CoversClass(Theme::class)] #[CoversClass(ThemeRunner::class)] +#[CoversClass(Tui::class)] #[CoversClass(Webroot::class)] class PromptManagerTest extends UnitTestCase { @@ -203,6 +205,7 @@ public static function dataProviderPrompt(): array { LabelMergeConflictsPr::id() => TRUE, PreserveDocsProject::id() => TRUE, PreserveDocsOnboarding::id() => TRUE, + AiCodeInstructions::id() => AiCodeInstructions::NONE, ]; $expected_installed = [ @@ -525,7 +528,8 @@ function (PromptManagerTest $test, Config $config): void { File::dump(static::$sut . '/docker-compose.yml', <<<'YAML' - !text | first line -YAML); +YAML + ); }, ], 'services - discovery - none' => [ @@ -821,20 +825,30 @@ function (PromptManagerTest $test, Config $config): void { File::dump(static::$sut . '/docs/onboarding.md'); }, ], - 'preserve onboarding checklist - discovery - removed' => [ + + 'ai instructions - discovery' => [ [], - [PreserveDocsOnboarding::id() => FALSE] + $expected_installed, + [AiCodeInstructions::id() => AiCodeInstructions::CLAUDE] + $expected_installed, function (PromptManagerTest $test, Config $config): void { $test->stubVortexProject($config); + File::dump(static::$sut . '/CLAUDE.md'); }, ], - 'preserve onboarding checklist - discovery - non-Vortex' => [ + 'ai instructions - discovery - removed' => [ [], - [PreserveDocsOnboarding::id() => TRUE] + $expected_defaults, + [AiCodeInstructions::id() => AiCodeInstructions::NONE] + $expected_installed, function (PromptManagerTest $test, Config $config): void { - File::dump(static::$sut . '/docs/onboarding.md'); + $test->stubVortexProject($config); + }, + ], + 'ai instructions - discovery - non-Vortex' => [ + [], + [AiCodeInstructions::id() => AiCodeInstructions::NONE] + $expected_defaults, + function (PromptManagerTest $test, Config $config): void { + File::dump(static::$sut . '/CLAUDE.md'); }, ], + ]; } diff --git a/CLAUDE.md b/CLAUDE.md index 5c9fe3089..4d6243d79 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,9 +1,13 @@ # Vortex Drupal Project - Development Guide +[//]: # (#;< VORTEX_DEV) + > **🚀 PROJECT MODE**: This guide helps with **developing Drupal projects** created from the Vortex template. -> +> > For **maintaining the Vortex template itself**, see the maintenance guide: `.vortex/CLAUDE.md` +[//]: # (#;> VORTEX_DEV) + ## Project Overview This is a Drupal project built with **Vortex** - a comprehensive Drupal project template by DrevOps that provides production-ready development and deployment workflows. @@ -21,44 +25,56 @@ ahoy up ahoy info ``` -## Development Workflows +## Local Development Commands (Ahoy) -### Local Development Commands (Ahoy) +### Environment management ```bash -# Environment management ahoy up # Start Docker containers ahoy down # Stop Docker containers ahoy restart # Restart containers ahoy info # Show project information and URLs +``` + +### Site building and provisioning -# Site building and provisioning +```bash ahoy build # Build site from scratch ahoy provision # Provision site (install/import DB) ahoy reset # Reset to clean state +``` -# Database operations [//]: # (#;< !DB_DOWNLOAD_SOURCE_NONE) + +### Database operations + +```bash ahoy download-db # Download fresh database -[//]: # (#;> !DB_DOWNLOAD_SOURCE_NONE) ahoy export-db # Export current database ahoy import-db # Import database from file +``` + +[//]: # (#;> !DB_DOWNLOAD_SOURCE_NONE) -# Development tools +### Development tools + +```bash ahoy drush [command] # Run Drush commands ahoy composer [command] # Run Composer commands ahoy phpcs # Run code style checks ahoy phpcbf # Fix code style issues ``` -### Code Quality and Testing +### Code Quality ```bash -# Linting and code standards ahoy lint # Run all linting checks ahoy lint-fix # Fix automatically fixable issues +``` + +### Testing -# Testing +```bash ahoy test-unit # Run PHPUnit tests ahoy test-bdd # Run Behat (BDD) tests ahoy test # Run all tests @@ -77,9 +93,7 @@ ahoy test # Run all tests │ └── custom/ # Project-specific custom scripts ├── web/ # Drupal webroot │ ├── modules/custom/ # Custom modules -[//]: # (#;< DRUPAL_THEME) │ ├── themes/custom/ # Custom themes -[//]: # (#;> DRUPAL_THEME) │ └── sites/default/ # Drupal site configuration ├── tests/ │ ├── behat/ # Behavioral tests (BDD) @@ -91,6 +105,7 @@ ahoy test # Run all tests ## Configuration Management ### Exporting Configuration + ```bash # Export all configuration changes ahoy drush config:export @@ -100,6 +115,7 @@ ahoy drush config:export --diff ``` ### Importing Configuration + ```bash # Import configuration (usually part of deployment) ahoy drush config:import @@ -108,56 +124,32 @@ ahoy drush config:import ahoy drush config:import --source=../config/stage ``` -## Custom Development - -### Creating Custom Modules -```bash -# Generate module scaffold -ahoy drush generate:module [module_name] - -# Enable custom module -ahoy drush pm:install [module_name] -``` - [//]: # (#;< DRUPAL_THEME) ### Theme Development + ```bash # Navigate to custom theme -cd web/themes/custom/[theme_name] +cd web/themes/custom/your_site_theme # Install theme dependencies (if using npm/yarn) -npm install +yarn install # Build theme assets -npm run build +yarn run build # Watch for changes during development -npm run watch +yarn run watch ``` [//]: # (#;> DRUPAL_THEME) ## Database and Content -### Database Operations -```bash [//]: # (#;< !DB_DOWNLOAD_SOURCE_NONE) -# Download latest database -ahoy download-db -[//]: # (#;> !DB_DOWNLOAD_SOURCE_NONE) - -# Import database from file -ahoy import-db path/to/database.sql - -# Create database snapshot -ahoy export-db-file - -# Reset to fresh install -ahoy provision --override-db -``` ### Content Management + - Use Configuration Management for structure (content types, fields, views) - Use database imports for content in non-production environments - Use migration modules for structured content imports in production @@ -167,6 +159,7 @@ ahoy provision --override-db [//]: # (#;< SERVICE_SOLR) ### Solr Search + ```bash # Check Solr status ahoy drush search-api:status @@ -183,6 +176,7 @@ ahoy drush search-api:clear [//]: # (#;< SERVICE_VALKEY) ### Valkey (Redis-compatible caching) + ```bash # Check cache status ahoy drush cache:rebuild @@ -196,6 +190,7 @@ ahoy drush php-eval "\Drupal\redis\Client\ClientInterface::flushAll();" [//]: # (#;< SERVICE_CLAMAV) ### ClamAV Virus Scanning + ```bash # Test virus scanning functionality ahoy drush clamav:scan @@ -206,125 +201,65 @@ ahoy drush clamav:status [//]: # (#;> SERVICE_CLAMAV) -## Environment Configuration - -### Environment Variables (.env) -Key variables for local development: -```bash -# Project identification -VORTEX_PROJECT=your_project_name - -# Database configuration -DRUPAL_DATABASE_NAME=drupal -DRUPAL_DATABASE_USERNAME=drupal -DRUPAL_DATABASE_PASSWORD=drupal - -# Development settings -VORTEX_DEV_MODE=1 -VORTEX_DEBUG=1 -``` - -### Environment-Specific Settings -- **Development**: Full error reporting, development modules enabled -- **Staging**: Production-like but with debug capabilities -- **Production**: Error logging, caching enabled, development modules disabled - ## Deployment ### CI/CD Pipeline The project includes automated deployment via: [//]: # (#;< CI_PROVIDER_GHA) + - **GitHub Actions** for CI/CD + [//]: # (#;> CI_PROVIDER_GHA) + [//]: # (#;< CI_PROVIDER_CIRCLECI) + - **CircleCI** for CI/CD + [//]: # (#;> CI_PROVIDER_CIRCLECI) [//]: # (#;< HOSTING_LAGOON) -- **Lagoon** for hosting -[//]: # (#;> HOSTING_LAGOON) -[//]: # (#;< HOSTING_ACQUIA) -- **Acquia** for hosting -[//]: # (#;> HOSTING_ACQUIA) - -[//]: # (#;< DEPLOY_TYPE_CONTAINER_REGISTRY) -- **Container Registry** deployments for containerized environments -[//]: # (#;> DEPLOY_TYPE_CONTAINER_REGISTRY) - -### Manual Deployment Steps -```bash -# Build deployment artifact -./scripts/vortex/deploy.sh +- **Lagoon** for hosting -[//]: # (#;< HOSTING_LAGOON) -# Deploy to Lagoon environment -./scripts/vortex/deploy-lagoon.sh [//]: # (#;> HOSTING_LAGOON) [//]: # (#;< HOSTING_ACQUIA) -# Deploy to Acquia environment -./scripts/vortex/deploy-acquia.sh -[//]: # (#;> HOSTING_ACQUIA) -[//]: # (#;< DEPLOY_TYPE_WEBHOOK) -# Deploy via webhook -./scripts/vortex/deploy-webhook.sh -[//]: # (#;> DEPLOY_TYPE_WEBHOOK) -``` - -[//]: # (#;< HOSTING_LAGOON) - -### Lagoon-Specific Commands -```bash -# Login to Lagoon -lagoon login - -# Check environment status -lagoon list projects - -# View deployment logs -lagoon logs -``` - -[//]: # (#;> HOSTING_LAGOON) - -[//]: # (#;< HOSTING_ACQUIA) +- **Acquia** for hosting -### Acquia-Specific Commands -```bash -# Download database from Acquia -ahoy download-db-acquia +[//]: # (#;> HOSTING_ACQUIA) -# Copy files from Acquia -ahoy copy-files-acquia +[//]: # (#;< DEPLOY_TYPE_CONTAINER_REGISTRY) -# Deploy code to Acquia -ahoy deploy-acquia -``` +- **Container Registry** deployments for containerized environments -[//]: # (#;> HOSTING_ACQUIA) +[//]: # (#;> DEPLOY_TYPE_CONTAINER_REGISTRY) ## Common Tasks ### Adding Dependencies + ```bash # Add Drupal modules ahoy composer require drupal/module_name -# Add development dependencies +# Add development dependencies ahoy composer require --dev drupal/devel +``` [//]: # (#;< DRUPAL_THEME) -# Add theme build tools -cd web/themes/custom/[theme] && npm install [package] -[//]: # (#;> DRUPAL_THEME) + +### Add theme build tools + +```bash +cd web/themes/custom/your_site_theme && npm install [package] ``` -[//]: # (#;< DEPS_UPDATE_PROVIDER) +[//]: # (#;> DRUPAL_THEME) ### Dependency Management + Dependencies are automatically updated via RenovateBot: - **Composer dependencies**: Updated automatically with compatibility checks - **Node.js dependencies**: Updated in theme directories @@ -335,9 +270,8 @@ To manually check for updates: ahoy composer outdated ``` -[//]: # (#;> DEPS_UPDATE_PROVIDER) - ### Debugging + ```bash # Enable development modules ahoy drush pm:install devel webprofiler @@ -350,6 +284,7 @@ ahoy drush cache:rebuild ``` ### Performance + ```bash # Enable caching ahoy drush config:set system.performance css.preprocess 1 @@ -376,19 +311,6 @@ docker-compose ps ahoy reset # Rebuild if needed ``` -**Permission issues:** -```bash -# Fix file permissions -ahoy fix-permissions -``` - -**Memory issues:** -```bash -# Increase PHP memory limit in docker-compose.yml -# Or use ahoy with more memory -ahoy drush --memory-limit=512M [command] -``` - ## Resources - **Vortex Documentation**: https://vortex.drevops.com @@ -405,4 +327,4 @@ ahoy drush --memory-limit=512M [command] --- -*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.* \ No newline at end of file +*This guide covers the essentials for working with your Vortex-powered Drupal project. As your project grows, consider expanding this guide with project-specific workflows and conventions.*