Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ COPY composer.lock composer.lock

RUN composer install --no-dev --no-interaction --no-progress --no-scripts --optimize-autoloader

FROM php:8.1.11-alpine3.16
FROM php:8.3-alpine

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The previous base image was pinned to an exact patch version (php:8.1.11-alpine3.16), making builds fully reproducible. The new tag php:8.3-alpine is a floating tag that silently picks up new PHP 8.3 patch releases and Alpine upgrades. A minor PHP patch could introduce a behavioural change that’s hard to trace back to the image. Pinning to a specific release (e.g. php:8.3.22-alpine3.22) preserves reproducibility.

Suggested change
FROM php:8.3-alpine
FROM php:8.3.22-alpine3.22
Prompt To Fix With AI
This is a comment left during a code review.
Path: Dockerfile
Line: 8

Comment:
The previous base image was pinned to an exact patch version (`php:8.1.11-alpine3.16`), making builds fully reproducible. The new tag `php:8.3-alpine` is a floating tag that silently picks up new PHP 8.3 patch releases and Alpine upgrades. A minor PHP patch could introduce a behavioural change that’s hard to trace back to the image. Pinning to a specific release (e.g. `php:8.3.22-alpine3.22`) preserves reproducibility.

```suggestion
FROM php:8.3.22-alpine3.22
```

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code Fix in Codex


COPY --from=composer /app/vendor /app/vendor
COPY global.inc.php /app/global.inc.php
Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@
}
],
"require": {
"php": ">=8.0",
"php": ">=8.2",
"ext-curl": "*",
"appwrite/appwrite": "^12.0.0"
"appwrite/appwrite": "^27.0.0"
},
"config": {
"optimize-autoloader": true,
Expand Down
12 changes: 6 additions & 6 deletions playground.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ function createDatabase(): array
name: "Test Database"
);

$databaseId = $response['$id'];
$databaseId = $response->id;

return [
'call' => 'api.createDatabase',
Expand Down Expand Up @@ -91,7 +91,7 @@ function createCollection(): array
]
);

$collectionId = $response['$id'];
$collectionId = $response->id;

$response1 = $databases->createStringAttribute(
$databaseId,
Expand Down Expand Up @@ -230,7 +230,7 @@ function createBucket(): array
fileSecurity: true,
);

$bucketId = $response['$id'];
$bucketId = $response->id;

return [
'call' => 'api.createBucket',
Expand Down Expand Up @@ -260,7 +260,7 @@ function createFile(): array
]
);

$fileId = $response['$id'];
$fileId = $response->id;

return [
'call' => 'api.createFile',
Expand Down Expand Up @@ -408,7 +408,7 @@ functionId: ID::unique(),
execute: [Role::any()],
);

$functionId = $response['$id'];
$functionId = $response->id;

return [
'call' => 'api.createFunction',
Expand Down Expand Up @@ -490,7 +490,7 @@ functionId: $functionId,
// wait for 2 seconds to ensure execution is finished
sleep(2);

$asyncResponse = $functions->getExecution($functionId, $response['$id']);
$asyncResponse = $functions->getExecution($functionId, $response->id);

return [
'call' => 'api.createExecution',
Expand Down