1#########################################################################
2#####################  A U T O G E N E R A T E D ########################
3#########################################################################
4#
5# The contents of this POD file are auto-generated.  Any changes you make
6# will be lost. If you need to change the generated text edit _gen_pod()
7# at the end of DBIx/Class/Optional/Dependencies.pm
8#
9
10
11=head1 NAME
12
13DBIx::Class::Optional::Dependencies - Optional module dependency specifications (for module authors)
14
15=head1 SYNOPSIS
16
17Somewhere in your build-file (e.g. L<Module::Install>'s Makefile.PL):
18
19  ...
20
21  configure_requires 'DBIx::Class' => '0.082842';
22
23  require DBIx::Class::Optional::Dependencies;
24
25  my $deploy_deps = DBIx::Class::Optional::Dependencies->req_list_for('deploy');
26
27  for (keys %$deploy_deps) {
28    requires $_ => $deploy_deps->{$_};
29  }
30
31  ...
32
33Note that there are some caveats regarding C<configure_requires()>, more info
34can be found at L<Module::Install/configure_requires>
35
36
37=head1 DESCRIPTION
38
39Some of the less-frequently used features of L<DBIx::Class> have external
40module dependencies on their own. In order not to burden the average user
41with modules he will never use, these optional dependencies are not included
42in the base Makefile.PL. Instead an exception with a descriptive message is
43thrown when a specific feature is missing one or several modules required for
44its operation. This module is the central holding place for  the current list
45of such dependencies, for DBIx::Class core authors, and DBIx::Class extension
46authors alike.
47
48
49=head1 CURRENT REQUIREMENT GROUPS
50
51Dependencies are organized in C<groups> and each group can list one or more
52required modules, with an optional minimum version (or 0 for any version).
53The group name can be used in the
54
55
56=head2 DBIx::Class::Admin
57
58Modules required for the DBIx::Class administrative library
59
60=over
61
62=item * JSON::Any >= 1.23
63
64=item * Moose >= 0.98
65
66=item * MooseX::Types >= 0.21
67
68=item * MooseX::Types::JSON >= 0.02
69
70=item * MooseX::Types::LoadableClass >= 0.011
71
72=item * MooseX::Types::Path::Class >= 0.05
73
74=back
75
76Requirement group: B<admin>
77
78=head2 dbicadmin
79
80Modules required for the CLI DBIx::Class interface dbicadmin
81
82=over
83
84=item * Getopt::Long::Descriptive >= 0.081
85
86=item * JSON::Any >= 1.23
87
88=item * Moose >= 0.98
89
90=item * MooseX::Types >= 0.21
91
92=item * MooseX::Types::JSON >= 0.02
93
94=item * MooseX::Types::LoadableClass >= 0.011
95
96=item * MooseX::Types::Path::Class >= 0.05
97
98=item * Text::CSV >= 1.16
99
100=back
101
102Requirement group: B<admin_script>
103
104=head2 Storage::DBI::deploy()
105
106Modules required for L<DBIx::Class::Storage::DBI/deployment_statements> and L<DBIx::Class::Schema/deploy>
107
108=over
109
110=item * SQL::Translator >= 0.11018
111
112=back
113
114Requirement group: B<deploy>
115
116=head2 Sybase ASE support
117
118Modules required to connect to Sybase ASE
119
120=over
121
122=item * DBD::Sybase
123
124=back
125
126Requirement group: B<rdbms_ase>
127
128=head2 DB2 support
129
130Modules required to connect to DB2
131
132=over
133
134=item * DBD::DB2
135
136=back
137
138Requirement group: B<rdbms_db2>
139
140=head2 DB2 on AS/400 support
141
142Modules required to connect to DB2 on AS/400
143
144=over
145
146=item * DBD::ODBC
147
148=back
149
150Requirement group: B<rdbms_db2_400>
151
152=head2 Firebird support
153
154Modules required to connect to Firebird
155
156=over
157
158=item * DBD::Firebird
159
160=back
161
162Requirement group: B<rdbms_firebird>
163
164=head2 Firebird support via DBD::InterBase
165
166Modules required to connect to Firebird via DBD::InterBase
167
168=over
169
170=item * DBD::InterBase
171
172=back
173
174Requirement group: B<rdbms_firebird_interbase>
175
176=head2 Firebird support via DBD::ODBC
177
178Modules required to connect to Firebird via DBD::ODBC
179
180=over
181
182=item * DBD::ODBC
183
184=back
185
186Requirement group: B<rdbms_firebird_odbc>
187
188=head2 Informix support
189
190Modules required to connect to Informix
191
192=over
193
194=item * DBD::Informix
195
196=back
197
198Requirement group: B<rdbms_informix>
199
200=head2 MS Access support via DBD::ADO (Windows only)
201
202Modules required to connect to MS Access via DBD::ADO. This particular DBD is available on Windows only
203
204=over
205
206=item * DBD::ADO
207
208=back
209
210Requirement group: B<rdbms_msaccess_ado>
211
212=head2 MS Access support via DBD::ODBC
213
214Modules required to connect to MS Access via DBD::ODBC
215
216=over
217
218=item * DBD::ODBC
219
220=back
221
222Requirement group: B<rdbms_msaccess_odbc>
223
224=head2 MSSQL support via DBD::ADO (Windows only)
225
226Modules required to connect to MSSQL via DBD::ADO. This particular DBD is available on Windows only
227
228=over
229
230=item * DBD::ADO
231
232=back
233
234Requirement group: B<rdbms_mssql_ado>
235
236=head2 MSSQL support via DBD::ODBC
237
238Modules required to connect to MSSQL via DBD::ODBC
239
240=over
241
242=item * DBD::ODBC
243
244=back
245
246Requirement group: B<rdbms_mssql_odbc>
247
248=head2 MSSQL support via DBD::Sybase
249
250Modules required to connect to MSSQL via DBD::Sybase
251
252=over
253
254=item * DBD::Sybase
255
256=back
257
258Requirement group: B<rdbms_mssql_sybase>
259
260=head2 MySQL support
261
262Modules required to connect to MySQL
263
264=over
265
266=item * DBD::mysql
267
268=back
269
270Requirement group: B<rdbms_mysql>
271
272=head2 Oracle support
273
274Modules required to connect to Oracle
275
276=over
277
278=item * DBD::Oracle
279
280=item * Math::Base36 >= 0.07
281
282=item * Math::BigInt >= 1.80
283
284=back
285
286Requirement group: B<rdbms_oracle>
287
288=head2 PostgreSQL support
289
290Modules required to connect to PostgreSQL
291
292=over
293
294=item * DBD::Pg
295
296=back
297
298Requirement group: B<rdbms_pg>
299
300=head2 SQLAnywhere support
301
302Modules required to connect to SQLAnywhere
303
304=over
305
306=item * DBD::SQLAnywhere
307
308=back
309
310Requirement group: B<rdbms_sqlanywhere>
311
312=head2 SQLAnywhere support via DBD::ODBC
313
314Modules required to connect to SQLAnywhere via DBD::ODBC
315
316=over
317
318=item * DBD::ODBC
319
320=back
321
322Requirement group: B<rdbms_sqlanywhere_odbc>
323
324=head2 SQLite support
325
326Modules required to connect to SQLite
327
328=over
329
330=item * DBD::SQLite
331
332=back
333
334Requirement group: B<rdbms_sqlite>
335
336=head2 Storage::Replicated
337
338Modules required for L<DBIx::Class::Storage::DBI::Replicated>
339
340=over
341
342=item * Clone
343
344=item * Moose >= 0.98
345
346=item * MooseX::Types >= 0.21
347
348=item * MooseX::Types::LoadableClass >= 0.011
349
350=back
351
352Requirement group: B<replicated>
353
354=head1 METHODS
355
356=head2 req_group_list
357
358=over
359
360=item Arguments: none
361
362=item Return Value: \%list_of_requirement_groups
363
364=back
365
366This method should be used by DBIx::Class packagers, to get a hashref of all
367dependencies keyed by dependency group. Each key (group name) can be supplied
368to one of the group-specific methods below.
369
370
371=head2 req_list_for
372
373=over
374
375=item Arguments: $group_name
376
377=item Return Value: \%list_of_module_version_pairs
378
379=back
380
381This method should be used by DBIx::Class extension authors, to determine the
382version of modules a specific feature requires in the B<current> version of
383DBIx::Class. See the L</SYNOPSIS> for a real-world
384example.
385
386
387=head2 req_ok_for
388
389=over
390
391=item Arguments: $group_name
392
393=item Return Value: 1|0
394
395=back
396
397Returns true or false depending on whether all modules required by
398C<$group_name> are present on the system and loadable.
399
400
401=head2 req_missing_for
402
403=over
404
405=item Arguments: $group_name
406
407=item Return Value: $error_message_string
408
409=back
410
411Returns a single line string suitable for inclusion in larger error messages.
412This method would normally be used by DBIx::Class core-module author, to
413indicate to the user that he needs to install specific modules before he will
414be able to use a specific feature.
415
416For example if some of the requirements for C<deploy> are not available,
417the returned string could look like:
418
419 SQL::Translator >= 0.11018 (see DBIx::Class::Optional::Dependencies for details)
420
421The author is expected to prepend the necessary text to this message before
422returning the actual error seen by the user.
423
424
425=head2 die_unless_req_ok_for
426
427=over
428
429=item Arguments: $group_name
430
431=back
432
433Checks if L</req_ok_for> passes for the supplied C<$group_name>, and
434in case of failure throws an exception including the information
435from L</req_missing_for>.
436
437
438=head2 req_errorlist_for
439
440=over
441
442=item Arguments: $group_name
443
444=item Return Value: \%list_of_loaderrors_per_module
445
446=back
447
448Returns a hashref containing the actual errors that occurred while attempting
449to load each module in the requirement group.
450
451
452=head1 FURTHER QUESTIONS?
453
454Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>.
455
456=head1 COPYRIGHT AND LICENSE
457
458This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE>
459by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can
460redistribute it and/or modify it under the same terms as the
461L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>.
462
463