diff --git a/extensions/package-manager/.gitignore b/extensions/package-manager/.gitignore index 5aaf9f39a..cb0813cde 100755 --- a/extensions/package-manager/.gitignore +++ b/extensions/package-manager/.gitignore @@ -1,3 +1,5 @@ js/node_modules vendor/ composer.lock +tests/tmp/ +.phpunit.result.cache diff --git a/extensions/package-manager/README.md b/extensions/package-manager/README.md index bb2076933..036b90a83 100755 --- a/extensions/package-manager/README.md +++ b/extensions/package-manager/README.md @@ -2,4 +2,4 @@ *An Experiment.* -Read: https://github.com/SychO9/flarum-package-manager/wiki +Read: https://github.com/flarum/package-manager/wiki diff --git a/extensions/package-manager/composer.json b/extensions/package-manager/composer.json index e22fb1f51..d747d9be9 100755 --- a/extensions/package-manager/composer.json +++ b/extensions/package-manager/composer.json @@ -1,5 +1,5 @@ { - "name": "sycho/flarum-package-manager", + "name": "flarum/package-manager", "description": "A Flarum Package Manager.", "keywords": [ "extensions", "composer", "packages", "manager", "updater" @@ -8,19 +8,22 @@ "license": "MIT", "authors": [ { - "name": "Sami Mazouz", - "email": "sami.mazouz@flarum.org", - "homepage": "https://sycho9.github.io" + "name": "Flarum", + "email": "info@flarum.org", + "homepage": "https://flarum.org/team" } ], "support": { - "issues": "https://github.com/SychO9/flarum-package-manager/issues", - "source": "https://github.com/SychO9/flarum-package-manager" + "issues": "https://github.com/flarum/package-manager/issues", + "source": "https://github.com/flarum/package-manager" }, "require": { "flarum/core": "^1.0.0", "composer/composer": "^2.0" }, + "require-dev": { + "flarum/testing": "^1.0.0" + }, "extra": { "flarum-extension": { "title": "Package Manager", @@ -33,7 +36,30 @@ }, "autoload": { "psr-4": { - "SychO\\PackageManager\\": "src/" + "Flarum\\PackageManager\\": "src/" } + }, + "autoload-dev": { + "psr-4": { + "Flarum\\PackageManager\\Tests\\": "tests/" + } + }, + "scripts": { + "test": [ + "@test:unit", + "@test:integration" + ], + "test:unit": "phpunit -c tests/phpunit.unit.xml", + "test:integration": "phpunit -c tests/phpunit.integration.xml", + "test:setup": [ + "@php tests/integration/setup.php", + "cd $FLARUM_TEST_TMP_DIR_LOCAL && composer install" + ] + }, + "scripts-descriptions": { + "test": "Runs all tests.", + "test:unit": "Runs all unit tests.", + "test:integration": "Runs all integration tests.", + "test:setup": "Sets up a database for use with integration tests. Execute this only once." } } diff --git a/extensions/package-manager/extend.php b/extensions/package-manager/extend.php index d327df409..59bbad1a1 100755 --- a/extensions/package-manager/extend.php +++ b/extensions/package-manager/extend.php @@ -1,20 +1,23 @@ extends Modal if (this.attrs.error.guessed_cause) { this.alertAttrs = { type: 'error', - content: app.translator.trans(`sycho-package-manager.admin.failure_modal.guessed_cause.${this.attrs.error.guessed_cause}`), + content: app.translator.trans(`flarum-package-manager.admin.failure_modal.guessed_cause.${this.attrs.error.guessed_cause}`), }; } } @@ -25,14 +25,14 @@ export default class ComposerFailureModal extends Modal } title() { - return app.translator.trans('sycho-package-manager.admin.failure_modal.title'); + return app.translator.trans('flarum-package-manager.admin.failure_modal.title'); } content() { return (
- {app.translator.trans('sycho-package-manager.admin.failure_modal.show_composer_output')} + {app.translator.trans('flarum-package-manager.admin.failure_modal.show_composer_output')}
{this.attrs.error.output}
diff --git a/extensions/package-manager/js/src/admin/components/Installer.tsx b/extensions/package-manager/js/src/admin/components/Installer.tsx index 71840c0e4..08fd69162 100755 --- a/extensions/package-manager/js/src/admin/components/Installer.tsx +++ b/extensions/package-manager/js/src/admin/components/Installer.tsx @@ -20,16 +20,16 @@ export default class Installer extends Component { view(): Mithril.Children { return (
- +

- {app.translator.trans('sycho-package-manager.admin.extensions.install_help', { + {app.translator.trans('flarum-package-manager.admin.extensions.install_help', { extiverse: extiverse.com, })}

@@ -59,7 +59,7 @@ export default class Installer extends Component { const extensionId = response.id; app.alerts.show( { type: 'success' }, - app.translator.trans('sycho-package-manager.admin.extensions.successful_install', { extension: extensionId }) + app.translator.trans('flarum-package-manager.admin.extensions.successful_install', { extension: extensionId }) ); window.location.href = `${app.forum.attribute('adminUrl')}#/extension/${extensionId}`; window.location.reload(); diff --git a/extensions/package-manager/js/src/admin/components/MajorUpdater.tsx b/extensions/package-manager/js/src/admin/components/MajorUpdater.tsx index 873ea6c00..7bd2f253d 100644 --- a/extensions/package-manager/js/src/admin/components/MajorUpdater.tsx +++ b/extensions/package-manager/js/src/admin/components/MajorUpdater.tsx @@ -17,17 +17,17 @@ export default class MajorUpdater): Mithril.Children { return (
- flarum logo - -

{app.translator.trans('sycho-package-manager.admin.major_updater.description')}

+ flarum logo + +

{app.translator.trans('flarum-package-manager.admin.major_updater.description')}

- +
@@ -48,7 +48,7 @@ export default class MajorUpdater { - app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.update_successful')); + app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful')); window.location.reload(); }) .finally(() => { diff --git a/extensions/package-manager/js/src/admin/components/Updater.tsx b/extensions/package-manager/js/src/admin/components/Updater.tsx index 4adf8dc25..d7676e0f0 100755 --- a/extensions/package-manager/js/src/admin/components/Updater.tsx +++ b/extensions/package-manager/js/src/admin/components/Updater.tsx @@ -44,10 +44,10 @@ export default class Updater extends Component { if (coreUpdate) { core = { - title: app.translator.trans('sycho-package-manager.admin.updater.flarum'), + title: app.translator.trans('flarum-package-manager.admin.updater.flarum'), version: app.data.settings.version, icon: { - backgroundImage: `url(${app.forum.attribute('baseUrl')}/assets/extensions/sycho-package-manager/flarum.svg`, + backgroundImage: `url(${app.forum.attribute('baseUrl')}/assets/extensions/flarum-package-manager/flarum.svg`, }, newPackageUpdate: coreUpdate, }; @@ -55,12 +55,12 @@ export default class Updater extends Component { return [
- -

{app.translator.trans('sycho-package-manager.admin.updater.updater_help')}

+ +

{app.translator.trans('flarum-package-manager.admin.updater.updater_help')}

{Object.keys(this.lastUpdateCheck).length ? (

- {app.translator.trans('sycho-package-manager.admin.updater.last_update_checked_at')} + {app.translator.trans('flarum-package-manager.admin.updater.last_update_checked_at')} {humanTime(this.lastUpdateCheck?.checkedAt)}

@@ -73,7 +73,7 @@ export default class Updater extends Component { loading={this.isLoading === 'check'} disabled={this.isLoading !== null && this.isLoading !== 'check'} > - {app.translator.trans('sycho-package-manager.admin.updater.check_for_updates')} + {app.translator.trans('flarum-package-manager.admin.updater.check_for_updates')}
{this.isLoading !== null ? ( @@ -130,12 +130,12 @@ export default class Updater extends Component {
- +
@@ -195,7 +195,7 @@ export default class Updater extends Component { errorHandler, }) .then(() => { - app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.update_successful')); + app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.update_successful')); window.location.reload(); }) .finally(() => { @@ -217,7 +217,7 @@ export default class Updater extends Component { .then(() => { app.alerts.show( { type: 'success' }, - app.translator.trans('sycho-package-manager.admin.extensions.successful_update', { extension: extension.extra['flarum-extension'].title }) + app.translator.trans('flarum-package-manager.admin.extensions.successful_update', { extension: extension.extra['flarum-extension'].title }) ); window.location.reload(); }) @@ -238,7 +238,7 @@ export default class Updater extends Component { errorHandler, }) .then(() => { - app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.updater.global_update_successful')); + app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.updater.global_update_successful')); window.location.reload(); }) .finally(() => { diff --git a/extensions/package-manager/js/src/admin/index.js b/extensions/package-manager/js/src/admin/index.js index d1dec656e..32b7f3500 100755 --- a/extensions/package-manager/js/src/admin/index.js +++ b/extensions/package-manager/js/src/admin/index.js @@ -9,15 +9,15 @@ import Updater from './components/Updater'; import isExtensionEnabled from 'flarum/admin/utils/isExtensionEnabled'; import MajorUpdater from './components/MajorUpdater'; -app.initializers.add('sycho-package-manager', (app) => { +app.initializers.add('flarum-package-manager', (app) => { app.extensionData - .for('sycho-package-manager') + .for('flarum-package-manager') .registerSetting(() => { if (!app.data.isRequiredDirectoriesWritable) { return (
- {app.translator.trans('sycho-package-manager.admin.file_permissions')} + {app.translator.trans('flarum-package-manager.admin.file_permissions')}
); @@ -35,7 +35,7 @@ app.initializers.add('sycho-package-manager', (app) => { }); extend(ExtensionPage.prototype, 'topItems', function (items) { - if (this.extension.id === 'sycho-package-manager' || isExtensionEnabled(this.extension.id)) { + if (this.extension.id === 'flarum-package-manager' || isExtensionEnabled(this.extension.id)) { return; } @@ -53,7 +53,7 @@ app.initializers.add('sycho-package-manager', (app) => { method: 'DELETE', }) .then(() => { - app.alerts.show({ type: 'success' }, app.translator.trans('sycho-package-manager.admin.extensions.successful_remove')); + app.alerts.show({ type: 'success' }, app.translator.trans('flarum-package-manager.admin.extensions.successful_remove')); window.location = app.forum.attribute('adminUrl'); }) .finally(() => { diff --git a/extensions/package-manager/js/src/admin/utils/errorHandler.ts b/extensions/package-manager/js/src/admin/utils/errorHandler.ts index 679fa9e8d..bf216d187 100755 --- a/extensions/package-manager/js/src/admin/utils/errorHandler.ts +++ b/extensions/package-manager/js/src/admin/utils/errorHandler.ts @@ -14,12 +14,12 @@ export default function (e: any) { break; case 'extension_already_installed': - app.alerts.show({ type: 'error' }, app.translator.trans('sycho-package-manager.admin.exceptions.extension_already_installed')); + app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_already_installed')); app.modal.close(); break; case 'extension_not_installed': - app.alerts.show({ type: 'error' }, app.translator.trans('sycho-package-manager.admin.exceptions.extension_not_installed')); + app.alerts.show({ type: 'error' }, app.translator.trans('flarum-package-manager.admin.exceptions.extension_not_installed')); app.modal.close(); } } diff --git a/extensions/package-manager/less/admin.less b/extensions/package-manager/less/admin.less index 047c88435..2f4fc32af 100755 --- a/extensions/package-manager/less/admin.less +++ b/extensions/package-manager/less/admin.less @@ -9,7 +9,7 @@ white-space: break-spaces; } -.sycho-package-manager-Page .ExtensionPage-settings .Form-group:last-child { +.flarum-package-manager-Page .ExtensionPage-settings .Form-group:last-child { display: none; } diff --git a/extensions/package-manager/locale/en.yml b/extensions/package-manager/locale/en.yml index 4eda79983..195082c1e 100755 --- a/extensions/package-manager/locale/en.yml +++ b/extensions/package-manager/locale/en.yml @@ -1,4 +1,4 @@ -sycho-package-manager: +flarum-package-manager: admin: exceptions: extension_already_installed: Extension is already installed. diff --git a/extensions/package-manager/src/Api/Controller/CheckForUpdatesController.php b/extensions/package-manager/src/Api/Controller/CheckForUpdatesController.php index c71dc9c15..3f0333b85 100755 --- a/extensions/package-manager/src/Api/Controller/CheckForUpdatesController.php +++ b/extensions/package-manager/src/Api/Controller/CheckForUpdatesController.php @@ -1,10 +1,13 @@ setAutoExit(false); + /** @var Paths $paths */ $paths = $container->make(Paths::class); putenv("COMPOSER_HOME={$paths->storage}/.composer"); putenv("COMPOSER={$paths->base}/composer.json"); - Config::$defaultConfig['vendor-dir'] = $paths->base.'/vendor'; + Config::$defaultConfig['vendor-dir'] = $paths->vendor; // When running simple require, update and remove commands on packages, // composer 2 doesn't really need this much unless the extensions are very loaded dependency wise, diff --git a/extensions/package-manager/src/RequirePackageValidator.php b/extensions/package-manager/src/RequirePackageValidator.php index 62762c4bb..ec5599d41 100755 --- a/extensions/package-manager/src/RequirePackageValidator.php +++ b/extensions/package-manager/src/RequirePackageValidator.php @@ -1,6 +1,13 @@