OPR v5 + Flutter starter

This commit is contained in:
Matej Bačo 2025-03-11 18:19:25 +01:00
parent 0170b4c9e8
commit 994e2faa42
16 changed files with 80 additions and 38 deletions

2
.env
View file

@ -81,7 +81,7 @@ _APP_COMPUTE_RUNTIMES_NETWORK=runtimes
_APP_EXECUTOR_SECRET=your-secret-key
_APP_EXECUTOR_HOST=http://exc1/v1
_APP_FUNCTIONS_RUNTIMES=php-8.0,node-18.0,python-3.9,ruby-3.1
_APP_SITES_RUNTIMES=static-1,node-22,flutter-3.24
_APP_SITES_RUNTIMES=static-1,node-22,flutter-3.29
_APP_SITES_FRAMEWORKS=sveltekit,nextjs,nuxt,astro,remix,flutter,other,react,vue,analog,angular
_APP_MAINTENANCE_INTERVAL=86400
_APP_MAINTENANCE_DELAY=

View file

@ -26,7 +26,7 @@ use Utopia\Registry\Registry;
use Utopia\System\System;
// overwriting runtimes to be architectur agnostic for CLI
Config::setParam('runtimes', (new Runtimes('v4rc'))->getAll(supported: false));
Config::setParam('runtimes', (new Runtimes('v5'))->getAll(supported: false));
// require controllers after overwriting runtimes
require_once __DIR__ . '/controllers/general.php';

View file

@ -674,7 +674,7 @@ return [
'size' => 8,
'signed' => true,
'required' => false,
'default' => 'v4',
'default' => 'v5',
'array' => false,
'filters' => [],
],

View file

@ -221,7 +221,7 @@ return [
'flutter' => [
'key' => 'flutter',
'name' => 'Flutter',
'buildRuntime' => 'flutter-3.24',
'buildRuntime' => 'flutter-3.29',
'runtimes' => getVersions($templateRuntimes['FLUTTER']['versions'], 'flutter'),
'adapters' => [
'static' => [

View file

@ -6,4 +6,4 @@
use Appwrite\Runtimes\Runtimes;
return (new Runtimes('v4rc'))->getAll();
return (new Runtimes('v5'))->getAll();

View file

@ -73,7 +73,7 @@ const TEMPLATE_FRAMEWORKS = [
'installCommand' => '',
'buildCommand' => 'flutter build web',
'outputDirectory' => './build/web',
'buildRuntime' => 'flutter-3.24',
'buildRuntime' => 'flutter-3.29',
'adapter' => 'static',
'fallbackFile' => '',
],
@ -145,6 +145,48 @@ return [
'providerVersion' => '0.1.*',
'variables' => []
],
[
'key' => 'starter-for-flutter',
'name' => 'Flutter starter',
'useCases' => ['starter'],
'screenshotDark' => $url . '/images/sites/templates/starter-for-flutter-dark.png',
'screenshotLight' => $url . '/images/sites/templates/starter-for-flutter-light.png',
'frameworks' => [
getFramework('FLUTTER', [
'providerRootDirectory' => './',
]),
],
'vcsProvider' => 'github',
'providerRepositoryId' => 'starter-for-flutter',
'providerOwner' => 'appwrite',
'providerVersion' => '0.1.*',
'variables' => [
[
'name' => 'APPWRITE_PUBLIC_ENDPOINT',
'description' => 'Endpoint of Appwrite server',
'value' => '{apiEndpoint}',
'placeholder' => '{apiEndpoint}',
'required' => true,
'type' => 'text'
],
[
'name' => 'APPWRITE_PROJECT_ID',
'description' => 'Your Appwrite project ID',
'value' => '{projectId}',
'placeholder' => '{projectId}',
'required' => true,
'type' => 'text'
],
[
'name' => 'APPWRITE_PROJECT_NAME',
'description' => 'Your Appwrite project name',
'value' => '{projectName}',
'placeholder' => '{projectName}',
'required' => true,
'type' => 'text'
],
]
],
[
'key' => 'starter-for-js',
'name' => 'JavaScript starter',

View file

@ -245,7 +245,7 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
$version = match ($type) {
'function' => $resource->getAttribute('version', 'v2'),
'site' => 'v4',
'site' => 'v5',
};
$runtimes = Config::getParam($version === 'v2' ? 'runtimes-v2' : 'runtimes', []);
@ -416,7 +416,7 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
try {
$version = match ($type) {
'function' => $resource->getAttribute('version', 'v2'),
'site' => 'v4',
'site' => 'v5',
};
$entrypoint = match ($type) {
'function' => $deployment->getAttribute('entrypoint', ''),

40
composer.lock generated
View file

@ -157,16 +157,16 @@
},
{
"name": "appwrite/php-runtimes",
"version": "0.18.0",
"version": "0.18.1",
"source": {
"type": "git",
"url": "https://github.com/appwrite/runtimes.git",
"reference": "f1ddcc567325659ad79506bc9684a4fc2009dc42"
"reference": "97b5d97ae2c0fc9a2a374769eadff024f95783aa"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/runtimes/zipball/f1ddcc567325659ad79506bc9684a4fc2009dc42",
"reference": "f1ddcc567325659ad79506bc9684a4fc2009dc42",
"url": "https://api.github.com/repos/appwrite/runtimes/zipball/97b5d97ae2c0fc9a2a374769eadff024f95783aa",
"reference": "97b5d97ae2c0fc9a2a374769eadff024f95783aa",
"shasum": ""
},
"require": {
@ -206,9 +206,9 @@
],
"support": {
"issues": "https://github.com/appwrite/runtimes/issues",
"source": "https://github.com/appwrite/runtimes/tree/0.18.0"
"source": "https://github.com/appwrite/runtimes/tree/0.18.1"
},
"time": "2025-03-07T14:30:31+00:00"
"time": "2025-03-11T14:05:46+00:00"
},
{
"name": "beberlei/assert",
@ -5085,16 +5085,16 @@
"packages-dev": [
{
"name": "appwrite/sdk-generator",
"version": "0.40.2",
"version": "0.40.6",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "56f09482d9e2f223911277ab887f197402708049"
"reference": "d8816209a07e7d64ef62dbcaf8ad4aa1262f58b9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/56f09482d9e2f223911277ab887f197402708049",
"reference": "56f09482d9e2f223911277ab887f197402708049",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/d8816209a07e7d64ef62dbcaf8ad4aa1262f58b9",
"reference": "d8816209a07e7d64ef62dbcaf8ad4aa1262f58b9",
"shasum": ""
},
"require": {
@ -5130,9 +5130,9 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": {
"issues": "https://github.com/appwrite/sdk-generator/issues",
"source": "https://github.com/appwrite/sdk-generator/tree/0.40.2"
"source": "https://github.com/appwrite/sdk-generator/tree/0.40.6"
},
"time": "2025-03-06T16:31:03+00:00"
"time": "2025-03-10T19:04:24+00:00"
},
{
"name": "doctrine/annotations",
@ -5404,16 +5404,16 @@
},
{
"name": "laravel/pint",
"version": "v1.21.0",
"version": "v1.21.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "531fa0871fbde719c51b12afa3a443b8f4e4b425"
"reference": "c44bffbb2334e90fba560933c45948fa4a3f3e86"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/531fa0871fbde719c51b12afa3a443b8f4e4b425",
"reference": "531fa0871fbde719c51b12afa3a443b8f4e4b425",
"url": "https://api.github.com/repos/laravel/pint/zipball/c44bffbb2334e90fba560933c45948fa4a3f3e86",
"reference": "c44bffbb2334e90fba560933c45948fa4a3f3e86",
"shasum": ""
},
"require": {
@ -5424,9 +5424,9 @@
"php": "^8.2.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.68.5",
"illuminate/view": "^11.42.0",
"larastan/larastan": "^3.0.4",
"friendsofphp/php-cs-fixer": "^3.70.2",
"illuminate/view": "^11.44.1",
"larastan/larastan": "^3.1.0",
"laravel-zero/framework": "^11.36.1",
"mockery/mockery": "^1.6.12",
"nunomaduro/termwind": "^2.3",
@ -5466,7 +5466,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2025-02-18T03:18:57+00:00"
"time": "2025-03-11T03:22:21+00:00"
},
{
"name": "matthiasmullie/minify",

View file

@ -962,7 +962,7 @@ services:
hostname: exc1
<<: *x-logging
stop_signal: SIGINT
image: openruntimes/executor:0.7.9
image: openruntimes/executor:0.7.10
restart: unless-stopped
networks:
- appwrite
@ -985,7 +985,7 @@ services:
- OPR_EXECUTOR_ENV=$_APP_ENV
- OPR_EXECUTOR_RUNTIMES=$_APP_FUNCTIONS_RUNTIMES,$_APP_SITES_RUNTIMES
- OPR_EXECUTOR_SECRET=$_APP_EXECUTOR_SECRET
- OPR_EXECUTOR_RUNTIME_VERSIONS=v2,v4,v4rc
- OPR_EXECUTOR_RUNTIME_VERSIONS=v2,v5
- OPR_EXECUTOR_LOGGING_CONFIG=$_APP_LOGGING_CONFIG
- OPR_EXECUTOR_STORAGE_DEVICE=$_APP_STORAGE_DEVICE
- OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY=$_APP_STORAGE_S3_ACCESS_KEY

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -169,7 +169,7 @@ class Create extends Base
'commands' => $commands,
'scopes' => $scopes,
'search' => implode(' ', [$functionId, $name, $runtime]),
'version' => 'v4',
'version' => 'v5',
'installationId' => $installation->getId(),
'installationInternalId' => $installation->getInternalId(),
'providerRepositoryId' => $providerRepositoryId,

View file

@ -1102,7 +1102,7 @@ class Builds extends Action
{
return match ($resource->getCollection()) {
'functions' => $resource->getAttribute('version', 'v2'),
'sites' => 'v4',
'sites' => 'v5',
};
}

View file

@ -119,7 +119,7 @@ class Func extends Model
->addRule('version', [
'type' => self::TYPE_STRING,
'description' => 'Version of Open Runtimes used for the function.',
'default' => 'v4',
'default' => 'v5',
'example' => 'v2',
])
->addRule('installationId', [

View file

@ -74,8 +74,8 @@ class Executor
$route = "/runtimes";
// Remove after migration
if ($version == 'v3') {
$version = 'v4';
if ($version == 'v3' || $version === 'v4') {
$version = 'v5';
}
$params = [
@ -201,8 +201,8 @@ class Executor
$route = '/runtimes/' . $runtimeId . '/executions';
// Remove after migration
if ($version == 'v3') {
$version = 'v4';
if ($version == 'v3' || $version === 'v4') {
$version = 'v5';
}
$params = [

View file

@ -1268,7 +1268,7 @@ class FunctionsCustomServerTest extends Scope
return [
['folder' => 'php-fn', 'name' => 'php-8.0', 'entrypoint' => 'index.php', 'runtimeName' => 'PHP', 'runtimeVersion' => '8.0'],
['folder' => 'node', 'name' => 'node-18.0', 'entrypoint' => 'index.js', 'runtimeName' => 'Node.js', 'runtimeVersion' => '18.0'],
// TODO: Re-enable; temporarly disabled due to OPR v4rc issues
// TODO: Re-enable; temporarly disabled due to OPR v5 issues
// ['folder' => 'python', 'name' => 'python-3.9', 'entrypoint' => 'main.py', 'runtimeName' => 'Python', 'runtimeVersion' => '3.9'],
['folder' => 'ruby', 'name' => 'ruby-3.1', 'entrypoint' => 'main.rb', 'runtimeName' => 'Ruby', 'runtimeVersion' => '3.1'],
// Swift and Dart disabled on purpose, as it's very slow.