Recently I have been asked "How to Use a Central Repository?". Let me give a quick insight how we use our assono Framework.
Our framework consists of a quite number of design elements. There are forms, views, agents, images resources and quite a number of LotusScript libraries. There are all managed in a Notes database "assRepostory 2". Via the template mechanism any update is transferred to an application template, for instance for our assono Password-Safe Pro, and then transferred to a production database.
Let me give you the details.
In our central repository database called "assRepository 2" the option "Database file is a master template" is activated. The template name beneath this option is the most important part.
By this name all dependencies are checked. So be very careful that this name is unique.
For any application we develop, we have an application template. In this application template two options are activated. Since it is a template the option "Database file is a master template" has to be activated.
But we also activated the option "Inherit design from master template". Beneath this option we put the template name of our repository "assRepository-2". When the "Design" tasks runs at 1am on the Domino server, it checks whether any design element has changed in the repository. It also checks for any missing design element.
So every time we developed some new feature and all tests has been passed successfully we place all needed design elements in this repository. The "Design" task takes care of the distribution to the application templates.
Let me be clear about this. Since the "Design" task runs automatically we make sure that only full developed and tested changes are pushed to the repository. To have some kind of Source Control is highly recommended.
Another really important thing is to check for the option "Prohibit design refresh or replace to modify" for any application specific design element. This option is automatically activated for any design element created in the application template.
But if you copy some design element you should check twice. If you miss this option the design element will be deleted by the "Design task". Did I mentioned Source Control?
The production application inherits only directly from the application template.
Maybe my next blog post might be about how to use Git in this scenario.
Happy coding!