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