summaryrefslogtreecommitdiff
path: root/Changes
blob: cb58a655375f6b931a6748e13b6db5cbc66e177c (plain)
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
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
Revision history for Path-Tiny

0.070     2015-06-28 13:50:16-04:00 America/New_York

    - No changes from 0.069

0.069     2015-06-18 18:09:44-04:00 America/New_York (TRIAL RELEASE)

    [CHANGED]

    - The 'copy' menthod now returns the object for the copied file

    [FIXED]

    - The 'visit' method only dereferences the callback return value
      for scalar refs, avoiding some common bugs

0.068     2015-03-23 20:42:56-04:00 America/New_York

    [META]

    - Jumping to 0.068 to get to an even-version for a stable release

    [DOCUMENTED]

    - Noted that 0.66 changed the 'filehandle' method

0.066     2015-03-20 23:59:08-04:00 America/New_York (TRIAL RELEASE)

    [ADDED]

    - Added exclusive locking option to filehandle opens; spew now
      exclusively locks tempfile used for atomic writes

0.065     2015-03-06 05:59:56-05:00 America/New_York

    [ADDED]

    - Added 'assert' method

    - Added 'visit' method

    - Added support for a negative count for 'lines' to get the
      last lines of a file

    [FIXED]

    - Fixed tilde expansion if path has spaces

    - Make realpath non-fatal if the parent path exists and only the final
      path component does not. (Was fatal on Windows and some Unixes.)

    - Removed rendundant locking on tempfile use for spewing

    - Work around File::Temp bugs on older ActiveState Windows Perls
      https://bugs.activestate.com/show_bug.cgi?id=104767 

    [DOCUMENTED]

    - Fixed SYNOPSIS example

0.064     2015-03-05 03:58:42-05:00 America/New_York (TRIAL RELEASE)

0.063     2015-03-04 16:00:17-05:00 America/New_York (TRIAL RELEASE)

0.062     2015-03-04 13:59:31-05:00 America/New_York (TRIAL RELEASE)

0.061     2014-11-13 16:50:05-05:00 America/New_York

    [FIXED]

    - Fixed append_utf8 and append_raw with 'truncate' option.

0.060     2014-11-04 17:33:39-05:00 America/New_York

    [ADDED]

    - Added 'truncate' option to append for in-place replacement of
      file contents.

0.059     2014-10-14 12:45:46-04:00 America/New_York

    [FIXED]

    - Fixed precedence bug in the check for Unicode::UTF8

0.058     2014-09-23 11:00:24-04:00 America/New_York

    [ADDED]

    - Added a 'sibling' method as a more efficient form of
      calling $path->parent->child(...).

    [DOCUMENTED]

    - Every method annotated with the version number of the
      last API change.

0.057     2014-09-19 11:23:05-04:00 America/New_York

    [FIXED]

    - On AIX, reads that default to locking would fail without
      write permissions, because locking needs write permissions.
      The fix is only to lock reads if write permissions exist;
      otherwise locking is skipped.

0.056     2014-08-07 15:08:41-04:00 America/New_York

    [*** DEPRECATIONS ***]

    - The 'dirname' method is deprecated due to exposing File::Spec
      inconsistencies

    [ADDED]

    - The 'digest' method now takes a 'chunk_size' option to avoid
      slurping files entirely into memory.

    [FIXED]

    - Fixed problem throwing errors from 'remove'

0.055     2014-06-30 10:29:28-04:00 America/New_York

    [FIXED]

    - tempfile/tempdir won't warn if used as functions without arguments

0.054     2014-05-04 13:56:11-04:00 America/New_York

    [ADDED]

    - The 'basename' method now takes a list of suffixes to remove before
      returning the name

    - FREEZE/THAW/TO_JSON serialization helpers

    [CHANGED]

    - When constructing a Path::Tiny object from another, the original
      is returned unless it's a temp dir/file.  This significantly
      speeds up calling path($path) if $path is already a Path::Tiny
      object. (Thanks to Michael Schwern for prompting such benchmarking.)

    [FIXED]

    - Constructing any path -- e.g. with child() -- with undef or
      zero-length parts throws an error instead of constructing an
      invalid path

0.053     2014-03-24 09:25:51-04:00 America/New_York (TRIAL RELEASE)

    [INCOMPATIBLE CHANGES]

    - The 'is_file' method now does -e && ! -d and not -f because -f
      is often more restrictive than people intend or expect.

    [ADDED]

    - Added 'chmod' method with symbolic chmod support ("a=r,u+rx")

0.052     2014-01-14 15:58:03-05:00 America/New_York

    [FIXED]

    - Backslash-to-slash conversion now only happens on Windows
      (since backslash is legal on Unix, we must allow it)

0.051     2013-12-20 07:34:14 America/New_York

    [FIXED]

    - Fixed file order bug in the new test file

0.050     2013-12-20 07:27:20 America/New_York

    [FIXED]

    - Recursive iteration won't throw an exception if a directory is
      removed or unreadable during iteration.

0.049     2013-12-12 00:48:01 America/New_York

    [FIXED]

    - Generates filename for atomic writes independent of thread-ID.
      Fixes crashing bug on Win32 when fork() is called.

0.048     2013-12-11 21:56:23 America/New_York

    [ADDED]

    - Added 'subsumes' method

    [CHANGED]

    - The 'chomp' option for 'lines' will remove any end-of-line sequences
      fully instead of just chomping the last character

    - The 'flock' package will no longer indexed by PAUSE

    [FIXED]

    - Hides warnings and fixes possible fatal errors from pure-perl Cwd,
      particularly on MSWin32

0.047     2013-11-26 15:11:13 America/New_York

    [FIXED]

    - Previous lock testing fixes broke on Windows (sigh); now fixed,
      I hope.

0.046     2013-11-22 17:07:24 America/New_York

    [FIXED]

    - Revised locking tests for portability again: locks are now tested
      from a separate process

0.045     2013-11-22 15:28:50 America/New_York

    [FIXED]

    - Fixed locking test on AIX

0.044     2013-10-17 17:00:41 America/New_York

    [FIXED]

    - Fixed child path construction against the root path.

    - Fixed path construction when a relative volume is provided as the
      first argument on Windows; e.g. path("C:", "lib") must be like
      path("C:lib"), not path("C:/lib").

    - On AIX, shared locking is replaced by exclusive locking on a R/W
      filehandle, as locking read handles is not supported

0.043     2013-10-14 06:24:06 America/New_York

    [CHANGED]

    - Calling 'absolute' on Windows will add the volume if it is missing
      (E.g. "/foo" will become "C:/foo").  This matches the behavior
      of File::Spec->rel2abs.

    [FIXED]

    - Fixed t/00-report-prereqs.t for use with older versions of
      CPAN::Meta::Requirements

0.042     2013-10-13 11:02:02 America/New_York

    [FIXED]

    - When 'realpath' can't be resolved (because intermediate directories
      don't exist), the exception now explains the error clearly instead of
      complaining about path() needing a defined, positive-length argument.

    - On Windows, fixed resolution of relative paths with a volume.
      E.g. "C:foo" is now correctly translated into getdcwd on "C:"
      plus "foo".

0.041     2013-10-11 08:56:31 America/New_York

    [FIXES]

    - Removes duplicate test dependency on File::Spec that triggers
      a CPAN.pm bug

0.040     2013-10-08 22:01:50 America/New_York

    [FIXES]

    - Fixed broken locking test on *bsd

    - When using 'filehandle' to request a locked handle that truncates an
      existing file and has a binmode starting with ":unix", this fixes a
      bug where pseudo-layers weren't being cleared properly.

0.039     2013-10-08 16:39:23 America/New_York

    [ADDITIONS]

    - The 'filehandle' method now offers an option to return locked handles
      based on the file mode.  Input-output methods now rely on this
      feature internally.  Truncating file modes defer truncation until
      after an exclusive lock is acquired.

    [FIXES]

    - The 'filehandle' method now respects default encoding set by
      the caller's open pragma.

0.038     2013-10-01 18:20:05 America/New_York

    [ADDITIONS]

    - Added 'is_rootdir' method to simplify testing if a path is
      the root directory

0.037     2013-09-25 13:00:25 America/New_York

    [FIXES]

    - Fixed for v5.8

0.036     2013-09-25 09:34:28 America/New_York

    [PREREQS]

    - No longer lists 'threads' as a prerequisite.  If you have a threaded
      perl, you have it and if you're not, Path::Tiny doesn't care.

0.035     2013-09-24 07:21:55 America/New_York

    [FIXED]

    - Fixed flock warning on BSD that was broken with the autodie
      removal; now also applies to all BSD flavors

0.034     2013-09-23 16:16:36 America/New_York

    [INCOMPATIBLE CHANGE]

    - Exceptions are now Path::Tiny::Error objects, not autodie exceptions;
      this removes the last dependency on autodie, which allows us to
      support Perls as far back as v5.8.1

    [FIXED]

    - BSD/NFS flock fix was not backwards compatible before v5.14.  This
      fixes it harder.

    [PREREQS]

    - dropped autodie

    - lowered ExtUtils::MakeMaker configure_requires version to 6.17

0.033     2013-09-12 08:54:30 America/New_York

    [FIXED]

    - Perl on BSD may not support locking on an NFS filesystem.  If this is
      detected, Path::Tiny warns and continues in an unsafe mode.  The
      'flock' warning category may be fatalized to die instead.

    [DOCUMENTED]

    - Added 'iterator' example showing defaults

0.032     2013-09-06 17:52:48 America/New_York

    [PREREQS]

    - Removed several test dependencies.  Path::Tiny now only needs
      core modules, though some must be upgraded on old Perls

0.031     2013-08-27 10:03:57 America/New_York

    [FIXED]

    - parent() on paths with internal double dots (e.g. /foo..bar.txt) now works
      correctly

0.030     2013-08-20 16:10:04 America/New_York

    [FIXED]

    - t/zzz-spec.t used getcwd() instead of getdcwd(), which breaks
      on Windows if the build directory isn't on the 'C' drive

0.029     2013-08-19 11:52:24 America/New_York

    [FIXED]

    - On Win32, "C:/" no longer is changed to "C:".  Also, "C:" is
      converted to the absolute path of cwd on the "C:" volume.  UNC paths
      ("//server/share/") now retain their trailing slash to correctly
      distinguish volume and directory paths when split

0.028     2013-08-14 13:12:49 America/New_York

    [ADDED]

    - The 'children()' method now takes an optional regular expression to
      filter the results

0.027     2013-07-25 19:38:44 America/New_York

    [ADDED]

    - Added the 'digest' method to produce a hexadecimal SHA-256
      (or user-specified) digest of a file

0.026     2013-07-14 21:25:22 America/New_York

    [FIXED]

    - Fixed bug where lines() with a count longer than the
      file would return undef for the extra lines.  Now returns
      only the lines in the file if the count is greater than
      the number of lines.

0.025     2013-07-10 09:32:13 America/New_York

    [FIXED]

    - Spew to an existing symlink now atomically replaces
      the resolved destination, not the symlink

0.024     2013-06-17 18:12:36 America/New_York

    [FIXED]

    - Win32 pseudo-forks don't load threads.pm, so we do that
      in CLONE to ensure we get the thread ID

0.023     2013-06-12 07:18:31 America/New_York

    [FIXED]

    - Removing dangling symlinks now works

0.022     2013-05-28 11:57:15 America/New_York

    [ADDED]

    - The 'touch' method can now take an epoch secs argument

0.021     2013-05-17 22:53:18 America/New_York

    [FIXED]

    - Fixed fatal bug with lines_utf8 using chomp

    [DOCS]

    - Pod typos fixed

0.020     2013-04-13 06:58:11 Europe/London

    [FIXED]

    - More descriptive error message if copy() fails

0.019     2013-04-12 06:58:18 Europe/London

    [FIXED]

    - Fixed warning about -l on dirhandle in iterator()

0.018     2013-04-08 12:44:31 America/New_York

    [ADDED]

    - cwd, rootdir, tempfile and tempdir can now be exported on request
      and used as functions instead of as methods

    [FIXED]

    - Fixed regression in lines() where it no longer returned count
      of lines in scalar context

0.017     2013-03-28 16:49:15 America/New_York

    [ADDED]

    - path() constructor now glob-expands tildes (~)

    [CHANGED]

    - Improved options validation; invalid options now throw errors

0.016     2013-03-26 14:59:36 America/New_York

    [ADDED]

    - The iterator now has an optional recursive mode

    [CHANGED]

    - We no longer use autodie directly, but we throw our
      own autodie::exceptions on error.  This avoids the overhead
      of wrapping built-ins with function calls.

    - Most dependencies are now loaded on demand, reducing startup
      time.

0.015     2013-03-13 13:20:38 America/New_York

    [CHANGED]

    - touch and touchpath now return the object to allow easy chaining
      with spew

0.014     2013-03-09 08:54:26 America/New_York

    [ADDED]

    - parent now takes an optional argument to look upwards multiple
      times in one call.  e.g. $path->parent(2)

0.013     2013-02-22 10:58:05 America/New_York

    [CHANGED]

    - remove_tree now defaults to safe mode and will not attempt to chmod
      and remove directories with insufficient permissions

    - Temporary files and directories are always created with an
      absolute path.

    [FIXED]

    - Failures from autodie are reported from our caller's location
      (as if we called croak()); bumped autodie prereq to 2.14 for
      this feature

    - Failures from mkpath and remove_tree are now trapped and
      thrown as exceptions.  (Making an existing path or removing
      a non-existant path return false and are not errors);

0.012     2013-02-20 09:34:50 America/New_York

    [REMOVED]

    - The 'remove' function no longer works on directories.  The new
      'remove_tree' method should be used instead.

    [CHANGED]

    - path() now requires a defined, positive-length argument to keep you
      safe from subtle bugs in your code that pass an undef or empty
      argument to path suddenly having you operating in the current
      directory.

    [ADDED]

    - Added Path::Tiny->cwd as a constructor to give an absolute
      path to the current working directory

    - Added 'remove_tree' as a method for recursively removing
      a directory

0.011     2013-02-19 11:08:44 America/New_York

    [CHANGED]

    - slurp/spew/etc and openr/openw/etc now repect default layers
      set by -C or the open pragma

    - spew and append can now be given array references to output
      to avoid extra copying

0.010     2013-02-16 10:26:38 America/New_York

    [FIXED]

    - The 'tempdir' and 'tempfile' methods can now both take either leading
      templates or a TEMPLATE option, so you don't have to remember which
      one File::Temp wants

0.009     2013-02-15 16:05:39 America/New_York

    [CHANGED]

    - Dropped use of '//' to allow Path::Tiny to run on Perl 5.008

0.008     2013-02-15 13:49:54 America/New_York

    [ADDED]

    - Added 'touchpath' method combining 'mkpath' and 'touch'

0.007     2013-02-12 17:41:44 America/New_York

    [FIXED]

    - Unicode::UTF8 0.58 is necessary for optional faster
      Unicode processing

0.006     2013-02-11 13:22:18 America/New_York

    [FIXED]

    - t/parent.t is amended to work on Windows

    - new() now correctly takes multiple path arguments, like path()

0.005     2013-02-07 15:41:32 America/New_York

    [FIXED]

    - Fixed test for platforms with /sbin symlinked to /usr/sbin

0.004     2013-02-05 19:19:46 America/New_York

    [ADDED]

    - Added slurp_raw and other *_raw helper methods

    - Added realpath method (with thanks to ether)

    - Added canonpath method (with thanks to sjmiller)

    [FIXED]

    - slurp/lines/spew/append now do appropriate flocking

    - Fixed test that fails if run as root (bingos)

    - Fixed test that fails if cwd/getcwd don't agree

    [CHANGED]

    - internal optimizations

0.003     2013-01-31 06:59:50 America/New_York

    [FIXED]

    - lstat was calling the wrong stat [rt.cpan.org #83063]

    - make atomic writes thread-safe [rt.cpan.org #83064]

    [CHANGED]

    - updated bugtracker to point to github

0.002     2013-01-30 22:09:37 America/New_York

    [FIXED]

    - s/File::Stat/File::stat/; # OMG! I hate case insensitivity

0.001     2013-01-30 19:36:22 America/New_York

    - First release