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
|
0.9.5
* Add `splitDrive`, `takeDrive`, `dropDrive` and `isDrive`.
0.9.4 was an accidental release of the unreleased 0.9.3 without the appropriate changelog.
0.9.2
* Data instances for Rel, Abs, File, and Dir.
* Bump hashable upper bound to <1.5.
0.9.1
* Support for genvalidity >=1.0.0.0
* `mapSomeBase` and `prjSomeBase` for modifying or projecting SomeBase.
0.9.0
* Fix inconsistencies on different platforms: [#166](https://github.com/commercialhaskell/path/issues/166)
* `replaceProperPrefix`
* Make it possible to use windows paths on posix and vice versa
0.8.0
* Rerelease of 0.7.1 with better version number
0.7.1:
* Test with GHC 8.8.2, 8.8.3, 8.10.1.
* Export SomeBase constructor.
* Fix Lift severe Lift instance bug
0.7.0:
* BREAKING CHANGE: "fileExtension" now throws an exception if the file has no
extension. You can use the result as a "Maybe" in pure
code or handle the exception appropriately in any other monad.
* Old extension operations "addFileExtension" and "setFileExtension" have
been deprecated and replaced by "addExtension" and "replaceExtension"
respectively with new behavior.
ADAPTING YOUR CODE TO THIS CHANGE:
* Code that sets an extension not starting with a "." e.g. "foo", must
be changed such that it starts with a "." i.e. ".foo".
* Code that sets multiple extensions in one go e.g. ".tar.gz" must be
changed to set them one at a time instead i.e. add ".tar" first and
then add ".gz".
* Code that sets an extension starting with multiple dots e.g.
"..foo" must be changed such as to make the extra dots part of the
file name instead.
Details:
The new operations "addExtension" and "replaceExtension" accept only "valid"
extension forms which is exactly the same as what "fileExtension" returns.
A valid extension starts with a @.@ followed by one or more characters
not including @.@ followed by zero or more @.@s in trailing position.
This change allows extension operations to be principled following
these laws:
* flip addExtension file >=> fileExtension == return
* (fileExtension >=> flip replaceExtension file) file == return file
* Add splitExtension operation such that:
* uncurry addExtension . swap >=> splitExtension == return
* splitExtension >=> uncurry addExtension . swap == return
* fileExtension == (fmap snd) . splitExtension@
* Add 'Path.Posix' and 'Path.Windows' modules for manipulating
Windows or Posix style paths independently of the current platform.
* Add 'Lift' instance for 'Path'.
* `Path.Windows` normalizes path separators throughout path,
including immediately following drive letter.
* `Path.Windows` handles UNC (`\\host\share\`) and Unicode (`\\?\C:\`) path
without breaking the double-separator prefix.
* Remove support for old GHC version. The oldest supported version
is 8.2.
0.6.1:
* Add 'addFileExtension' function and its operator form: (<.>).
* Derive 'Eq' instance for 'PathException'.
0.6.0:
* Deprecate PathParseException and rename it to PathException
* Allow 'parent' to work on relative paths as well
* Deprecate isParentOf and stripDir and rename them to isProperPrefixOf and
stripProperPrefix respectively.
* Allow "." as a valid relative dir path with the following rules:
* "./" </> "./" = "./"
* "./" </> "x/" = "x/"
* "x/" </> "./" = "x/"
* dirname "x" = "./"
* dirname "/" = "./"
* dirname "./" = "./"
* Make dirname return "." instead of "/" (fixes #18).
* Remove the 'validity' flag.
* Add synonym for setFileExtension in the form of an operator: (-<.>).
0.5.13:
* Add QuasiQuoters absdir, reldir, absfile, relfile
0.5.11:
* Add replaceExtension and fileExtension
0.5.10:
* Disallow /. for absolute file
* Disallow foo/. for relative file
0.5.9:
* Lifted ~ restriction from parser https://github.com/chrisdone/path/issues/19
0.5.8
* Add Aeson instances.
0.5.7:
* Fix haddock problem.
0.5.6:
* Reject only .. and .
0.5.5:
* Use filepath's isValid function for additional sanity checks
0.5.4:
* Disable parsing of path consisting only of "."
* Add NFData instance for Path
* Some typo/docs improvements
* Add standard headers to modules
0.5.3:
* Added conversion functions.
0.2.0:
* Rename parentAbs to simply parent.
* Add dirname.
0.3.0:
* Removed Generic instance.
0.4.0:
* Implemented stricter parsing, disabling use of "..".
* Made stripDir generic over MonadThrow
0.5.0:
* Fix stripDir p p /= Nothing bug.
0.5.2:
* Removed unused DeriveGeneric.
|