2

We developed a plugin with the name "poll" (composer.json: webhub/poll) for one single project. Now we get the licence error in the control panel, cause there is a plugin to buy which has got the same name (https://plugins.craftcms.com/poll).

First Problem: ./craft update all wants to update our plugin: poll 0.0.1 => 1.2.5 but we really do not have a version 1.2.5.

Second Problem: at the control panel plugins page, we have our plugin listed, but with an licence-code-input-field and the error message, that we don't have a licence.

The Reason for all of this is, that we picked the wrong name for our plugin, but renaming it is a pretty dirty task. Does anyone has a got a better idea?

The composer.json looks like this:

{
  "require": {
    "aws/aws-php-sns-message-validator": "^1.6",
    "carlcs/craft-redactorcustomstyles": "3.0.4",
    "cavellblood/craft-string-base64": "1.0.1",
    "codemonauts/craft-instagram-feed": "1.0.5",
    "craftcms/cms": "3.5.3",
    "craftcms/redactor": "2.7.0",
    "doublesecretagency/craft-matrixcolors": "2.0.1",
    "ether/seo": "3.6.6",
    "hybridinteractive/craft-position-fieldtype": "1.0.16",
    "meyfa/php-svg": "^0.9.0",
    "mildlygeeky/craft-redactor-script-buttons": "1.1.1",
    "mmikkel/cp-field-inspect": "1.2.0",
    "percipioglobal/craft-colour-swatches": "^1.2",
    "studioespresso/craft-dumper": "2.0.0",
    "topshelfcraft/environment-label": "3.2.0",
    "verbb/expanded-singles": "1.1.3",
    "verbb/super-table": "2.6.0.4",
    "vlucas/phpdotenv": "^2.4.0",
    "webhub/poll": "0.0.1",
    "webhub/super-sticker-generator": "^0.0.1"
  },
  "autoload": {
    "psr-4": {
      "modules\\laravelmixmodule\\": "modules/laravelmixmodule/src/"
    }
  },
  "config": {
    "sort-packages": true,
    "optimize-autoloader": true,
    "platform": {
      "php": "7.0"
    }
  },
  "scripts": {
    "post-root-package-install": [
      "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ]
  },
  "repositories": [
    {
      "type": "path",
      "url": "./plugins/*"
    }
  ],
  "require-dev": {
    "codeception/codeception": "^3.1"
  }
}

1

You're not gonna like this answer, but... rename your plugin. There's no way to reasonably circumvent all of the conflicts you're going to run into by keeping the same name as an existing public plugin.

If it's a private plugin that you're only using on a single site, consider converting it into a module instead.

  • Ok, we thought so as well. But how do we do that, without losing data? Renaming it in its plugin files is easy, but what about the databesshizzle? – Marten Brosch Aug 14 '20 at 8:08
  • The database impact should be minimal. At worst, maybe you manually adjust a few table names, and/or write some migrations to handle the transition. – Lindsey D Aug 14 '20 at 20:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.