Local plugin development environment

What is the best practices dev environment when you developed a private plugin ?

everytime, I am having issue when I am updating my local october with new third party plugins versions, something is removing the github connection to my private plugin and I am loosing code that I haven’t comitted yet because still in progress.

I tried many versions on the root composer.json but haven’t find the correct one apparently.

current one local one looks like this:

{
    "name": "october/october",
    "description": "Built using October CMS: The Laravel-Based CMS Engineered For Simplicity",
    "type": "project",
    "homepage": "https://octobercms.com",
    "license": "proprietary",
    "require": {
        "php": "^8.0.2",
        "october/rain": "^3.5",
        "laravel/framework": "^9.0",
        "october/all": "^3.5",
        "rainlab/user-plugin": "^3.0",
        "inherent/my-plugin": "*",
        "inherent/mytheme-theme": "*",
        "rainlab/pages-plugin": "^2.0",
        "rainlab/builder-plugin": "^2.0",
        "romanov/clearcachewidget-plugin": "^1.3",
        "hashids/hashids": "^4.1",
        "php-ffmpeg/php-ffmpeg": "^1.1",
        "rainlab/deploy-plugin": "^2.2",
        "rainlab/location-plugin": "^2.0",
        "rainlab/forum-plugin": "^2.0",
        "rainlab/userplus-plugin": "^2.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^8.5|^9.0"
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ],
        "post-autoload-dump": [
            "System\\Console\\ComposerScript::postAutoloadDump"
        ],
        "post-update-cmd": [
            "System\\Console\\ComposerScript::postUpdateCmd"
        ],
        "pre-package-uninstall": [
            "System\\Console\\ComposerScript::prePackageUninstall"
        ],
        "test": [
            "phpunit --stop-on-failure"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "allow-plugins": {
            "composer/installers": true,
            "php-http/discovery": true
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app",
            "System\\Console\\": "modules/system/console"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "repositories": {
        "octobercms": {
            "type": "composer",
            "url": "https://gateway.octobercms.com",
            "only": [
                "october/*",
                "*-plugin",
                "*-theme"
            ]
        },
        "inherent/my-plugin": {
            "type": "path",
            "url": "./plugins/inherent/my"
        },
        "inherent/my-theme": {
            "type": "path",
            "url": "./themes/mytheme"
        }
    }
}


Hey Chris,

in your local dev. env. remove your plugin from the require object of composer so it won’t be updated.

thanks for your reply.

you mean these lines ?

Yes, exactly. Remove those lines from “require”:

thanks @danielbidala
will try and see during the next plugin upgrade :slight_smile:

Some tips if you are developing a plugin locally:

  1. Clone the plugin repo to the /plugins directory (optional)
  2. Inspect the plugin’s composer.json file
  3. Copy the dependencies from the plugin to your root composer.json file
  4. Run composer update