www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Project deployment

reply "Uranuz" <neuranuz gmail.com> writes:
It's not look like question about D, but because I developing 
some web site on D I asking this question there. The question is 
about how to organize automative deployment process which include 
building executables, shared libraries, running unittests etc. 
Then I need it to place these builded files, resources (like 
html-templates, images, style sheets and other documents) in 
directories from which application will run. Also creation of 
documentation for libraries, aplications is needed.

I have no experience in deployment process so I'll be thankful 
any advices how to start. It could be links for some articles, 
tools that helps to solve this problem.

What is about *dub*? What kind of programme is it. Is it tool for 
only building application but not deploying? If no where I could 
read about these features (may be some examples exist)
Mar 01 2014
parent "Rikki Cattermole" <alphaglosined gmail.com> writes:
On Saturday, 1 March 2014 at 10:18:09 UTC, Uranuz wrote:
 It's not look like question about D, but because I developing 
 some web site on D I asking this question there. The question 
 is about how to organize automative deployment process which 
 include building executables, shared libraries, running 
 unittests etc. Then I need it to place these builded files, 
 resources (like html-templates, images, style sheets and other 
 documents) in directories from which application will run. Also 
 creation of documentation for libraries, aplications is needed.

 I have no experience in deployment process so I'll be thankful 
 any advices how to start. It could be links for some articles, 
 tools that helps to solve this problem.

 What is about *dub*? What kind of programme is it. Is it tool 
 for only building application but not deploying? If no where I 
 could read about these features (may be some examples exist)
If your utilising e.g. Vibe-d or templ-d for templating then templates will be compiled into the application. The raw source files are not required at runtime. It would be possible for the same thing for e.g. css files. However this is a little bit more difficult. Dub is a build manager for D. Its responsibility is to compile the executable. In other words, make it ready for deployment. It may not create e.g. .deb files but it will provide you with your executable and resources should you configure it so. Although copying directories is a little intensive with raw cli commands to do so. Dub can handle creation of documentation in the form of html files, as does dmd itself. Its just a switch you need to use. However you do need to adhere to ddoc for this. The alternative to using the import("file") syntax to load a file at compile time (do note you need to add a string import path to the compiler i.e. -J.) is to use e.g. a binary file to D file converter [0]. Which would allow you to compile in all your resources. Please note however, because of the differences in e.g. Linux distributions you will be required to compile for the target especially. So e.g. in a VM. [0] https://github.com/rikkimax/Bin2D
Mar 01 2014