diff --git a/.gitmodules b/.gitmodules index e9d2cb296f..a959e29c23 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "app/console"] path = app/console url = https://github.com/appwrite/console - branch = 4.3.27 + branch = 4.3.30 diff --git a/CHANGES.md b/CHANGES.md index 4cf033308c..e6649d795e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,34 @@ +# Version 1.5.10 + +## What's Changed + +### Notable changes + +* Bump console to version 4.3.30 in [#8520](https://github.com/appwrite/appwrite/pull/8520) + +### Fixes + +* Fix migration stuck at "Starting Data Migration [...]" in [#8519](https://github.com/appwrite/appwrite/pull/8519) + +# Version 1.5.9 + +## What's Changed + +### Notable changes + +* Add Darija (Moroccan Arabic) translation file in [7501](https://github.com/appwrite/appwrite/pull/7501) +* Bump console to version 4.3.29 in [8504](https://github.com/appwrite/appwrite/pull/8504) + +### Fixes + +* Fix domain check in [8472](https://github.com/appwrite/appwrite/pull/8472) +* Fix "API must be called in the coroutine" in [8495](https://github.com/appwrite/appwrite/pull/8495) +* Bump executor version from 0.5.5 to 0.5.7 in [8502](https://github.com/appwrite/appwrite/pull/8502) + +### Miscellaneous +* Add profiler for debugging in [8397](https://github.com/appwrite/appwrite/pull/8397) +* Document APIs that don't support redirects in [8233](https://github.com/appwrite/appwrite/pull/8233) + # Version 1.5.8 ## What's Changed diff --git a/README-CN.md b/README-CN.md index eb22339ebc..5e0cbab4c4 100644 --- a/README-CN.md +++ b/README-CN.md @@ -67,7 +67,7 @@ docker run -it --rm \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --entrypoint="install" \ - appwrite/appwrite:1.5.8 + appwrite/appwrite:1.5.10 ``` ### Windows @@ -79,7 +79,7 @@ docker run -it --rm ^ --volume //var/run/docker.sock:/var/run/docker.sock ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --entrypoint="install" ^ - appwrite/appwrite:1.5.8 + appwrite/appwrite:1.5.10 ``` #### PowerShell @@ -89,7 +89,7 @@ docker run -it --rm ` --volume /var/run/docker.sock:/var/run/docker.sock ` --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ` --entrypoint="install" ` - appwrite/appwrite:1.5.8 + appwrite/appwrite:1.5.10 ``` 运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。 diff --git a/README.md b/README.md index c355674ea5..8305d78ef0 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ docker run -it --rm \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --entrypoint="install" \ - appwrite/appwrite:1.5.8 + appwrite/appwrite:1.5.10 ``` ### Windows @@ -87,7 +87,7 @@ docker run -it --rm ^ --volume //var/run/docker.sock:/var/run/docker.sock ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --entrypoint="install" ^ - appwrite/appwrite:1.5.8 + appwrite/appwrite:1.5.10 ``` #### PowerShell @@ -97,7 +97,7 @@ docker run -it --rm ` --volume /var/run/docker.sock:/var/run/docker.sock ` --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ` --entrypoint="install" ` - appwrite/appwrite:1.5.8 + appwrite/appwrite:1.5.10 ``` Once the Docker installation is complete, go to http://localhost to access the Appwrite console from your browser. Please note that on non-Linux native hosts, the server might take a few minutes to start after completing the installation. diff --git a/app/console b/app/console index e0828010f4..0959b594b3 160000 --- a/app/console +++ b/app/console @@ -1 +1 @@ -Subproject commit e0828010f4c222bb99cf65ddfed288e60602666f +Subproject commit 0959b594b32f176819d4afb3a769afea212db789 diff --git a/app/init.php b/app/init.php index bef85ff1cc..3b43d98895 100644 --- a/app/init.php +++ b/app/init.php @@ -112,8 +112,8 @@ const APP_LIMIT_LIST_DEFAULT = 25; // Default maximum number of items to return const APP_KEY_ACCCESS = 24 * 60 * 60; // 24 hours const APP_USER_ACCCESS = 24 * 60 * 60; // 24 hours const APP_CACHE_UPDATE = 24 * 60 * 60; // 24 hours -const APP_CACHE_BUSTER = 4327; -const APP_VERSION_STABLE = '1.5.8'; +const APP_CACHE_BUSTER = 4330; +const APP_VERSION_STABLE = '1.5.10'; const APP_DATABASE_ATTRIBUTE_EMAIL = 'email'; const APP_DATABASE_ATTRIBUTE_ENUM = 'enum'; const APP_DATABASE_ATTRIBUTE_IP = 'ip'; diff --git a/app/views/install/compose.phtml b/app/views/install/compose.phtml index 374e20eb39..39cc03c8a6 100644 --- a/app/views/install/compose.phtml +++ b/app/views/install/compose.phtml @@ -753,7 +753,7 @@ $image = $this->getParam('image', ''); <<: *x-logging restart: unless-stopped stop_signal: SIGINT - image: openruntimes/executor:0.5.5 + image: openruntimes/executor:0.5.7 networks: - appwrite - runtimes diff --git a/docker-compose.yml b/docker-compose.yml index be46825992..c17f81bddf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -833,7 +833,7 @@ services: hostname: exc1 <<: *x-logging stop_signal: SIGINT - image: openruntimes/executor:0.5.5 + image: openruntimes/executor:0.5.7 restart: unless-stopped networks: - appwrite diff --git a/src/Appwrite/Migration/Migration.php b/src/Appwrite/Migration/Migration.php index a0accaf677..d0bb80d685 100644 --- a/src/Appwrite/Migration/Migration.php +++ b/src/Appwrite/Migration/Migration.php @@ -87,6 +87,8 @@ abstract class Migration '1.5.6' => 'V20', '1.5.7' => 'V20', '1.5.8' => 'V20', + '1.5.9' => 'V20', + '1.5.10' => 'V20', ]; /** @@ -171,29 +173,27 @@ abstract class Migration Console::log('Migrating Collection ' . $collection['$id'] . ':'); - \Co\run(function (array $collection, callable $callback) { - foreach ($this->documentsIterator($collection['$id']) as $document) { - go(function (Document $document, callable $callback) { - if (empty($document->getId()) || empty($document->getCollection())) { - return; - } + foreach ($this->documentsIterator($collection['$id']) as $document) { + go(function (Document $document, callable $callback) { + if (empty($document->getId()) || empty($document->getCollection())) { + return; + } - $old = $document->getArrayCopy(); - $new = call_user_func($callback, $document); + $old = $document->getArrayCopy(); + $new = call_user_func($callback, $document); - if (is_null($new) || $new->getArrayCopy() == $old) { - return; - } + if (is_null($new) || $new->getArrayCopy() == $old) { + return; + } - try { - $this->projectDB->updateDocument($document->getCollection(), $document->getId(), $document); - } catch (\Throwable $th) { - Console::error('Failed to update document: ' . $th->getMessage()); - return; - } - }, $document, $callback); - } - }, $collection, $callback); + try { + $this->projectDB->updateDocument($document->getCollection(), $document->getId(), $document); + } catch (\Throwable $th) { + Console::error('Failed to update document: ' . $th->getMessage()); + return; + } + }, $document, $callback); + } } } diff --git a/src/Appwrite/Migration/Version/V19.php b/src/Appwrite/Migration/Version/V19.php index bb887e40f7..18234ebdc4 100644 --- a/src/Appwrite/Migration/Version/V19.php +++ b/src/Appwrite/Migration/Version/V19.php @@ -816,29 +816,27 @@ class V19 extends Migration Console::log('Migrating Collection ' . $collection['$id'] . ':'); - \Co\run(function (array $collection, callable $callback) { - foreach ($this->documentsIterator($collection['$id']) as $document) { - go(function (Document $document, callable $callback) { - if (empty($document->getId()) || empty($document->getCollection())) { - return; - } + foreach ($this->documentsIterator($collection['$id']) as $document) { + go(function (Document $document, callable $callback) { + if (empty($document->getId()) || empty($document->getCollection())) { + return; + } - $old = $document->getArrayCopy(); - $new = call_user_func($callback, $document); + $old = $document->getArrayCopy(); + $new = call_user_func($callback, $document); - if (is_null($new) || $new->getArrayCopy() == $old) { - return; - } + if (is_null($new) || $new->getArrayCopy() == $old) { + return; + } - try { - $this->projectDB->updateDocument($document->getCollection(), $document->getId(), $document); - } catch (\Throwable $th) { - Console::error('Failed to update document: ' . $th->getMessage()); - return; - } - }, $document, $callback); - } - }, $collection, $callback); + try { + $this->projectDB->updateDocument($document->getCollection(), $document->getId(), $document); + } catch (\Throwable $th) { + Console::error('Failed to update document: ' . $th->getMessage()); + return; + } + }, $document, $callback); + } } } } diff --git a/src/Appwrite/Platform/Tasks/Migrate.php b/src/Appwrite/Platform/Tasks/Migrate.php index 4d921ff137..dcba59bb1d 100644 --- a/src/Appwrite/Platform/Tasks/Migrate.php +++ b/src/Appwrite/Platform/Tasks/Migrate.php @@ -33,15 +33,18 @@ class Migrate extends Action ->inject('dbForConsole') ->inject('getProjectDB') ->inject('register') - ->callback(fn ($version, $dbForConsole, $getProjectDB, Registry $register) => $this->action($version, $dbForConsole, $getProjectDB, $register)); - + ->callback(function ($version, $dbForConsole, $getProjectDB, Registry $register) { + \Co\run(function () use ($version, $dbForConsole, $getProjectDB, $register) { + $this->action($version, $dbForConsole, $getProjectDB, $register); + }); + }); } private function clearProjectsCache(Document $project) { try { + $iterator = null; do { - $iterator = null; $pattern = "default-cache-_{$project->getInternalId()}:*"; $keys = $this->redis->scan($iterator, $pattern, 1000); if ($keys !== false) { @@ -50,16 +53,15 @@ class Migrate extends Action } } } while ($iterator > 0); - } catch (\Throwable $th) { - Console::error('Failed to clear project ("'.$project->getId().'") cache with error: '.$th->getMessage()); + Console::error('Failed to clear project ("' . $project->getId() . '") cache with error: ' . $th->getMessage()); } } public function action(string $version, Database $dbForConsole, callable $getProjectDB, Registry $register) { Authorization::disable(); - if (! array_key_exists($version, Migration::$versions)) { + if (!array_key_exists($version, Migration::$versions)) { Console::error("Version {$version} not found."); Console::exit(1); @@ -77,7 +79,7 @@ class Migrate extends Action $app = new App('UTC'); - Console::success('Starting Data Migration to version '.$version); + Console::success('Starting Data Migration to version ' . $version); $console = $app->getResource('console'); @@ -97,11 +99,11 @@ class Migrate extends Action $totalProjects = $dbForConsole->count('projects') + 1; } - $class = 'Appwrite\\Migration\\Version\\'.Migration::$versions[$version]; + $class = 'Appwrite\\Migration\\Version\\' . Migration::$versions[$version]; /** @var Migration $migration */ $migration = new $class(); - while (! empty($projects)) { + while (!empty($projects)) { foreach ($projects as $project) { /** * Skip user projects with id 'console' @@ -122,7 +124,7 @@ class Migrate extends Action ->setPDO($register->get('db', true)) ->execute(); } catch (\Throwable $th) { - Console::error('Failed to update project ("'.$project->getId().'") version with error: '.$th->getMessage()); + Console::error('Failed to update project ("' . $project->getId() . '") version with error: ' . $th->getMessage()); throw $th; } @@ -135,7 +137,7 @@ class Migrate extends Action $offset = $offset + $limit; $count = $count + $sum; - Console::log('Migrated '.$count.'/'.$totalProjects.' projects...'); + Console::log('Migrated ' . $count . '/' . $totalProjects . ' projects...'); } Console::success('Data Migration Completed');