The unit of work that you share is called a package. This could be a set of custom blocks, a website theme, custom workflow actions or even an external application. Each package has versions so you can add additional features and fix any bugs (should they arise). Package Versions Each package version has an install file associated with it. Upon purchase (a term used even when installing a free package), the install files are downloaded to the client's server and installed. When there are multiple versions of a package, each version's install file is downloaded and installed in order. When releasing version 2 of your package, its install file is only responsible for making the changes needed to upgrade from version 1. ImportantPackage Versioning Although we've provided a place to annotate a 'version' number for your plugin, this number is just a friendly label. It doesn't control the order of, or relationships to, other versions of your plugin. If you've already published Version 1 and Version 2 of your plugin, you can't create Version 1.5 to fix a bug found in Version 1. Instead, you'd have to create Version 3 or Version 2.x to deploy your fix. Package versions are always simple and linear. The Package File What makes up an install file? Well let's look inside one. Package Contents Content: Files and folders in this directory will be copied into the Rock root directory on the client’s server. You may only place files in the following folders under the Rock root: bin, Plugins, App_Data, App_Code, Webhooks, Content and Themes.Install: This is where configuration files specific to the install process will go.Uninstall: Yep, files for uninstalling the package. The deletefile.lst files should list the files to delete relative to the application root. Example: bin\com.myorganization.MyPlugin.dll Webhooks\MyWebhook.ashx Plugins\com_myorganization\MyPlugin\MyBlock.ascx Plugins\com_myorganization\MyPlugin\MyBlock.ascx.cs Creating The Package File When you've assembled all your files in the directory structure above simply zip it up and rename the zip file with the extension '.plugin'. The the top-level directories should be "content, install, uninstall". The rest of the filename is up to you but you may consider adding the package name and version for your future reference.