-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathChanges
319 lines (261 loc) · 13.4 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
Revision history for DBIx::Class::Sims (ordered by revision number).
0.500012 Sep 10 2020 12:00:00 PDT
- MANIFEST fix, from removal of DateTime::Event::Random
- Removed a handful of un-necessary dependencies
- Adjust Hash::Merge usage, so we no longer set the global merge
precedence, but instead use a localized Hash::Merge object
0.500011 Jul 08 2020 20:00:00 PDT
- Fix syntax error existing in 5.10.1
0.500010 Jul 08 2020 19:00:00 PDT
- Remove vendoring of DateTime::Event::Random
0.500001 Mar 04 2020 04:00:00 PDT
- Ooops. I forgot to update the MANIFEST.
0.500000 Feb 29 2020 17:00:00 PDT
- THIS RELEASE CONTAINS MULTIPLE POTENTIALLY-BREAKING BEHAVIOR CHANGES.
- Complete revamp of the internal architecture.
- Most of the private attributes have been renamed.
- Everything is now an object.
- Sims-specific wrappers for:
- DBIC::Source
- DBIC relationship data structure (hashes and CODE)
- Retrieving unique rows will raise an error if the row doesn't match the
provided spec.
- Set `die_on_unique_mismatch => 0` to disable this
- Using a type that isn't loaded will raise an error vs a warning.
- Relationship constraints are now lazily checked.
- If you say there should be 2 children, Sims will wait until all children
are created before verifying that the constraint is met
- Set `value_not` to constrain possible values for a column
- This can be a scalar or an array.
- Trace the creation of objects by setting the `object_trace` parameter
- Trace the topograph as well, if needed, with `topograph_trace`
- Disable all randomization with the `predictable_values` parameter
0.401000 Jun 09 2019 12:30:00 PDT
- Provide a nice way to print DateTime objects in SIMS_DEBUG mode.
- Upgrade Toposort to 0.060000 for `add_dependencies` option
0.400000 May 25 2019 12:30:00 PDT
- THIS RELEASE CONTAINS A POTENTIALLY BREAKING BEHAVIOR CHANGE.
- Only process children when a unique constraint is met.
- This means no parent or value settings are processed. Only children.
- Fix a nasty bug when the FK is also a UK and there is more than one
relationship emanating from the child table.
- Add support for relationships defined by subroutines
- The assumption that all relationships are single-column is likely to
have to be dealt with soon. but, not yet.
- Add SIMS_DEBUG envvar to output useful debugging information.
0.320000 May 11 2019 12:30:00 PDT
- Handle the case where a FK is also a UK
- Note: This currently only works for a single-column UK containing the
FK where there is 1-and-only-1 inverse relationship from the parent
Anything more complex may be undecidable in all cases.
- Add method traversal for backreferences
- strict_mode renamed to ignore_unknown_tables (defaults to false)
- Add a allow_relationship_column_names option (defaults to false)
- strict_mode is now a compilation of other options
- ignore_unknown_tables = false
- allow_relationship_column_names = false
0.310001 Apr 14 2019 12:30:00 PDT
- Documentation fixes.
0.310000 Dec 26 2018 14:30:00 PDT
- THIS RELEASE CONTAINS A POTENTIALLY BREAKING BEHAVIOR CHANGE.
- Add a strict_mode (defaults to true)
- Throws an error when a tablename doesn't exist
0.303000 Nov 25 2018 14:30:00 PDT
- Find the best match including all parentage. (Re-enabled feature)
- Don't call update() in fix_deferred_fks if no columns are dirty.
- Ignore inflated columns when looking for a sims spec.
0.302001 Nov 25 2018 13:30:00 PDT
- Allow a DBIC object to be set to a column, not just a relationship.
0.302000 Nov 11 2018 19:30:00 PDT
All fixes below graciously provided by ZipRecruiter.
- Warn when a not-null autoincrement primary key has a value set.
- Set the allow_pk_set_value parameter to disable the warning.
- Defer handling of nullable FKs to enable self-referential rows.
0.301000 Nov 26 2017 19:30:00 PDT
- Remove a section of code that takes parentage into account when looking for
existing rows. Please see the attached comment for explanation.
0.300900 Nov 12 2017 14:00:00 PDT
- Fix a bug preventing null_chance from working.
- Fixes for running tests under 5.26 (was depending on dot-in-INC)
0.300800 Apr 21 2017 19:00:00 PDT
- Use a hashref instead of a hashrefref when setting a sims-spec within a
column.
- This does not conflict with describing a parent's attributes.
0.300700 Apr 10 2017 11:00:00 PDT
- Allow sim types authors to use a regex to match multiple strings to the same
type handler.
- Pass the calculated sims specification into the sim types generator.
- This will enable types to get access to any overriden sims specification.
0.300600 Mar 05 2017 11:00:00 PDT
- Pass the runner into the sim types generator.
- This will enable types to get access to the schema and storage objects.
0.300501 Dec 29 2016 11:00:00 PDT
- Ensure we are specifying at least one column when inserting into Oracle.
0.300500 Dec 17 2016 18:00:00 PDT
- Many more column types have default values set when not null.
- If a column type is unknown, an error will be thrown instead of silently
failing over to the INSERT statement.
0.300406 Dec 12 2016 18:00:00 PDT
- Applied pull/26 (Thanks, manwar!)
- Added a check for accidental recursive creation (aka, self-referential tables).
0.300405 Dec 02 2016 12:00:00 PDT
- Re-fixed RT#118518 (Thanks SREZIC!)
0.300404 Dec 01 2016 12:00:00 PDT
- Support arrays for the "value" sim option
- "values" is now synonymous with "value"
- Fixed RT#118517, RT#118518 (Thanks SREZIC!)
0.300403 Nov 09 2016 12:00:00 PDT
- Add a sim_types() method that returns the list of all registered types.
0.300402 Oct 26 2016 19:00:00 PDT
- Change the default length for not-null varchar from 255 to 1.
- Check $info->{size} as well as $info->{data_length}.
0.300401 Oct 25 2016 19:00:00 PDT
- Add a minimum requirement on Data::Printer for np()
0.300400 Oct 24 2016 20:00:00 PDT
- THIS RELEASE CONTAINS A POTENTIALLY BREAKING CHANGE.
- NOT NULL columns are now populated, not just those with a sims setting.
- This no longer throws an error if the column wasn't populated.
- This will skip columns in PK and UK declarations.
- Move the "our $VERSION" declaration to within the first 10 lines of lib/DBIx/Class/Sims.pm
- CPAN hasn't been indexing new versions since 0.300004.
- Use our own clone() function instead of Clone::Any
- Clone::Any may disconnect the schema if a Result object is passed in.
- Reporting of duplicates returns a copy of the row, not the row itself.
0.300300 Sep 04 2016 14:00:00 PDT
- Tests no longer output randomness (Apparently, p() != np() ... who knew?!)
- Can provide a number or a hashref for a has_many relationship
- Can provide the \"Table[idx]" back-reference syntax for belongs_to rels.
0.300204 Aug 05 2016 14:00:00 PDT
- Support nested relationships when finding existing rows
0.300203 May 24 2016 14:00:00 PDT
- Add basic capability to follow relationships for finding parentage
- Add detection of DateTime objects when searching across unique constraints
0.300202 Apr 30 2016 14:00:00 PDT
- Add missing MANIFEST files (stupid me!)
0.300201 Apr 27 2016 14:00:00 PDT
- Add a die_on_failure option (defaulting to 1) and returning the error when
it is not set.
0.300200 Apr 27 2016 08:00:00 PDT
- Refactor the codebase into a prepper and a runner. The runner will make it
easier to extend the codebase and add more functionality.
- Count what is created and return that as $additional->{created}.
0.300102 Apr 05 2016 08:00:00 PDT
- Fix bug where the check to ensure different parents specifying the same
child will link to it was too expansive.
- Warn the seed used when a failure throws an error.
- Improve test suite output to not show the outputted warning on failure.
0.300101 Apr 01 2016 11:30:00 PDT
- Fix mistake where I used "limit" instead of "rows" (Thanks gtermars!)
0.300100 Mar 21 2016 09:00:00 PDT
- THIS RELEASE UPGRADES THE MINIMUM PERL VERSION
- Upgrade Perl minimum version from 5.8.4 to 5.10.2
- CPANTS was claiming breakage on 5.8.x and no need to support it
- Clone the provided arguments because we handle them destructively
- Enable forcing creation of parents with a __META__ field
- Use {limit => 1} when searching for the first parent
0.300009 Mar 17 2016 09:00:00 PDT
- Hoist DateTime-ish strings into DateTime objects as needed.
0.300008 Mar 15 2016 14:00:00 PDT
- Force a reload from database of all rows returned by load_sims()
- format all DateTime-like values that are passed in per the storage's
datetime_parser().
0.300007 Mar 15 2016 12:00:00 PDT
- Finalize the ordering within create_item.
- Properly handle the case where a child row specifies a parent that has
rows of a different child table. (Previously, the child rows would have
been part of the search for the parent, resulting in a wonky search.)
0.300006 Mar 10 2016 06:00:00 PDT
- Move the preprocess hook back. This was a horrible change.
0.300005 Mar 09 2016 19:00:00 PDT
- Move the preprocess hook to before the handling of FKs. This allows for the
horribly hacky disabling of a FK if your data model requires such things.
0.300004 Mar 05 2016 19:00:00 PDT
- Add support for looking things up by unique constraints (Thanks, Bluefeet!)
0.300003 Dec 08 2015 19:00:00 PDT
- Remove MYMETA.yml (RT#108552)
0.300002 Feb 28 2014 06:45:00 PDT
- Move the null_chance test into xt/ because the way the test is structured
causes spurious failures.
- Account for a change in DBD::SQLite's reporting of a NULL constraint
violation starting in 1.41_01.
0.300001 Feb 27 2014 06:45:00 PDT
- Upgrade the minimum DBD::SQLite requirement for building because CPANTS is
throwing failures.
0.300000 Feb 25 2014 08:15:00 PDT
- THIS RELEASE CONTAINS A BREAKING API CHANGE.
- The random seed is returned as part of a new optional second value.
- It may be specified in the call to load_sims.
0.200100 Feb 25 2014 08:15:00 PDT
- Call toposort as a class method of TopoSort, not as a component method.
- Allow the load_sims method to be called as a class method of Sims
- This allows using this class without requiring it as a component.
(Thanks, Ovid!)
0.200020 Feb 25 2014 08:15:00 PDT
- Add the ability to set sim info at any time (not just at compile-time).
(Thanks, Ovid!)
0.200010 Feb 25 2014 08:15:00 PDT
- Fix a bug where multiply-specified children were not linked properly.
0.200001 Jan 07 2014 14:15:00 PDT
- Add the missing us_firstname and us_lastname to the ::Types export list
(Thanks, moltar!)
- Moved to the proper version numbering (per mst)
0.20 Dec 25 2013 20:00:00 PDT
- THIS RELEASE CONTAINS A BREAKING API CHANGE.
- All of these changes are due bug reports from moltar on github.
- You can now specify the values of the primary key. (Issue #1)
- The second and third options to load_sims() have been merged into a single
second option of "options".
- The constraints parameter is now $options->{constraints}
- The hooks parameter is now $options->{hooks}
- There is now a new $options->{toposort} which allows passing options to the
underlying TopoSort implementation. This is primarily useful for self-
referential tables.
0.10 Oct 17 2013 19:00:00 PDT
- THIS RELEASE CONTAINS A BREAKING API CHANGE.
- The return value from load_sims() now contains the whole $row object, not
just a hashref of the primary keys.
- You can now pass in things other than an array of hashes for a resultsource
in the sim specification.
- A number, if all you're willing to accept the defaults and sims.
- A hashref, if you just want one thing.
- An arrayref (this was the previous API)
- If you pass in anything else, that resultsource will be skipped.
- You can now pass in a sim entry instead of a value for a given column.
0.06 Oct 06 2013 08:15:00 PDT
- Fixed a bug where specifying an auto-generated parent's columns didn't
actually set the values on the parent.
0.05 Sep 20 2013 17:30:00 PDT
- Better documentation of the "sim" entry in the column_info
- Added nullable frequency.
- This allows control over when a nullable column is null vs. populated.
- Added the following column types:
- ip_address
0.04 Sep 20 2013 14:30:00 PDT
- Split out the included types documentation into its own POD
- Added "value" as an sim option.
- This behaves like default_value without requiring a default_value on
the column.
- Added the following column types:
- us_firstname
- us_lastname
- email_address
- us_name uses us_firstname and us_lastname, plus sometimes provides a middle
initial.
0.03 Sep 20 2013 08:00:00 PDT
- Added missing files to the MANIFEST
- Which included this file
- Added the following column types:
- us_city
0.02 Sep 19 2013 17:30:00 PDT
- Removed unneeded import of Data::Dumper
- set_sim_type() now takes a hashref, not a hash.
- The documentation in 0.01 was correct, the code was not.
- Added the following column types:
- us_address
- us_county
- us_name
- us_phone
- us_ssntin
- us_state
0.01 Sep 18 2013 20:00:00 PDT
- Initial version