http://qs321.pair.com?node_id=1162372


in reply to Catalyst versionning

Applying a trick I learned from Edward de Bono, create a good idea out of an absurd one, namely become a time traveller...

Although design including code design moves forward in time, as soon as those are complete, you should ideally jump mentally into the future, starting with how the system will be supported and maintained after it is live and work backwards to the last relevant task which might be deployment of a given release into production. Does git cover it or do you need additional tools such as puppet? Will there be configuration files and installation scripts? What will the UAT and test environments be like and how will they be provisioned from your repository? How will you create the configuration data that distinguishes between say production, test and development environments and what tools will use that data? Only when you know that can you wind the clock back to the end of the development cycle where you can now make a list of deliverables by type, from your code design and implementation plan. After that you can jump back to where you are now in reality, design your git repository using your own correct rule (only push what is custom-built otherwise configure it to be installed wherever its needed) and you are good to go forward.

One world, one people

Replies are listed 'Best First'.
Re^2: Catalyst versionning
by QuillMeantTen (Friar) on May 07, 2016 at 09:41 UTC

    I read your answer right away but I had to spend at least a night sleeping on it before it started making sense. I, for now, do not have enough experience in the field to apply your advice immediatly but thanks for the guideline and telling me where (and more importantly, how) to look.

      Real world example to help you understand:

      Some of the source code for our projects is generated from Math Lab models. If we didn't push the source code generated from those models, building would require having Math Lab and the code generation tools installed. These are both very expensive, so the company, understandably, wants to only provide it to the developers who actually do the modeling.

      Other reasons for pushing generated code include the use of custom tools to generate the code. Sometimes such tools are difficult to support. Other times, they must be kept private for various reasons.