<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://sugarclub.sugarai.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs</link><pubDate>Wed, 07 May 2025 13:41:49 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Current Revision posted to Dev Tutorials by Rafael Fernandes on 5/7/2025 1:41:49 PM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarCRM Marketplace? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://marketplace.sugarcrm.com/selling"&gt;SugarCRM Marketplace&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/smartlinks/Developer_Guide/architecture/module_loader/module_loader_restriction_alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;a href="https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to&amp;nbsp;&lt;a href="https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/15</link><pubDate>Fri, 07 Feb 2025 16:38:26 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Alex Nassi</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 15 posted to Dev Tutorials by Alex Nassi on 2/7/2025 4:38:26 PM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/smartlinks/Developer_Guide/architecture/module_loader/module_loader_restriction_alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;a href="https://sugarclub.sugarai.com/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to&amp;nbsp;&lt;a href="https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/14</link><pubDate>Thu, 22 Aug 2024 15:02:47 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 14 posted to Dev Tutorials by Rafael Fernandes on 8/22/2024 3:02:47 PM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/smartlinks/Developer_Guide/architecture/module_loader/module_loader_restriction_alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/13</link><pubDate>Thu, 08 Feb 2024 14:36:10 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 13 posted to Dev Tutorials by Rafael Fernandes on 2/8/2024 2:36:10 PM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/smartlinks/Developer_Guide/architecture/module_loader/module_loader_restriction_alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/12</link><pubDate>Thu, 17 Nov 2022 19:46:39 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 12 posted to Dev Tutorials by Rafael Fernandes on 11/17/2022 7:46:39 PM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/11</link><pubDate>Fri, 05 Aug 2022 17:45:10 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Alex Nassi</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 11 posted to Dev Tutorials by Alex Nassi on 8/5/2022 5:45:10 PM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-14/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-14/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/10</link><pubDate>Thu, 04 Aug 2022 04:47:29 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Alex Nassi</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 10 posted to Dev Tutorials by Alex Nassi on 8/4/2022 4:47:29 AM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/1781.Guides.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/5684.Guides-_2800_2_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:101px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/8764.Guides-_2800_3_2900_.png" width="258" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-61/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/9</link><pubDate>Thu, 04 Aug 2022 04:38:44 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Alex Nassi</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 9 posted to Dev Tutorials by Alex Nassi on 8/4/2022 4:38:44 AM&lt;br /&gt;
&lt;table style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:118px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/1781.Guides.png" width="301" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:118px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/5684.Guides-_2800_2_2900_.png" width="301" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:118px;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/8764.Guides-_2800_3_2900_.png" width="301" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-61/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/8</link><pubDate>Thu, 04 Aug 2022 04:37:12 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Alex Nassi</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 8 posted to Dev Tutorials by Alex Nassi on 8/4/2022 4:37:12 AM&lt;br /&gt;
&lt;table style="margin-left:auto;margin-right:auto;width:75%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#deployment"&gt;&lt;img style="height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/1781.Guides.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#mlp"&gt;&lt;img style="height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style="text-align:center;"&gt;&lt;a href="#tips"&gt;&lt;img style="height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/510x200/__key/communityserver-wikis-components-files/00-00-00-00-61/1781.Guides.png" /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;Customizations designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/5684.Guides-_2800_2_2900_.png" /&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;img class="align-right" style="float:right;height:auto;" alt=" " src="/resized-image/__size/2000x0/__key/communityserver-wikis-components-files/00-00-00-00-61/8764.Guides-_2800_3_2900_.png" /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p id="mcetoc_1g6ls8l4i0"&gt;&lt;span style="font-size:150%;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;strong&gt;Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/7</link><pubDate>Thu, 21 Jul 2022 18:52:52 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Matt Marum</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 7 posted to Dev Tutorials by Matt Marum on 7/21/2022 6:52:52 PM&lt;br /&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="#deployment"&gt;&lt;img alt=" " src="/resized-image/__size/268x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.25.39-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#mlp"&gt;&lt;img alt=" " src="/resized-image/__size/270x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.03-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#tips"&gt;&lt;img alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.21-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/268x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.25.39-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;A customization designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When deploying code into production, it is important to make sure you&amp;#39;ve abided by SugarCRM&amp;#39;s &lt;a href="https://support.sugarcrm.com/Resources/Developer_Policy/"&gt;Developer Policy&lt;/a&gt;. For the particulars on&amp;nbsp;SugarCloud restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/270x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.03-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.21-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;/h1&gt;
&lt;h3 id="mcetoc_1f5uvkqns0"&gt;&lt;span style="font-size:inherit;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/span&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/6</link><pubDate>Tue, 12 Jul 2022 13:30:13 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 6 posted to Dev Tutorials by Rafael Fernandes on 7/12/2022 1:30:13 PM&lt;br /&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="#deployment"&gt;&lt;img alt=" " src="/resized-image/__size/268x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.25.39-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#mlp"&gt;&lt;img alt=" " src="/resized-image/__size/270x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.03-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#tips"&gt;&lt;img alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.21-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/268x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.25.39-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;A customization designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information on Sugar&amp;#39;s cloud service restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/270x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.03-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.21-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;/h1&gt;
&lt;h3 id="mcetoc_1f5uvkqns0"&gt;&lt;span style="font-size:inherit;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/span&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/5</link><pubDate>Tue, 12 Jul 2022 13:27:51 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 5 posted to Dev Tutorials by Rafael Fernandes on 7/12/2022 1:27:51 PM&lt;br /&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="#deployment"&gt;&lt;img alt=" " src="/resized-image/__size/268x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.25.39-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#mlp"&gt;&lt;img alt=" " src="/resized-image/__size/270x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.03-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#tips"&gt;&lt;img alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.21-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="deployment"&gt;&lt;/a&gt;Deployment&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/260x136/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.25.39-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;A customization designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information on Sugar&amp;#39;s cloud service restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;&lt;a id="mlp"&gt;&lt;/a&gt;Packaging / Module Loadable Packages&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/267x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_12-at-9.26.21-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="tips"&gt;&lt;/a&gt;Tips and Tricks&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.24-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f5uvkqns0"&gt;&lt;span style="font-size:inherit;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/span&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/4</link><pubDate>Tue, 12 Jul 2022 13:23:29 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 4 posted to Dev Tutorials by Rafael Fernandes on 7/12/2022 1:23:29 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="background-color:#ff0000;font-size:150%;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="#extensions"&gt;&lt;img alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.31.37-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#logichooks"&gt;&lt;img alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.33.50-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#batch"&gt;&lt;img alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.24-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="logichooks"&gt;&lt;/a&gt;Deployment&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;Where you plan to deploy Sugar code is the biggest factor in determining how Sugar code should be deployed and how your project should be managed.&lt;/p&gt;
&lt;p&gt;Are you working on a Sugar project for an on-premise Sugar implementation? Are you working on a custom module that you plan on distributing through SugarOutfitters? Are you planning a solely REST API integration? The answers to these questions guide how you should develop and deploy Sugar code&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/260x136/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.33.50-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sugar on-site&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations using the exact version and flavor of Sugar that you plan to use in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SugarCloud&amp;nbsp;project&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&amp;nbsp;Develop these customizations on the latest available version of Sugar for the particular flavor the customer has purchased.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom modules or integrations&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: If you plan on distributing your customization to many Sugar customers via&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.sugaroutfitters.com/selling"&gt;SugarOutfitters&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or channel partners,&amp;nbsp;design your customization with Sugar&amp;#39;s cloud service in mind.
&lt;ul&gt;
&lt;li&gt;Sugar&amp;#39;s cloud service is more restrictive than our on-site installs regarding supported customizations.&lt;/li&gt;
&lt;li&gt;A customization designed for Sugar&amp;#39;s cloud service can&amp;nbsp;be supported in Sugar on-site instances, but the inverse is not always true.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information on Sugar&amp;#39;s cloud service restrictions, please refer to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.sugarcrm.com/Resources/Sugar_Cloud_Policy_Guide/" rel="noopener noreferrer" target="_blank"&gt;SugarCloud Policy Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;Packaging / Module Loadable Packages&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;If you plan on distributing Sugar custom code, then you must package your customization as a&amp;nbsp;&lt;/span&gt;&lt;a title="Module Loader" href="https://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_12.0/Architecture/Module_Loader/" rel="noopener noreferrer" target="_blank"&gt;Module Loadable Package&lt;/a&gt;&lt;span&gt;&amp;nbsp;(a .zip file that includes all custom code along with a manifest file). It is easy to write a script to build a module loadable package either from custom directory content or by extracting customizations out of a development environment&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/267x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.31.37-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Removing_Files_with_an_Installable_Package/"&gt;Removing Files with an Installable Package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="batch"&gt;&lt;/a&gt;Tips and Tricks&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.24-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Managing_Multiple_Environments"&gt;Managing Multiple Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Testing"&gt;Testing methods to ensure the quality of your Sugar project&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#DevOps"&gt;Sugar recommends implementing DevOps automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Development_Methodology/#Co-Existing_with_Studio_Customizations"&gt;Co-Existing with Studio Customizations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide//Introduction/Delivery_and_Deployment_Guide_for_Enterprises/"&gt;Delivery and Deployment Guide for Enterprises&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Introduction/Migration_Guide/"&gt;Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3 id="mcetoc_1f5uvkqns0"&gt;&lt;span style="font-size:inherit;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/span&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/3</link><pubDate>Mon, 11 Jul 2022 19:50:31 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 3 posted to Dev Tutorials by Rafael Fernandes on 7/11/2022 7:50:31 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="background-color:#ff0000;font-size:150%;"&gt;TODO&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="#extensions"&gt;&lt;img alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.31.37-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#logichooks"&gt;&lt;img alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.33.50-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#batch"&gt;&lt;img alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.24-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#howto"&gt;&lt;img alt=" " src="/resized-image/__size/268x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.44-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="mcetoc_1g7naa9vo0"&gt;Packaging / Module Loadable Packages&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;Module Loadable Package, or in short, MLPs&amp;nbsp;are used by Module Loader when installing&amp;nbsp;customizations, plugins, language&amp;nbsp;packs, and&amp;nbsp;hotfixes, and other customizations into a Sugar instance.&amp;nbsp;&lt;/span&gt;Module loadable packages rely on a&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;manifest.php&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;file to define the basic properties and installation steps for the package.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/267x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.31.37-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Introduction_to_the_Manifest/"&gt;Introduction to the Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/"&gt;Creating an Installable Package for a Logic Hook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_That_Copies_Files/"&gt;Creating an Installable Package That Copies Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_that_Creates_New_Fields/"&gt;Creating an Installable Package that Creates New Fields&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Module_Loader/Module_Loader_Restrictions"&gt;Module Loader Restrictions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Module%20Loader%20Restriction%20Alternatives"&gt;Module Loader Restriction Alternatives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/dev-club/b/dev-blog/posts/how-to-version-your-module-loadable-packages"&gt;How to version your Module Loadable Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Module_Loadable_Packages/Creating_an_Installable_Package_for_a_Logic_Hook/#Package_Example"&gt;Package Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sugarcrm/school#generating-the-professor-m-module-loadable-packages-locally"&gt;Use Professor-M&amp;#39;s Open-Source packaging mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/esimonetti/sugar-module-packager"&gt;Use Open-Source Sugar Module Packages&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="logichooks"&gt;&lt;/a&gt;Delivery and Deployment&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;The Logic Hook framework allows you to&amp;nbsp;append actions to system&amp;nbsp;events such as when creating, editing, and deleting records.&amp;nbsp;Logic hook definitions can&amp;nbsp;pertain&amp;nbsp;to&amp;nbsp;a&amp;nbsp;specific module or to the entire application. Either way, you must decide if the logic hook definition will be implemented as an extension of or directly to the module or application.&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/260x136/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.33.50-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/#Module_Extension_Hooks"&gt;Module Extension Hooks&lt;/a&gt; &lt;span&gt;allow a developer&amp;nbsp;to define&amp;nbsp;hook actions that will be executed for the specified&amp;nbsp;events in a given module&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/#Application%20Extension%20Hooks"&gt;Application Extension Hooks&lt;/a&gt; &lt;span&gt;allow a developer to define&amp;nbsp;hook actions that will be executed for all specified application-level events&amp;nbsp;using the extension framework&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Administration_Guide/System/Web_Logic_Hooks/"&gt;&lt;span&gt;Web Logic Hooks&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;span&gt;Web logic hooks let administrators post record and event information to a specified URL when certain sugar events take place&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Logic_Hooks/Preventing_Infinite_Loops_with_Logic_Hooks"&gt;Preventing Infinite Loops with Logic Hooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Logic_Hooks/Comparing_Bean_Properties_Between_Logic_Hooks"&gt;Comparing Bean Properties Between Logic Hooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/Application_Hooks/"&gt;Application Hooks Events&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/Module_Hooks/"&gt;Module Hooks Events&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/User_Hooks/"&gt;User Hooks Events&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/Job_Queue_Hooks"&gt;Job Queue Events&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/API_Hooks"&gt;API Hooks Events&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="batch"&gt;&lt;/a&gt;Batch Jobs&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.24-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/"&gt;Job Queues&lt;/a&gt;&amp;nbsp;&lt;span&gt;executes automated tasks in Sugar&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Schedulers/"&gt;Schedulers&lt;/a&gt;&amp;nbsp;&lt;span&gt;Sugar provides a Scheduler service that can execute predefined functions asynchronously on a periodic basis&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Architecture/Job_Queue/Schedulers/Creating_Custom_Schedulers"&gt;Creating Custom Schedulers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Jobs/"&gt;Scheduler Jobs&lt;/a&gt;&amp;nbsp;&lt;span&gt;Jobs are the individual runs of the specified function from a scheduler&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Jobs/Creating_Custom_Jobs/"&gt;Creating a Custom Job&lt;/a&gt;&amp;nbsp;&lt;span&gt;How to create and execute your own custom jobs.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Jobs/Queuing_Logic_Hook_Actions/"&gt;Queuing Logic Hook Actions&lt;/a&gt;&amp;nbsp;&lt;span&gt;enables you to send longer running jobs such as sending emails&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="howto"&gt;&lt;/a&gt;HOWTOs&lt;/h1&gt;
&lt;div class="row"&gt;
&lt;div class="col-xs-12 col-md-9"&gt;
&lt;p&gt;In this section you will find few real world examples on how to enable and customize functionalities that makes Sugar better for your end-users and admins.&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/272x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_06_2D00_30-at-2.19.03-PM.png" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Global_Search/"&gt;Global Search&lt;/a&gt;&amp;nbsp;h&lt;span&gt;ow to customize the global search results&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Elastic_Search"&gt;Elasticsearch&lt;/a&gt;&amp;nbsp;&lt;span&gt;how Sugar integrates with Elasticsearch&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Duplicate_Check/"&gt;Duplicate Check&lt;/a&gt;&amp;nbsp;&lt;span&gt;framework provides the capability to alter how the system searches for duplicate records in the database when creating records&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Configurator/"&gt;Configuration Settings&lt;/a&gt;&amp;nbsp;y&lt;span&gt;ou can access the Sugar config (filesystem) settings by using this&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Administration/"&gt;Administration Settings&lt;/a&gt;&amp;nbsp;&lt;span&gt;is used to manage settings stored in the database config table&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Tags/"&gt;Tags&lt;/a&gt;&amp;nbsp;&lt;span&gt;allows a user to apply as many &amp;quot;tags&amp;quot; as they choose on any record they want to categorize&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Validation_Constraints/"&gt;Validation Constraints&lt;/a&gt; &lt;span&gt;how to add validation constraints to&amp;nbsp;your custom&amp;nbsp;code&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Adding_Buttons_to_the_Application_Footer/"&gt;Adding Buttons to the Application Footer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Adding_Buttons_to_the_Record_View/"&gt;Adding Buttons to the Record View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Creating_Custom_Fields"&gt;Creating Custom Field Types&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Creating_an_Auto-Incrementing_Field"&gt;Creating an Auto-Incrementing Field&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Dynamically_Hiding_Subpanels_Based_on_Record_Values"&gt;Dynamically Hiding Subpanels Based on Record Values&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Prepopulating_the_Compose_Email_View//"&gt;Prepopulating the Compose Email View&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/h1&gt;
&lt;h3 id="mcetoc_1f5uvkqns0"&gt;&lt;span style="font-size:inherit;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/688/sell-your-work-for-devs"&gt;Sell your Work&lt;/a&gt;.&lt;/span&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/2</link><pubDate>Fri, 08 Jul 2022 17:59:06 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 2 posted to Dev Tutorials by Rafael Fernandes on 7/8/2022 5:59:06 PM&lt;br /&gt;
&lt;p&gt;&lt;span style="background-color:#ff0000;font-size:150%;"&gt;TODO&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="#extensions"&gt;&lt;img alt=" " src="/resized-image/__size/269x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.31.37-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#logichooks"&gt;&lt;img alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.33.50-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#batch"&gt;&lt;img alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.24-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="#howto"&gt;&lt;img alt=" " src="/resized-image/__size/268x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.44-AM.png" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;Packaging / Module Loadable Packages&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The extension framework,&amp;nbsp;defined in&amp;nbsp;&lt;code&gt;./ModuleInstall/extensions.php&lt;/code&gt;, provides the capability to modify Sugar metadata such as&amp;nbsp;vardefs&amp;nbsp;and&amp;nbsp;layouts&amp;nbsp;in a safe way that supports installing, uninstalling, enabling, and disabling without interfering with other customizations.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/267x140/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.31.37-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Architecture/Extensions/"&gt;Extension Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/User_Interface/Layouts"&gt;Create or override a Sidecar Layout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/User_Interface/Views"&gt;Create or override a View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/User_Interface/Fields"&gt;Add logic to a field prior to render&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Extensions/Vardefs"&gt;Add or override vardefs (variables) definitions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Extensions/Layoutdefs/"&gt;Add or override subpanel definitions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Extensions/Modules"&gt;Add new modules through code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Administration_Guide/Developer_Tools/Studio/#Resetting_Modules"&gt;Resetting Modules to default settings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="logichooks"&gt;&lt;/a&gt;Delivery and Deployment&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;The Logic Hook framework allows you to&amp;nbsp;append actions to system&amp;nbsp;events such as when creating, editing, and deleting records.&amp;nbsp;Logic hook definitions can&amp;nbsp;pertain&amp;nbsp;to&amp;nbsp;a&amp;nbsp;specific module or to the entire application. Either way, you must decide if the logic hook definition will be implemented as an extension of or directly to the module or application.&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/260x136/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.33.50-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/#Module_Extension_Hooks"&gt;Module Extension Hooks&lt;/a&gt; &lt;span&gt;allow a developer&amp;nbsp;to define&amp;nbsp;hook actions that will be executed for the specified&amp;nbsp;events in a given module&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/#Application%20Extension%20Hooks"&gt;Application Extension Hooks&lt;/a&gt; &lt;span&gt;allow a developer to define&amp;nbsp;hook actions that will be executed for all specified application-level events&amp;nbsp;using the extension framework&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Administration_Guide/System/Web_Logic_Hooks/"&gt;&lt;span&gt;Web Logic Hooks&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;span&gt;Web logic hooks let administrators post record and event information to a specified URL when certain sugar events take place&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Logic_Hooks/Preventing_Infinite_Loops_with_Logic_Hooks"&gt;Preventing Infinite Loops with Logic Hooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Logic_Hooks/Comparing_Bean_Properties_Between_Logic_Hooks"&gt;Comparing Bean Properties Between Logic Hooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/Application_Hooks/"&gt;Application Hooks Events&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/Module_Hooks/"&gt;Module Hooks Events&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/User_Hooks/"&gt;User Hooks Events&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/Job_Queue_Hooks"&gt;Job Queue Events&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Logic_Hooks/API_Hooks"&gt;API Hooks Events&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="batch"&gt;&lt;/a&gt;Batch Jobs&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;span&gt;The Job Queue executes automated tasks in Sugar through a&amp;nbsp;scheduler, which integrates with external UNIX systems and Windows systems to run jobs that are scheduled through those systems.&amp;nbsp;Jobs are the individual runs of the specified function from a scheduler:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/270x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_07_2D00_08-at-11.34.24-AM.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/"&gt;Job Queues&lt;/a&gt;&amp;nbsp;&lt;span&gt;executes automated tasks in Sugar&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Schedulers/"&gt;Schedulers&lt;/a&gt;&amp;nbsp;&lt;span&gt;Sugar provides a Scheduler service that can execute predefined functions asynchronously on a periodic basis&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Architecture/Job_Queue/Schedulers/Creating_Custom_Schedulers"&gt;Creating Custom Schedulers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Jobs/"&gt;Scheduler Jobs&lt;/a&gt;&amp;nbsp;&lt;span&gt;Jobs are the individual runs of the specified function from a scheduler&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Jobs/Creating_Custom_Jobs/"&gt;Creating a Custom Job&lt;/a&gt;&amp;nbsp;&lt;span&gt;How to create and execute your own custom jobs.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Job_Queue/Jobs/Queuing_Logic_Hook_Actions/"&gt;Queuing Logic Hook Actions&lt;/a&gt;&amp;nbsp;&lt;span&gt;enables you to send longer running jobs such as sending emails&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;a id="howto"&gt;&lt;/a&gt;HOWTOs&lt;/h1&gt;
&lt;div class="row"&gt;
&lt;div class="col-xs-12 col-md-9"&gt;
&lt;p&gt;In this section you will find few real world examples on how to enable and customize functionalities that makes Sugar better for your end-users and admins.&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/272x141/__key/communityserver-wikis-components-files/00-00-00-00-61/Screen-Shot-2022_2D00_06_2D00_30-at-2.19.03-PM.png" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Global_Search/"&gt;Global Search&lt;/a&gt;&amp;nbsp;h&lt;span&gt;ow to customize the global search results&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Elastic_Search"&gt;Elasticsearch&lt;/a&gt;&amp;nbsp;&lt;span&gt;how Sugar integrates with Elasticsearch&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Duplicate_Check/"&gt;Duplicate Check&lt;/a&gt;&amp;nbsp;&lt;span&gt;framework provides the capability to alter how the system searches for duplicate records in the database when creating records&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Configurator/"&gt;Configuration Settings&lt;/a&gt;&amp;nbsp;y&lt;span&gt;ou can access the Sugar config (filesystem) settings by using this&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Administration/"&gt;Administration Settings&lt;/a&gt;&amp;nbsp;&lt;span&gt;is used to manage settings stored in the database config table&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Tags/"&gt;Tags&lt;/a&gt;&amp;nbsp;&lt;span&gt;allows a user to apply as many &amp;quot;tags&amp;quot; as they choose on any record they want to categorize&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Architecture/Validation_Constraints/"&gt;Validation Constraints&lt;/a&gt; &lt;span&gt;how to add validation constraints to&amp;nbsp;your custom&amp;nbsp;code&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Adding_Buttons_to_the_Application_Footer/"&gt;Adding Buttons to the Application Footer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Adding_Buttons_to_the_Record_View/"&gt;Adding Buttons to the Record View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Creating_Custom_Fields"&gt;Creating Custom Field Types&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Creating_an_Auto-Incrementing_Field"&gt;Creating an Auto-Incrementing Field&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Dynamically_Hiding_Subpanels_Based_on_Record_Values"&gt;Dynamically Hiding Subpanels Based on Record Values&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.sugarcrm.com/SmartLinks/Developer_Guide/Cookbook/Prepopulating_the_Compose_Email_View//"&gt;Prepopulating the Compose Email View&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1 id="mcetoc_1g6ls8l4i0"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/h1&gt;
&lt;h3 id="mcetoc_1f5uvkqns0"&gt;&lt;span style="font-size:inherit;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. Now it&amp;#39;s time to &lt;a href="/dev-club/dev-onboarding/w/documentation/687/deployment-for-devs"&gt;Deployments&lt;/a&gt;.&lt;/span&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Deployment for Devs</title><link>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs/revision/1</link><pubDate>Fri, 08 Jul 2022 14:45:48 GMT</pubDate><guid isPermaLink="false">5c521d64-519d-47a6-9065-134618b211bf:a70af921-4e69-4b83-82fd-24576efe6b0d</guid><dc:creator>Rafael Fernandes</dc:creator><comments>https://sugarclub.sugarai.com/dev-club/w/dev-tutorials/687/deployment-for-devs#comments</comments><description>Revision 1 posted to Dev Tutorials by Rafael Fernandes on 7/8/2022 2:45:48 PM&lt;br /&gt;
&lt;p&gt;Whether starting from scratch or reinventing yourself, this phase is critical to insuring you set a vision and lay the foundation for the future.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Download our &lt;a href="/adoption/m/grow-resources/1532/download"&gt;GROW Get Started Workbook&lt;/a&gt; for detailed plans and&amp;nbsp;worksheets to help you get going. You&amp;#39;ll also find additional resources below such as email templates&amp;nbsp;and learning plans to use in your rollout.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a title="Get Started Workbook" href="/adoption/m/grow-resources/1532/download"&gt;&lt;img style="display:block;margin-left:auto;margin-right:auto;" alt="Get Started Workbook" src="/resized-image/__size/350x240/__key/communityserver-wikis-components-files/00-00-00-00-61/Get-Started-Workbook-Image.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/adoption/m/grow-resources/1532/download"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1f4f3gg1d0"&gt;&lt;span&gt;&lt;a id="DefineYourVision"&gt;&lt;/a&gt;Define your Vision&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;ll never reach your destination if you don&amp;rsquo;t have a clear view of where you are heading.&amp;nbsp;Your vision should be your guiding light throughout your Adoption planning.&amp;nbsp;&lt;img class="align-right" style="float:right;" alt="Define your vision" src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-61/1778.Light-bulb_2D00_pana.png" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When defining your vision consider:
&lt;ul&gt;
&lt;li&gt;Your organization&amp;#39;s broader strategy, goals, and objectives&lt;/li&gt;
&lt;li&gt;The impact on employee and customer experiences&lt;/li&gt;
&lt;li&gt;What is driving the need for change&lt;/li&gt;
&lt;li&gt;Business capabilities and outcomes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use the&amp;nbsp;&lt;strong&gt;Vision Planning Worksheet&lt;/strong&gt; in our &lt;a href="/adoption/m/grow-resources/1532/download"&gt;GROW Get Started Workbook&lt;/a&gt; to help define your vision.&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1f4f3gg1e1"&gt;&lt;strong&gt;&lt;a id="BuildYourTeam"&gt;&lt;/a&gt;&lt;/strong&gt;Build your Team&lt;/h2&gt;
&lt;p&gt;People are a key component of successful adoption. Building a core team to support your efforts during roll-out is critical. Review our &lt;a title="Build Your Adoption Team" href="/adoption/m/grow-resources/1799/download"&gt;Build Your Adoption Team&lt;/a&gt; download to learn more about each role, then use our &lt;strong&gt;Team Planning Worksheet&lt;/strong&gt; in the &lt;a title="GROW Get Started Workbook" href="/adoption/m/grow-resources/1532/download"&gt;GROW Get Started Workbook&lt;/a&gt; to identify key players in your organization.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img class="align-left" alt=" " height="200" src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-00-61/Team-spirit_2D00_pana.png" width="200" /&gt;&lt;/td&gt;
&lt;td&gt;Key players include:
&lt;ul&gt;
&lt;li&gt;C-Level Business Executive Sponsor&lt;/li&gt;
&lt;li&gt;IT Executive Sponsor&lt;/li&gt;
&lt;li&gt;Program Manager/Success Owner&lt;/li&gt;
&lt;li&gt;Training Lead&lt;/li&gt;
&lt;li&gt;Communications Lead&lt;/li&gt;
&lt;li&gt;User Council&lt;/li&gt;
&lt;li&gt;Departmental Program Ambassadors/Champions&lt;/li&gt;
&lt;li&gt;IT Members&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="mcetoc_1f5jgok160"&gt;&lt;/h2&gt;
&lt;h2 id="mcetoc_1f4f3gg1e2"&gt;&lt;a id="DefineYourAdoptionPlan"&gt;&lt;/a&gt;Define your Adoption Plan&lt;/h2&gt;
&lt;p&gt;Your adoption plan is just as important as your overall project plan and should run along side your technology implementation efforts.&amp;nbsp;As you define the phases of your project, align with the following adoption plan phases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drive Awareness&lt;/li&gt;
&lt;li&gt;Ready your Team&lt;/li&gt;
&lt;li&gt;Deploy&lt;/li&gt;
&lt;li&gt;Assess &amp;amp; Iterate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use&amp;nbsp;our &lt;strong&gt;Adoption Planning Worksheet&lt;/strong&gt;&amp;nbsp;in the &lt;a href="/adoption/m/grow-resources/1532/download"&gt;GROW Get Started Workbook&lt;/a&gt; to&amp;nbsp;begin planning your next steps.&lt;/p&gt;
&lt;h4&gt;Adoption Plan Phases:&amp;nbsp;&lt;/h4&gt;
&lt;h4 id="mcetoc_1f4f3gg1e3"&gt;Drive Awareness&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Raise general awareness through actions and messaging&lt;/li&gt;
&lt;li&gt;Engage executive leadership to endorse and promote&lt;/li&gt;
&lt;li&gt;Communicate key business benefits&lt;/li&gt;
&lt;li&gt;Set expectations regarding usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mcetoc_1f3nrveu42"&gt;Ready Your Team&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Prepare teams to operate in the new environment through an understanding of change impacts&lt;/li&gt;
&lt;li&gt;Coach users to complete requirements prior to launch&lt;/li&gt;
&lt;li&gt;Educate users on functionality with formal education and on-going tips and tricks&lt;/li&gt;
&lt;li&gt;Ambassador/Champion Teams &amp;amp; Execs promote goals and solicit feedback&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mcetoc_1f3ns045l4"&gt;Deploy&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Facilitate interactive communication to gather feedback and address questions&lt;/li&gt;
&lt;li&gt;Celebrate benefits and wins through participation in sharing of success stories&lt;/li&gt;
&lt;li&gt;Reinforce desired behavior through continued executive endorsement and user education&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mcetoc_1f4f3gg1e4"&gt;Assess &amp;amp; Iterate&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Drive sustained adoption with regular post-deployment touchpoints&lt;/li&gt;
&lt;li&gt;Reporting and publicizing progress using usage analysis and adoption metrics&lt;/li&gt;
&lt;li&gt;Promote new functionality including major communication campaigns to support key functions&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id="mcetoc_1f4f3gg1e5"&gt;&lt;strong&gt;&lt;a id="Resources-Downloads"&gt;&lt;/a&gt;Resources &amp;amp; Downloads&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Use the additional resources and downloads below to further support your adoption efforts as your work through the GROW Adoption Framework.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Workbook&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="GROW Get Started Workbook" href="/adoption/m/grow-resources/1532/download"&gt;GROW Get Started Workbook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/adoption/m/grow-resources/1799/download"&gt;Build Your Adoption Team Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Additional Resources&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="User Adoption Playbook" href="https://www.sugarcrm.com/resources/user-adoption-playbook/" rel="noopener noreferrer" target="_blank"&gt;User Adoption Playbook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Optimizing User Adoption Series
&lt;ul&gt;
&lt;li&gt;&lt;a href="/adoption/m/grow-resources/1595/download"&gt;Optimizing User&amp;nbsp;Adoption Part 1 - Impediments to User Adoption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Optimizing User Adoption Part 2 - Creating Well-defined Business Objectives" href="/adoption/m/grow-resources/1596/download"&gt;Optimizing User Adoption Part 2 - Creating Well-defined Business Objectives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Optimizing User Adoption Part 3 - Building Your Team" href="/adoption/m/grow-resources/1598/download"&gt;Optimizing User Adoption Part 3 - Building Your Team&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Optimizing User Adoption Part 4 - Applying Change Management" href="/adoption/m/grow-resources/1599/download"&gt;Optimizing User Adoption Part 4 - Applying Change Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Optimizing User Adoption Part 5 - Measuring, Reporting, Iterating, Adjusting" href="/adoption/m/grow-resources/1600/download"&gt;Optimizing User Adoption Part 5 - Measuring, Reporting, Iterating, Adjusting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Blog: &lt;a href="/ll/f/conversations/5055/9-steps-to-a-successful-crm-go-live" rel="noopener noreferrer" target="_blank"&gt;9 Steps to a Successful CRM Go-Live&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Webinar: &lt;a title="CRM Blueprint Series - User Adoption" href="https://www.sugarcrm.com/resources/crm-blueprint-series-2-user-adoption/" rel="noopener noreferrer" target="_blank"&gt;CRM Blueprint Series - User Adoption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;eBook:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="/adoption/m/grow-resources/1618/download"&gt;Managing Through Change: The Key Role Managers Play in User Adoption&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Quick Video Tutorials" href="/learn/quick-videos" rel="noopener noreferrer" target="_blank"&gt;Quick Video Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Data Quality Best Practices" href="/adoption/m/grow-resources/1904/download"&gt;Data Quality Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sugarcrm.com/hd-cx/assessment/?utm_source=referral&amp;amp;utm_medium=telemarketing&amp;amp;utm_campaign=cm_global_sugar_growadoption_hdcx&amp;amp;utm_content=cxassessment"&gt;CX Assessment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Templates&lt;/td&gt;
&lt;td&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="Adoption Planning Workshop Presentation" href="/adoption/m/grow-resources/1601/download"&gt;Adoption Planning Workshop Presentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Project Kickoff Communication Examples" href="/adoption/m/grow-resources/1602/download"&gt;Project Kickoff Communication Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/adoption/m/grow-resources/1603/download"&gt;Project Update Communication Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Change Readiness Assessment Template" href="https://forms.office.com/Pages/ShareFormPage.aspx?id=aIPc1H9W9UikqCc_jClYxUoO3BWCWh5DqhOEMtL2NX1UOEhaTk81U1hLUU1PMFU5OEtSVjBFSDhHRS4u&amp;amp;sharetoken=kzEULeeQnDIjeHiGP76D"&gt;Change Readiness Assessment Template&lt;/a&gt;&amp;nbsp;(Long Form)&lt;/li&gt;
&lt;li&gt;&lt;a title="Change Readiness Assessment Template" href="https://forms.office.com/Pages/ShareFormPage.aspx?id=aIPc1H9W9UikqCc_jClYxUoO3BWCWh5DqhOEMtL2NX1UNzE1NTAxSTJFWkUyNE1BUkE1U0pXV0kyMS4u&amp;amp;sharetoken=MsuunraSI8LspprzJEWx"&gt;Change Readiness Assessment Template&lt;/a&gt; (Short Form)&lt;/li&gt;
&lt;li&gt;&lt;a title="Sample FAQs" href="/adoption/m/grow-resources/1610/download"&gt;Sample FAQ&amp;#39;s&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Ambassador/Champion Kickoff Template" href="/adoption/m/grow-resources/1611/download"&gt;Ambassador/Champion Kickoff Template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/adoption/m/grow-resources/1619/download"&gt;Sugar Connect Adoption Plan &amp;amp; Communication Templates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="mcetoc_1f4f3h98j7"&gt;&lt;a id="LP"&gt;&lt;/a&gt;Learning Plans&lt;/h2&gt;
&lt;p&gt;Below you&amp;#39;ll find links to Learning Plans that contain our recommended courseware for your Sugar solutions at this phase in your adoption journey. Review them yourself&amp;nbsp;or use them to create training plans for your teams to help support your rollout and adoption efforts.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Market&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Sell&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Serve&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://university.sugarcrm.com/learn/learning_plan/view/20/get-started-sugar-market-educational-offerings" rel="noopener noreferrer" target="_blank"&gt;Register now&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://university.sugarcrm.com/learn/learning_plan/view/18/get-started-sugar-sell-educational-offerings" rel="noopener noreferrer" target="_blank"&gt;Register now&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://university.sugarcrm.com/learn/learning_plan/view/19/get-started-sugar-serve-educational-offerings" rel="noopener noreferrer" target="_blank"&gt;Register now&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Connect&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Discover&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://university.sugarcrm.com/learn/catalog?ctldoc-catalog-0=se-Connect~category_id-2" rel="noopener noreferrer" target="_blank"&gt;Learn more&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://university.sugarcrm.com/learn/catalog?ctldoc-catalog-0=se-discover~category_id-2" rel="noopener noreferrer" target="_blank"&gt;Learn more&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="mcetoc_1f4f50h1d0"&gt;&lt;/h3&gt;
&lt;h3 id="mcetoc_1f4fa4hsq0"&gt;&lt;/h3&gt;
&lt;h3 id="mcetoc_1f5uvkqns0"&gt;&lt;span style="font-size:inherit;"&gt;You&amp;#39;re up and running, but don&amp;#39;t stop now - this is just the beginning of your journey. Now it&amp;#39;s time to &lt;a href="/adoption/w/adoption-framework/453/reinforce"&gt;Reinforce&lt;/a&gt;.&lt;/span&gt;&lt;/h3&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>