1 /++ 2 Scriptlike_Changelog: 3 4 The latest version of this changelog is always available at:$(BR) 5 $(LINK http://semitwist.com/scriptlike/changelog.html) 6 7 (Dates below are YYYY/MM/DD) 8 9 $(H2 v0.10.3 - 2019/07/15) 10 11 Maintenance release. 12 13 $(UL 14 $(CHANGE 15 Fixed deprecations for DMD 2.075+ and 2.079+. Dropped support for LDC 0.15.1. 16 ) 17 $(TESTS 18 Added Windows CI testing via 19 $(LINK2 https://ci.appveyor.com/project/Abscissa/scriptlike, AppVeyor). 20 ) 21 ) 22 23 $(H2 v0.10.2 - 2017/03/03) 24 25 $(UL 26 $(ENHANCE 27 Added $(API_CORE trace) functions as debugging aid. Outputs 28 file/line info and optionally a variable name/value. 29 ) 30 $(ENHANCE 31 Added $(API_FILE_EXTR isUserExec), $(API_FILE_EXTR isGroupExec) 32 and $(API_FILE_EXTR isWorldExec) to check a file's executable bits on Posix. 33 ) 34 $(FIXED 35 $(ISSUE 34): Unable to build docs of own project with DUB. 36 ) 37 $(FIXED 38 Make sure the example tests, when run in travis-ci, always use 39 the current scriptlike commit, instead of using a scriptlike release 40 from the published dub repos. 41 ) 42 $(FIXED 43 Docs weren't being correctly built for $(API_FILE_WRAP symlink), 44 $(API_FILE_WRAP readLink), $(API_FILE_WRAP getTimesWin) and $(API_FILE_EXTR trySymlink). 45 ) 46 $(CHANGE 47 Removed outdated, messy and problematic "plain script" example. 48 ) 49 ) 50 51 $(H2 v0.10.1 - 2017/02/25) 52 53 $(UL 54 $(FIXED 55 Fix some minor doc and travis-ci issues with v0.10.0's release. 56 ) 57 ) 58 59 $(H2 v0.10.0 - 2017/02/25) 60 61 $(UL 62 $(CHANGE 63 $(ISSUE 33): Rename `Path.toRawString` to `Path.raw`. 64 ) 65 $(CHANGE 66 Deprecated `Ext.toRawString`. It didn't do anything 67 different from `Ext.toString` and thus wasn't needed. 68 ) 69 $(FIXED 70 $(ISSUE 19): Compile error with DMDFE 2.065. Note, Scriptlike 71 still $(I officially) requires at least DMDFE 2.066, mainly because 72 of a bugfix for Windows, but DMDFE 2.065 appears to still be 73 important for Debian's GDC. 74 ) 75 $(FIXED 76 Excess blank lines and malformed `</p><p>` in this changelog. 77 ) 78 ) 79 80 $(H2 v0.9.7 - 2017/01/23) 81 82 $(UL 83 $(ENHANCE 84 Docs/Examples: Now recommend DUB v1.0.0+'s single-file package support, 85 and test the provided example. 86 ) 87 $(FIXED 88 $(ISSUE 31): Deprecation warnings on DMD 2.072 and up. 89 ) 90 ) 91 92 $(H2 v0.9.6 - 2016/05/28) 93 94 (Note: This was going to be v0.9.5, but the release got borked, so it's released as v0.9.6 instead.) 95 96 $(UL 97 $(FIXED 98 $(ISSUE 26): Deprecation warnings on DMD 2.070 and 2.071. 99 ) 100 $(FIXED 101 $(ISSUE 27): Flush stdout when requesting input. 102 [$(LINK2 https://github.com/JesseKPhillips, Jesse Phillips)] 103 ) 104 $(FIXED 105 $(LINK2 https://github.com/Abscissa/scriptlike/blob/master/USAGE.md#in-a-plain-script, Plain script) 106 example fails on DUB 0.9.25 (due to a change in dub's package cache directory structure). 107 ) 108 $(FIXED 109 Testing any pull request on 110 $(LINK2 https://travis-ci.org/Abscissa/scriptlike/, Travis-CI) 111 fails. 112 ) 113 $(FIXED 114 Unittests fail to build on DMD 2.071. 115 ) 116 ) 117 118 $(H2 v0.9.4 - 2015/09/22) 119 120 $(UL 121 $(FIXED 122 Previous release broke the `unittest` script when `dub test` support was added. 123 ) 124 $(FIXED 125 In echo mode, several functions would echo the wrong "try*" or 126 non-"try*" version. Ex: $(API_PROCESS run) echoed $(API_PROCESS tryRun), 127 and $(API_FILE_EXTR tryRename) echoed $(API_FILE_WRAP rename). 128 ) 129 $(FIXED 130 $(API_PATH_EXTR Path) and $(API_PATH_EXTR buildNormalizedPathFixed) now 131 convert back/forward slashes to native on BOTH Windows and Posix, not 132 just on Windows. 133 ) 134 $(FIXED 135 Some links within changelog and API reference were pointing to the 136 reference docs for Scriptlike's latest version, instead of staying 137 within the same documentation version. This made 138 $(LINK2 http://semitwist.com/scriptlike-docs/, archived docs for previous versions) 139 difficult to navigate. 140 ) 141 $(ENHANCE 142 $(ISSUE 17),$(ISSUE 20): Added usage examples to readme. 143 ) 144 $(ENHANCE 145 Add $(API_CORE interp) for interpolated strings:$(BR) 146 `string s = mixin( interp!"Value is ${variableOrExpression}" )` 147 ) 148 $(ENHANCE 149 Add $(API_FILE_EXTR removePath)/$(API_FILE_EXTR tryRemovePath) for 150 deleting a path regardless of whether it's a file or directory. (Calls 151 $(API_FILE_WRAP remove) for files and $(API_FILE_WRAP rmdirRecurse) for 152 directories.) 153 ) 154 $(ENHANCE 155 Add a Path-accepting overload of $(API_PATH_EXTR escapeShellArg) for 156 the sake of generic code. 157 ) 158 $(ENHANCE 159 When $(API_PROCESS runCollect) throws, the $(API_PROCESS ErrorLevelException) 160 now includes and displays the command's output (otherwise there'd be no 161 way to inspect the command's output for diagnostic purposes). 162 ) 163 $(ENHANCE 164 Greatly extended and improved set of tests. 165 ) 166 ) 167 168 $(H2 v0.9.3 - 2015/08/19) 169 170 $(UL 171 $(FIXED 172 $(ISSUE 16): Access to standard Phobos function hampered. 173 ) 174 $(ENHANCE 175 Support running unittests through DUB: `dub test` 176 ) 177 $(ENHANCE 178 Uses $(LINK2 https://travis-ci.org, travis-ci.org) for continuous integration testing. 179 ) 180 ) 181 182 $(H2 v0.9.2 - 2015/07/10) 183 184 $(UL 185 $(FIXED 186 Properly flush all command echoing output 187 (ie, in $(API_CORE yap) and $(API_CORE yapFunc)). 188 ) 189 $(ENHANCE 190 Add a "no-build" configuration for projects that need to import/depend 191 on Scriptlike through DUB, but use their own buildsystem. 192 ) 193 ) 194 195 $(H2 v0.9.1 - 2015/06/28) 196 197 $(UL 198 $(FIXED Fails to compile unless the `makedocs` script has been run.) 199 ) 200 201 $(H2 v0.9.0 - 2015/06/27) 202 203 $(UL 204 $(CHANGE Split $(MODULE_FILE) and $(MODULE_PATH) into the following:$(BR) 205 $(UL 206 $(LI $(MODULE_CORE) ) 207 $(LI $(MODULE_FILE_EXTR) ) 208 $(LI $(MODULE_FILE_WRAP) ) 209 $(LI $(MODULE_PATH_EXTR) ) 210 $(LI $(MODULE_PATH_WRAP) ) 211 ) 212 Utilizes `package.d` to retain ability to import $(MODULE_FILE) and $(MODULE_PATH). 213 ) 214 $(CHANGE Convert changelog from markdown to $(DDOX) so links are more readable. ) 215 $(ENHANCE Add (opt-in) command echoing to most functions in $(MODULE_FILE). ) 216 $(ENHANCE 217 Add $(API_CORE yap) and $(API_CORE yapFunc) as improved versions 218 of to-be-deprecated $(API_CORE echoCommand). 219 ) 220 $(FIXED Make $(API_PATH_EXTR escapeShellArg) const-correct. ) 221 $(FIXED 222 Make $(API_PATH_EXTR Path.toRawString) and $(API_PATH_EXTR Ext.toRawString) 223 both be `pure @safe nothrow`. 224 ) 225 ) 226 227 $(H2 v0.8.1 - 2015/06/22) 228 229 $(UL 230 $(ENHANCE 231 New overload for $(API_INTERACT userInput) to allow type inference:$(BR) 232 `void userInput(T=string)(string question, ref T result);` 233 (suggestion from 234 $(LINK2 http://forum.dlang.org/post/povoxkcogcmbvhwlxqbc@forum.dlang.org, Per Nordlöw)). 235 ) 236 ) 237 238 $(H2 v0.8.0 - 2015/06/13) 239 240 $(UL 241 $(CHANGE 242 Minimum officially supported $(DMD) increased from v2.064.2 to v2.066.0. 243 Versions below v2.066.0 may still work, but there will now be certain 244 problems when dealing with paths that contain spaces, particularly 245 on Windows. 246 ) 247 $(CHANGE 248 Removed unnecessary non-$(API_PATH_EXTR Path) wrappers around $(MODULE_STD_FILE)/$(MODULE_STD_PATH). 249 Things not wrapped (like $(STD_PATH dirSeparator) and $(STD_FILE SpanMode)) 250 are now selective public imports instead of aliases. These changes should 251 reduce issues with symbol conflicts. 252 ) 253 $(CHANGE 254 $(LINK2 http://semitwist.com/scriptlike/, API reference) now built 255 using $(DDOX) and uses much improved styling (actually uses a stylesheet now). 256 ) 257 $(CHANGE 258 Eliminate remnants of the "planned but never enabled" wstring/dstring 259 versions of $(API_PATH_EXTR Path)/$(API_PATH_EXTR Ext)/$(API_PROCESS Args). There 260 turned out not to be much need for them, and even $(MODULE_STD_FILE) 261 doesn't support wstring/dstring either. 262 ) 263 $(CHANGE Put output binaries in "bin" subdirectory, instead of Scriptlike's root. ) 264 $(ENHANCE 265 Add module scriptlike.only to import all of scriptlike, but omit the 266 helper Phobos imports in scriptlike.std. 267 ) 268 $(ENHANCE 269 $(API_FAIL fail) now accepts an arbitrary list of args of any type, 270 just like $(STD_STDIO writeln), 271 ) 272 $(ENHANCE 273 Added $(API_FAIL failEnforce), like Phobos's $(STD_EXCEPTION enforce), 274 but for $(API_FAIL fail). 275 ) 276 $(ENHANCE 277 Added $(API_PROCESS runCollect) and $(API_PROCESS tryRunCollect), to 278 capture a command's output instead of displaying it. 279 ) 280 $(ENHANCE Added $(API_INTERACT pause) to pause and prompt the user to press Enter. ) 281 $(ENHANCE $(API_CORE echoCommand) is no longer private. ) 282 $(ENHANCE 283 Added $(API_PATH_EXTR Path)-based wrappers for $(MODULE_STD_FILE)'s 284 $(STD_FILE getcwd), $(STD_FILE thisExePath) and $(STD_FILE tempDir). 285 ) 286 $(FIXED No longer uses Phobos's deprecated $(STD_PROCESS system) function.) 287 ) 288 289 $(H2 v0.7.0 - 2015/04/02) 290 291 $(UL 292 $(ENHANCE 293 $(ISSUE 14): Added scriptlike.interact module for easy user-input prompts. 294 [$(LINK2 https://github.com/JesseKPhillips, Jesse Phillips)] 295 ) 296 $(FIXED Unittest compile failure on $(DMD) v2.067.0. ) 297 ) 298 299 $(H2 v0.6.0 - 2014/02/16) 300 301 $(UL 302 $(CHANGE 303 $(API_PATH_EXTR Path) and $(API_PATH_EXTR Ext) are now aliases for the UTF-8 304 instantiations, and the template structs are now named `PathT` and `ExtT`. 305 ) 306 $(CHANGE 307 Removed `path()` and `ext()` helper functions to free up useful names 308 from the namespace, since they are no longer needed. Use `Path()` and 309 `Ext()` instead. 310 ) 311 $(CHANGE 312 Internally split into separate modules, but uses `package.d` to 313 preserve `import scriptlike;`. 314 ) 315 $(CHANGE Rename `escapeShellPath` -> $(API_PATH_EXTR escapeShellArg). ) 316 $(CHANGE 317 Rename $(API_PROCESS runShell) -> $(API_PROCESS tryRun). Temporarily keep 318 $(API_PROCESS runShell) as an alias. 319 ) 320 $(CHANGE 321 Rename $(API_CORE scriptlikeTraceCommands) -> $(API_CORE scriptlikeEcho). 322 Temporarily keep $(API_CORE scriptlikeTraceCommands) as an alias. 323 ) 324 $(ENHANCE Added scripts to run unittests and build API docs. ) 325 $(ENHANCE 326 Added $(API_PATH_EXTR Path.opCast) and $(API_PATH_EXTR Ext.opCast) for 327 converting to bool. 328 ) 329 $(ENHANCE 330 $(API_FAIL fail) no longer requires any boilerplate in `main()`. 331 ($(LINK2 http://forum.dlang.org/thread/ldc6qt$(DOLLAR)22tv$(DOLLAR)1@digitalmars.com, Newsgroup link)) 332 ) 333 $(ENHANCE 334 Added $(API_PROCESS run) to run a shell command like $(API_PROCESS tryRun), 335 but automatically throw if the process returns a non-zero error level. 336 ) 337 $(ENHANCE $(ISSUE 2): Optional callback sink for command echoing: $(API_CORE scriptlikeCustomEcho). ) 338 $(ENHANCE $(ISSUE 8): Dry run support via bool $(API_CORE scriptlikeDryRun). ) 339 $(ENHANCE 340 $(ISSUE 13): Added `ArgsT` (and $(API_PROCESS Args) helper alias) 341 to safely build command strings from parts. 342 ) 343 $(ENHANCE Added this changelog. ) 344 $(FIXED 345 $(API_PATH_EXTR Path)(null) and $(API_PATH_EXTR Ext)(null) were automatically 346 changed to empty string. 347 ) 348 $(FIXED $(ISSUE 10): Docs should include all OS-specific functions. ) 349 ) 350 351 $(H2 v0.5.0 - 2014/02/11) 352 353 $(UL 354 $(LI Initial release. ) 355 ) 356 357 Copyright: 358 Copyright (C) 2014-2017 Nick Sabalausky. 359 Portions Copyright (C) 2010 Jesse Phillips. 360 361 License: zlib/libpng 362 Authors: Nick Sabalausky, Jesse Phillips 363 +/ 364 module changelog;