From db70d908ebfc29474ae3fce5433811afcd786242 Mon Sep 17 00:00:00 2001 From: Niclas van Eyk Date: Fri, 8 Dec 2023 21:07:13 +0100 Subject: [PATCH 1/2] add pail support --- .../Http/Request/CreateProjectRequest.php | 5 +- .../BuildsCreateProjectForm.php | 1 + .../CreateProjectRequestParameter.php | 39 +++++++-------- .../Sections/DevelopmentTools.php | 1 + .../Sections/Metadata/PhpVersion.php | 1 + .../Console/Commands/UpdateSailImages.php | 2 +- .../ComposerPackages/Packages/Pail.php | 15 ++++++ .../ComposerPackagesToInstallResolver.php | 5 ++ .../partials/form-section/dev-tools.blade.php | 47 ++++++++++--------- .../CreateProjectFormFixtures.php | 4 +- 10 files changed, 75 insertions(+), 45 deletions(-) create mode 100644 domains/Laravel/ComposerPackages/Packages/Pail.php diff --git a/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php b/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php index 5699fadf..a128a6d6 100644 --- a/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php +++ b/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php @@ -39,12 +39,12 @@ public function rules(): array P::VENDOR => [ 'required', 'string', - 'regex:/'.PackageName::VENDOR_REGEX.'/', + 'regex:/' . PackageName::VENDOR_REGEX . '/', ], P::PROJECT => [ 'required', 'string', - 'regex:/'.PackageName::PACKAGE_REGEX.'/', + 'regex:/' . PackageName::PACKAGE_REGEX . '/', ], P::PHP => ['sometimes', 'string', new ValidPhpVersionOption()], P::DESCRIPTION => ['nullable', 'sometimes', 'string'], @@ -92,6 +92,7 @@ public function rules(): array /** @see DevelopmentTools */ P::USES_TELESCOPE => ['sometimes'], P::USES_ENVOY => ['sometimes'], + P::USES_PAIL => ['sometimes'], /** @see Testing */ P::USES_DUSK => ['sometimes'], diff --git a/domains/CreateProjectForm/Http/Request/CreateProjectRequest/BuildsCreateProjectForm.php b/domains/CreateProjectForm/Http/Request/CreateProjectRequest/BuildsCreateProjectForm.php index 668169c1..0e98113c 100644 --- a/domains/CreateProjectForm/Http/Request/CreateProjectRequest/BuildsCreateProjectForm.php +++ b/domains/CreateProjectForm/Http/Request/CreateProjectRequest/BuildsCreateProjectForm.php @@ -90,6 +90,7 @@ public function buildForm(): CreateProjectForm usesTelescope: $this->has(P::USES_TELESCOPE), usesEnvoy: $this->has(P::USES_ENVOY), usesPennant: $this->has(P::USES_PENNANT), + usesPail: $this->has(P::USES_PAIL), usesDevcontainer: $this->has(P::USES_DEVCONTAINER), ), testing: new Testing( diff --git a/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php b/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php index 99155809..bac3b249 100644 --- a/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php +++ b/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php @@ -32,12 +32,12 @@ class CreateProjectRequestParameter /** @see Authentication */ const STARTER = 'starter'; - const USES_JETSTREAM_TEAMS = self::USES_PREFIX.'jetstream-teams'; + const USES_JETSTREAM_TEAMS = self::USES_PREFIX . 'jetstream-teams'; const JETSTREAM_FRONTEND = 'jetstream-frontend'; const BREEZE_FRONTEND = 'breeze-frontend'; - const USES_FORTIFY = self::USES_PREFIX.'fortify'; - const USES_PASSPORT = self::USES_PREFIX.'passport'; - const USES_SOCIALITE = self::USES_PREFIX.'socialite'; + const USES_FORTIFY = self::USES_PREFIX . 'fortify'; + const USES_PASSPORT = self::USES_PREFIX . 'passport'; + const USES_SOCIALITE = self::USES_PREFIX . 'socialite'; /** @see Database */ const DATABASE = 'database'; @@ -50,18 +50,19 @@ class CreateProjectRequestParameter /** @see Queue */ const QUEUE_DRIVER = 'queue'; - const USES_HORIZON = self::USES_PREFIX.'horizon'; + const USES_HORIZON = self::USES_PREFIX . 'horizon'; /** @see DevelopmentTools */ - const USES_TELESCOPE = self::USES_PREFIX.'telescope'; - const USES_MAILHOG = self::USES_PREFIX.'mailhog'; - const USES_ENVOY = self::USES_PREFIX.'envoy'; - const USES_PENNANT = self::USES_PREFIX.'pennant'; - const USES_DEVCONTAINER = self::USES_PREFIX.'devcontainer'; + const USES_TELESCOPE = self::USES_PREFIX . 'telescope'; + const USES_MAILHOG = self::USES_PREFIX . 'mailhog'; + const USES_ENVOY = self::USES_PREFIX . 'envoy'; + const USES_PAIL = self::USES_PREFIX . 'pail'; + const USES_PENNANT = self::USES_PREFIX . 'pennant'; + const USES_DEVCONTAINER = self::USES_PREFIX . 'devcontainer'; /** @see Testing */ - const USES_DUSK = self::USES_PREFIX.'dusk'; - const USES_PEST = self::USES_PREFIX.'pest'; + const USES_DUSK = self::USES_PREFIX . 'dusk'; + const USES_PEST = self::USES_PREFIX . 'pest'; /** @see Payment */ const CASHIER_DRIVER = 'cashier'; @@ -76,11 +77,11 @@ class CreateProjectRequestParameter const MAIL_DRIVER = 'mail'; /** @see Storage */ - const USES_MINIO = self::USES_PREFIX.'minio'; - const USES_FLYSYSTEM_S3_DRIVER = self::USES_PREFIX.'flysystem-s3'; - const USES_FLYSYSTEM_SFTP_DRIVER = self::USES_PREFIX.'flysystem-sftp'; - const USES_FLYSYSTEM_FTP_DRIVER = self::USES_PREFIX.'flysystem-ftp'; - const USES_FLYSYSTEM_READONLY_DRIVER = self::USES_PREFIX.'flysystem-readonly'; - const USES_FLYSYSTEM_SCOPED_DRIVER = self::USES_PREFIX.'flysystem-scoped'; - const USES_DBAL = self::USES_PREFIX.'dbal'; + const USES_MINIO = self::USES_PREFIX . 'minio'; + const USES_FLYSYSTEM_S3_DRIVER = self::USES_PREFIX . 'flysystem-s3'; + const USES_FLYSYSTEM_SFTP_DRIVER = self::USES_PREFIX . 'flysystem-sftp'; + const USES_FLYSYSTEM_FTP_DRIVER = self::USES_PREFIX . 'flysystem-ftp'; + const USES_FLYSYSTEM_READONLY_DRIVER = self::USES_PREFIX . 'flysystem-readonly'; + const USES_FLYSYSTEM_SCOPED_DRIVER = self::USES_PREFIX . 'flysystem-scoped'; + const USES_DBAL = self::USES_PREFIX . 'dbal'; } diff --git a/domains/CreateProjectForm/Sections/DevelopmentTools.php b/domains/CreateProjectForm/Sections/DevelopmentTools.php index 7f6647bf..50eb029e 100644 --- a/domains/CreateProjectForm/Sections/DevelopmentTools.php +++ b/domains/CreateProjectForm/Sections/DevelopmentTools.php @@ -9,6 +9,7 @@ public function __construct( public bool $usesEnvoy, public bool $usesPennant, public bool $usesDevcontainer, + public bool $usesPail, ) { } } diff --git a/domains/CreateProjectForm/Sections/Metadata/PhpVersion.php b/domains/CreateProjectForm/Sections/Metadata/PhpVersion.php index e0f358d9..11944aeb 100644 --- a/domains/CreateProjectForm/Sections/Metadata/PhpVersion.php +++ b/domains/CreateProjectForm/Sections/Metadata/PhpVersion.php @@ -10,6 +10,7 @@ class PhpVersion public const v8_1 = '8.1'; public const v8_2 = '8.2'; + public const v8_3 = '8.3'; public static function latest(): string { diff --git a/domains/DockerImages/Console/Commands/UpdateSailImages.php b/domains/DockerImages/Console/Commands/UpdateSailImages.php index bb38284f..491787a2 100644 --- a/domains/DockerImages/Console/Commands/UpdateSailImages.php +++ b/domains/DockerImages/Console/Commands/UpdateSailImages.php @@ -25,7 +25,7 @@ public function handle(): int foreach (File::directories($runtimesPath) as $runtimePath) { $runtime = basename($runtimePath); - if (in_array($runtime, ['7.4'])) { + if (in_array($runtime, ['7.4', '8.0'])) { $this->info("Skipping '$runtime'..."); continue; } diff --git a/domains/Laravel/ComposerPackages/Packages/Pail.php b/domains/Laravel/ComposerPackages/Packages/Pail.php new file mode 100644 index 00000000..6a33ddaa --- /dev/null +++ b/domains/Laravel/ComposerPackages/Packages/Pail.php @@ -0,0 +1,15 @@ +usesPail) { + $packages[] = new Pail(); + } + return $packages; } diff --git a/resources/views/partials/form-section/dev-tools.blade.php b/resources/views/partials/form-section/dev-tools.blade.php index d79333df..151d7b6a 100644 --- a/resources/views/partials/form-section/dev-tools.blade.php +++ b/resources/views/partials/form-section/dev-tools.blade.php @@ -1,21 +1,25 @@ @php - use Domains\CreateProjectForm\Http\Request\CreateProjectRequest\CreateProjectRequestParameter as P; - use Domains\Laravel\ComposerPackages\Packages; - - $telescope = new Packages\Telescope(); - $telescopeParameter = P::USES_TELESCOPE; - $usesTelescope = checkbox_checked($telescopeParameter); - - $envoy = new Packages\Envoy(); - $envoyParameter = P::USES_ENVOY; - $usesEnvoy = checkbox_checked($envoyParameter); - - $pennant = new Packages\Pennant(); - $pennantParameter = P::USES_PENNANT; - $usesPennant = checkbox_checked($pennantParameter); - - $devcontainerParameter = P::USES_DEVCONTAINER; - $usesDevcontainer = checkbox_checked($devcontainerParameter); +use Domains\CreateProjectForm\Http\Request\CreateProjectRequest\CreateProjectRequestParameter as P; +use Domains\Laravel\ComposerPackages\Packages; + +$telescope = new Packages\Telescope(); +$telescopeParameter = P::USES_TELESCOPE; +$usesTelescope = checkbox_checked($telescopeParameter); + +$envoy = new Packages\Envoy(); +$envoyParameter = P::USES_ENVOY; +$usesEnvoy = checkbox_checked($envoyParameter); + +$pennant = new Packages\Pennant(); +$pennantParameter = P::USES_PENNANT; +$usesPennant = checkbox_checked($pennantParameter); + +$pail = new Packages\Pail(); +$pailParameter = P::USES_PAIL; +$usesPail = checkbox_checked($pailParameter); + +$devcontainerParameter = P::USES_DEVCONTAINER; +$usesDevcontainer = checkbox_checked($devcontainerParameter); @endphp @@ -44,10 +48,9 @@ + - - Enables your IDE to run inside your local development containers using the Development Containers standard. + + Enables your IDE to run inside your local development containers using the Development Containers standard. - + \ No newline at end of file diff --git a/tests/Feature/Domains/ProjectCreation/CreateProjectFormFixtures.php b/tests/Feature/Domains/ProjectCreation/CreateProjectFormFixtures.php index 830061c8..23beb718 100644 --- a/tests/Feature/Domains/ProjectCreation/CreateProjectFormFixtures.php +++ b/tests/Feature/Domains/ProjectCreation/CreateProjectFormFixtures.php @@ -119,7 +119,8 @@ public static function metadata(): Metadata return new Metadata( vendorName: 'foo', projectName: 'bar', - description: '', phpVersion: Metadata\PhpVersion::latest(), + description: '', + phpVersion: Metadata\PhpVersion::latest(), ); } @@ -159,6 +160,7 @@ public static function developmentTools(): DevelopmentTools usesTelescope: true, usesEnvoy: true, usesPennant: true, + usesPail: true, usesDevcontainer: true, ); } From ede9704aaa78062a62e6f9aecba3bacaa555f0c8 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Fri, 8 Dec 2023 20:07:27 +0000 Subject: [PATCH 2/2] Apply fixes from StyleCI [ci skip] [skip ci] --- .../Http/Request/CreateProjectRequest.php | 4 +- .../CreateProjectRequestParameter.php | 40 +++++++++---------- .../PostDownloadTaskGroupCreator.php | 2 +- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php b/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php index a128a6d6..62a6f50c 100644 --- a/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php +++ b/domains/CreateProjectForm/Http/Request/CreateProjectRequest.php @@ -39,12 +39,12 @@ public function rules(): array P::VENDOR => [ 'required', 'string', - 'regex:/' . PackageName::VENDOR_REGEX . '/', + 'regex:/'.PackageName::VENDOR_REGEX.'/', ], P::PROJECT => [ 'required', 'string', - 'regex:/' . PackageName::PACKAGE_REGEX . '/', + 'regex:/'.PackageName::PACKAGE_REGEX.'/', ], P::PHP => ['sometimes', 'string', new ValidPhpVersionOption()], P::DESCRIPTION => ['nullable', 'sometimes', 'string'], diff --git a/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php b/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php index bac3b249..bc760d8d 100644 --- a/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php +++ b/domains/CreateProjectForm/Http/Request/CreateProjectRequest/CreateProjectRequestParameter.php @@ -32,12 +32,12 @@ class CreateProjectRequestParameter /** @see Authentication */ const STARTER = 'starter'; - const USES_JETSTREAM_TEAMS = self::USES_PREFIX . 'jetstream-teams'; + const USES_JETSTREAM_TEAMS = self::USES_PREFIX.'jetstream-teams'; const JETSTREAM_FRONTEND = 'jetstream-frontend'; const BREEZE_FRONTEND = 'breeze-frontend'; - const USES_FORTIFY = self::USES_PREFIX . 'fortify'; - const USES_PASSPORT = self::USES_PREFIX . 'passport'; - const USES_SOCIALITE = self::USES_PREFIX . 'socialite'; + const USES_FORTIFY = self::USES_PREFIX.'fortify'; + const USES_PASSPORT = self::USES_PREFIX.'passport'; + const USES_SOCIALITE = self::USES_PREFIX.'socialite'; /** @see Database */ const DATABASE = 'database'; @@ -50,19 +50,19 @@ class CreateProjectRequestParameter /** @see Queue */ const QUEUE_DRIVER = 'queue'; - const USES_HORIZON = self::USES_PREFIX . 'horizon'; + const USES_HORIZON = self::USES_PREFIX.'horizon'; /** @see DevelopmentTools */ - const USES_TELESCOPE = self::USES_PREFIX . 'telescope'; - const USES_MAILHOG = self::USES_PREFIX . 'mailhog'; - const USES_ENVOY = self::USES_PREFIX . 'envoy'; - const USES_PAIL = self::USES_PREFIX . 'pail'; - const USES_PENNANT = self::USES_PREFIX . 'pennant'; - const USES_DEVCONTAINER = self::USES_PREFIX . 'devcontainer'; + const USES_TELESCOPE = self::USES_PREFIX.'telescope'; + const USES_MAILHOG = self::USES_PREFIX.'mailhog'; + const USES_ENVOY = self::USES_PREFIX.'envoy'; + const USES_PAIL = self::USES_PREFIX.'pail'; + const USES_PENNANT = self::USES_PREFIX.'pennant'; + const USES_DEVCONTAINER = self::USES_PREFIX.'devcontainer'; /** @see Testing */ - const USES_DUSK = self::USES_PREFIX . 'dusk'; - const USES_PEST = self::USES_PREFIX . 'pest'; + const USES_DUSK = self::USES_PREFIX.'dusk'; + const USES_PEST = self::USES_PREFIX.'pest'; /** @see Payment */ const CASHIER_DRIVER = 'cashier'; @@ -77,11 +77,11 @@ class CreateProjectRequestParameter const MAIL_DRIVER = 'mail'; /** @see Storage */ - const USES_MINIO = self::USES_PREFIX . 'minio'; - const USES_FLYSYSTEM_S3_DRIVER = self::USES_PREFIX . 'flysystem-s3'; - const USES_FLYSYSTEM_SFTP_DRIVER = self::USES_PREFIX . 'flysystem-sftp'; - const USES_FLYSYSTEM_FTP_DRIVER = self::USES_PREFIX . 'flysystem-ftp'; - const USES_FLYSYSTEM_READONLY_DRIVER = self::USES_PREFIX . 'flysystem-readonly'; - const USES_FLYSYSTEM_SCOPED_DRIVER = self::USES_PREFIX . 'flysystem-scoped'; - const USES_DBAL = self::USES_PREFIX . 'dbal'; + const USES_MINIO = self::USES_PREFIX.'minio'; + const USES_FLYSYSTEM_S3_DRIVER = self::USES_PREFIX.'flysystem-s3'; + const USES_FLYSYSTEM_SFTP_DRIVER = self::USES_PREFIX.'flysystem-sftp'; + const USES_FLYSYSTEM_FTP_DRIVER = self::USES_PREFIX.'flysystem-ftp'; + const USES_FLYSYSTEM_READONLY_DRIVER = self::USES_PREFIX.'flysystem-readonly'; + const USES_FLYSYSTEM_SCOPED_DRIVER = self::USES_PREFIX.'flysystem-scoped'; + const USES_DBAL = self::USES_PREFIX.'dbal'; } diff --git a/domains/PostDownload/PostDownloadTaskGroupCreator.php b/domains/PostDownload/PostDownloadTaskGroupCreator.php index e0e6c424..d37130d0 100644 --- a/domains/PostDownload/PostDownloadTaskGroupCreator.php +++ b/domains/PostDownload/PostDownloadTaskGroupCreator.php @@ -76,6 +76,6 @@ private function hasFrontend(CreateProjectForm $form): bool $usesBreezeApiStack = $starterKit instanceof Breeze && $starterKit->frontend->name === BreezeFrontend::API; - return !$usesBreezeApiStack; + return ! $usesBreezeApiStack; } }