The way I manage my local file system when developing plugins is as follows. Note that I develop on a Mac in a standard environment (i.e. non-dockerized).
I have a folder in my home directory called “discourse”. This has the following subfolders:
discourse discourse // the discourse codebase plugins // discourse plugins (currently 68 plugins in here on my local) scripts // scripts I use to manage discourse folders themes // discourse themes
Folder management scripts
I use two simple scripts to change what plugins I’m using in development:
Both have notes in them describing how they work and the assumptions they make (basically they assume you have a folder structure like mine).
Essentially they create symlinks for the plugin(s) you nominate in the plugins directory in the discourse codebase, and remove any existing symlinks.