1Shipwright(3)         User Contributed Perl Documentation        Shipwright(3)
2
3
4
5   new

NAME

7       Shipwright - Best Practical Builder
8

SYNOPSIS

10           $ export SHIPWRIGHT_SHIPYARD=fs:/tmp/fs
11           $ shipwright create
12           # import will take a while, enjoy your coffee!
13           $ shipwright import cpan:Jifty
14           $ cd /tmp/fs
15           $ ./bin/shipwright-builder --install-base /tmp/jifty
16
17           one liner doing the same thing:
18           $ shipwright-generate cpan:Jifty | perl - --install-base /tmp/jifty
19

DESCRIPTION

21   Why use Shipwright?
22       Most software packages depend on other bits of software in order to
23       avoid code repetition. This may result in pain when attempting to
24       install the software, due to the maze of dependencies, especially for
25       large projects with many dependencies.
26
27       Shipwright is a tool to help you bundle your software with all its
28       dependencies, regardless of whether they are CPAN modules or non-Perl
29       modules from elsewhere. Shipwright makes the bundle work easy.
30
31   Introduction
32       If this is your first time using Shipwright,
33       Shipwright::Manual::Tutorial is probably a better place to start.
34
35   Design
36       The idea of Shipwright is simple:
37
38           sources                        shipwright factory
39       ---------------------           ------------------------
40       |  all the separate |  import   |  shipyard             |  build
41       |  sources          |  =====>   |                       |  ====>
42       ---------------------           ------------------------
43
44            vessel (final product)
45       ----------------------------------------------
46       | all packages installed with smart wrappers |
47       ----------------------------------------------
48
49   What's in a shipyard
50       shipyard after initialization
51
52       After initializing a shipyard, the files in the repository are:
53
54       bin/
55           # used for building, installing and testing
56            shipwright-builder
57           # a utility for doing things such as updating the build order
58            shipwright-utility
59
60       etc/
61           # wrapper for installed bin files, mainly for optimizing the
62       environment
63            shipwright-script-wrapper
64           # wrapper for installed perl scripts
65           shipwright-perl-wrapper
66           # source files you can `source', for tcsh and bash, respectively.
67           # both will be installed to tools/
68           shipwright-source-tcsh, shipwright-source-bash
69           # utility which will be installed to tools/
70           shipwright-utility
71           # set env bat for windows
72           shipwright-windows-setenv.bat
73
74       inc/ # modules for shipwright itself
75
76       sources/      # all the sources live here
77
78       scripts/    # all the build scripts and dependency hints live here
79
80       shipwright/
81
82           # branches note, see L<Shipwright::Manual::UsingBranches>
83           branches.yml
84           # flags note, see L<Shipwright::Manual::UsingFlags>
85           flags.yml
86           # test failures note
87           known_test_failures.yml
88           # cpan dists' module => name map
89           map.yml
90           # the actual build order
91           order.yml
92           # reference count note
93           refs.yml
94           # non-cpan dists' name => url map
95           source.yml
96           # sources' version
97           version.yml
98
99       t/
100           # will run this if with --only-test when build
101           test
102
103       shipyard after import
104
105       After importing, say cpan:Acme::Hello, both the sources and scripts
106       directories will have a `cpan-Acme-Hello' directory.
107
108       Under scripts/cpan-Acme-Hello there are two files: 'build' and
109       'require.yml'.
110
111       build
112
113       configure: %%PERL%% %%MODULE_BUILD_BEFORE_BUILD_PL%% Build.PL
114       --install_base=%%INSTALL_BASE%% --install_path
115       lib=%%INSTALL_BASE%%/lib/perl5 --install_path
116       arch=%%INSTALL_BASE%%/lib/perl5 make: %%PERL%%
117       %%MODULE_BUILD_BEFORE_BUILD%% Build test: %%PERL%%
118       %%MODULE_BUILD_BEFORE_BUILD%% Build test install: %%PERL%%
119       %%MODULE_BUILD_BEFORE_BUILD%% Build install clean: %%PERL%%
120       %%MODULE_BUILD_BEFORE_BUILD%% Build realclean
121
122       Each line is of `type: command' format, and the command is executed
123       line by line (which is also true for t/test).
124
125       See Shipwright::Manual::CustomizeBuild for more information on
126       customizing the build process for dists.
127
128       require.yml
129
130       build_requires: {}
131
132       conflicts: {}
133
134       recommends:
135         cpan-Locale-Maketext-Lexicon:
136           version: 0.15 requires: {}
137
138       This file details the hints needed in order for Shipwright to create
139       the right build order.
140
141       vessel
142
143       After the cmd `./bin/shipwright-builder --install-base /tmp/vessel`, we
144       have a new directory structure which we call a vessel(/tmp/vessel).
145

SEE ALSO

147       Shipwright::Manual
148

AUTHORS

150       sunnavy  "<sunnavy@bestpractical.com>"
151
153       Shipwright is Copyright 2007-2015 Best Practical Solutions, LLC.
154
155       This program is free software; you can redistribute it and/or modify it
156       under the same terms as Perl itself.
157
158
159
160perl v5.32.1                      2021-01-27                     Shipwright(3)
Impressum