Skip to content

Commit ea5ad84

Browse files
committed
Documentation converted to .adoc
Signed-off-by: Marcin Kuszczak <[email protected]>
1 parent 136218d commit ea5ad84

File tree

4 files changed

+627
-614
lines changed

4 files changed

+627
-614
lines changed

NEWS.adoc

Lines changed: 386 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,386 @@
1+
= Changes
2+
3+
== [4.2.0-SNAPSHOT] - 2022-11-25
4+
5+
*Breaking changes*
6+
7+
* Renamed environment variable from 'KSCRIPT_DIR' to 'KSCRIPT_DIRECTORY'
8+
9+
*Enhancements*
10+
11+
* New GitHub organization: http://github.com/kscripting[kscripting]
12+
* More work on Windows shell compatibility; most functionality works on Windows as on systems with bash
13+
* Change the name of kscript package to io.github.kscripting:kscript
14+
* Final execution of script is handled by kscript, not by bash (reduces dependency on bash)
15+
* Separate library for shell execution kscripting/shell
16+
* Ability to provide local artifacts path through *KSCRIPT_DIRECTORY_ARTIFACTS* or configuration file property:
17+
*scripting.directory.artifacts* (thanks to https://github.com/vsajip[Vsajip] for initial implementation)
18+
* kscript jar is released to Maven Central: *io.github.kscripting:kscript:4.2.0*
19+
* Change the way of checking latest kscript version (simplifies releases)
20+
* Deprecate old annotations in kscript-annotations library
21+
* Improved implementation: VersionChecker, ConfigBuilder etc.
22+
* Updated Gradle and dependencies
23+
* Deprecated @file:Include in favour of @file:Import as a preparation of switch to Kotlin Scripting
24+
* Replaced DocOpt with Apache CLI
25+
* Changed the way of creating distribution package - now it is handled by Gradle
26+
* Version of kscript is set by Gradle (generated BuildConfig class)
27+
* Improved DependencyResolver: aar archives are also included in classpath
28+
* When creating IntelliJ project Gradle and Idea are no more required
29+
30+
*Bugfixes*
31+
32+
* Fixed exit code on Windows
33+
34+
== [4.1.x] - (last 4.1.1 - 2022-08-27)
35+
36+
*Breaking changes*
37+
38+
* Renamed env variables (cleanup):
39+
CUSTOM_KSCRIPT_PREAMBLE -&gt; KSCRIPT_PREAMBLE
40+
KSCRIPT_IDEA_COMMAND -&gt; KSCRIPT_COMMAND_IDEA
41+
KSCRIPT_GRADLE_COMMAND -&gt; KSCRIPT_COMMAND_GRADLE
42+
43+
*Enhancements*
44+
45+
* Windows support and proper Cygwin and MSys support
46+
* File argument for specific OS should be in format of that OS (eg. Cygwin: kscript /cygdrive/c/file.kts)
47+
* Multiplatform tests for different OS-es using Github actions
48+
* Ability to use configuration file for kscript (thanks to https://github.com/meztihn[meztihn])
49+
* kscript follows XDG Spec (Issue #323) (thanks to https://github.com/meztihn[meztihn])
50+
* Packaging scripts works again (thanks to https://github.com/vsajip[Vsajip])
51+
* When creating IntelliJ project 'gradle' and 'idea' do not have to be in path
52+
* Integration tests rewritten from bash to JUnit
53+
* Replacements for (current annotations are deprecated):
54+
** @MavenRepository -&gt; @Repository
55+
** @KotlinOpts -&gt; @KotlinOptions
56+
** @CompilerOpts -&gt; @CompilerOptions
57+
* Deprecation of comment based annotations
58+
* Report for deprecated features (–report option)
59+
60+
*Bugfixes*
61+
62+
* Fix for dependency resolution
63+
* Fix for creation of Gradle files and their indentation
64+
* Fix for handling potentially duplicated file names in Idea projects
65+
* Fix for Idea runtime configuration
66+
67+
== [4.0.x] - (last 4.0.3 - 2022-05-28)
68+
69+
**Rewrite by https://github.com/aartiPl**
70+
71+
Functionality:
72+
73+
* Recursive inclusion of dependant scripts without hardcoded limits
74+
75+
Improved test_suite.sh
76+
77+
* Automatic setting up of test environment (assert.sh, test directories)
78+
* Automatic compilation
79+
* idea - script to help to test idea use cases
80+
* Script setup_environment.sh can be used for local testing
81+
* Some script tests moved to Unit Tests
82+
* Ability to start test suites by name
83+
84+
Improved Unit Tests
85+
86+
* Several new Unit tests
87+
* New Unit Tests can be created much easier (Major point why modularization makes sense)
88+
89+
Improved Logging
90+
91+
* Silent mode / Development mode logging
92+
93+
Modularisation of source code
94+
95+
* Removed duplication
96+
* Code divided in logical pieces and moved to packages
97+
* Script resolution creates immutable objects
98+
99+
Build script
100+
101+
* Updated Gradle to version 7.4.3 and shadowJar to 7.1.2
102+
* Fixes in build file
103+
104+
Performance
105+
106+
* Much less IO operations - that should contribute to better performance
107+
108+
Misc
109+
110+
* Updated Kotlin to 1.5.31, but only for compiler, not kotlin-scripting. It's far from optimal, but it is not possible
111+
to move fully to Kotlin 1.5 or even 1.6, because of the issues with resolution of artifacts in latest
112+
kotlin-scripting. I have put report here: https://youtrack.jetbrains.com/issue/KT-49511
113+
* Fixed a lot of IDE warnings in code
114+
* Packaging - gradle file converted to Kotlin; still does not work, but it was like that before anyway
115+
* Changes for kscript dir allow simple implementation of config file if needed. (.kscript/kscript.config); Not
116+
implemented by me, but might be useful e.g. for storing preambles
117+
118+
INCOMPATIBLE CHANGES:
119+
120+
* In annotations the only allowed delimiter is coma "," (to allow options with arguments, separated by space)
121+
* Resolution of env variables is more restrictive - only vars expected by kscript can be resolved (for security - it's
122+
not good to include arbitrary strings from user env into the script)
123+
* Reworked caching mechanism
124+
125+
== [3.2]
126+
127+
Not released - incorporated in 4.0
128+
129+
Major changes &amp; enhancements
130+
131+
* Improved for relative script inclusions (Thanks to PR by **
132+
aartiPI** https://github.com/holgerbrandl/kscript/pull/330[#330])
133+
* Fixed bootstrap header support (https://github.com/holgerbrandl/kscript/issues/324[#324])
134+
135+
== [3.1]
136+
137+
Major changes &amp; enhancements
138+
139+
* Removed jcenter as default dependency repository
140+
* Updated tests and build integration to function without jcenter
141+
142+
== [3.0]
143+
144+
Major Enhancements
145+
146+
* New dependency resolver based
147+
on https://kotlinlang.org/docs/reference/whatsnew14.html#scripting-and-repl[kotlin-scripting]
148+
* Java11 support (fixes #239)
149+
150+
Minor improvements
151+
152+
* Forward jvm target to –idea generated build.gradle.kts (#258)
153+
* Add maven repo credentials to build.gradle.kts generated by –idea (#262)
154+
* Add option to launch temp intellij as custom command through env property (#264). E.g on ubuntu we could
155+
use `export KSCRIPT_IDEA_COMMAND=/snap/bin/intellij-idea-ultimate` to enable `kscript --idea &lt;script.kts&gt;`
156+
* Fixed idea project symlinks for complex projects (#268)
157+
* Fixed bootstrap script env variable issue (#271)
158+
* Fixed parsing of named arguments in @MavenRepository (fixes #274)
159+
* Added executable docker container to release plan (fixes #224)
160+
* Updated Kotlin to 1.4.10 (#283)
161+
* Updated gradle in temporary projects to 6.7 (#282)
162+
* Add Kotlin run configuration for .kt based scripts. (#284)
163+
* Use absolute paths to avoid issues with relative paths and relativize (#285)
164+
165+
Incompatible API changes
166+
167+
* Pom dependencies must be now declared as `org.javamoney:moneta:pom:1.3` (and no longer
168+
as `org.javamoney:moneta:1.3@pom`)
169+
* Dynamic version dependencies must be now declared as `log4j:log4j:[1.2,)` (and no longer as `log4j:log4j:1.2+`)
170+
171+
== [2.9]
172+
173+
Support environment variables in repository credentials (https://github.com/holgerbrandl/kscript/issues/159[#248])
174+
175+
* Make INCLUDE directive files relative to script dir
176+
* Create a default Run Configuration for Idea (https://github.com/holgerbrandl/kscript/issues/159[#244])
177+
178+
Minor enhancements &amp; fixes:
179+
180+
* Support whitespace around maven repo credentials (fixes https://github.com/holgerbrandl/kscript/issues/159[#228])
181+
* Make INCLUDE directive files relative to script dir
182+
* Fixed support for gitbash
183+
* Fixed bootstrap header (https://github.com/holgerbrandl/kscript/issues/159[#234])
184+
* Improved and documented basic testing support (https://github.com/holgerbrandl/kscript/issues/159[#247])
185+
186+
== [2.8]
187+
188+
Improvements &amp; Fixes
189+
190+
* https://github.com/holgerbrandl/kscript/pull/214[#214] Added credentials support for `@file:MavenRepository`
191+
annotation (thanks to https://github.com/meonlol[@meonlol]
192+
for providing the PR and his patience)
193+
194+
== [2.7]
195+
196+
Improvements &amp; Fixes
197+
198+
* https://github.com/holgerbrandl/kscript/issues/159[#159] Use aether instead of maven to pull dependencies
199+
* https://github.com/holgerbrandl/kscript/issues/210[#210]: Updated gradle capsule plugin
200+
* https://github.com/holgerbrandl/kscript/issues/102[#102]: Removed `--self-update`
201+
* Use resource from repo for resolve boostrap header
202+
* https://github.com/holgerbrandl/kscript/issues/203[#203]: Fix cache check bug on Windows
203+
* https://github.com/holgerbrandl/kscript/issues/199[#199]: Allow to bootstrap kscript installation
204+
with `--add-bootstrap-header`
205+
* https://github.com/holgerbrandl/kscript/issues/200[#200]: Expose script file name to script
206+
207+
== [2.6]
208+
209+
Major Improvements
210+
211+
* https://github.com/holgerbrandl/kscript/issues/166[#166]: Support dynamic versions ending with `+`
212+
* https://github.com/holgerbrandl/kscript/issues/185[#185]: Support "~" in INCLUDE ()
213+
* https://github.com/holgerbrandl/kscript/issues/187[#187]: Added support for shortened URLs
214+
* https://github.com/holgerbrandl/kscript/issues/146[#146]: Allow kscript cache directory to be configurable
215+
via `KSCRIPT_CACHE_DIR` environment variable
216+
* https://github.com/holgerbrandl/kscript/issues/175[#175]: `cygwin` support improvements
217+
* Improved `kshell` launcher to also launch scripts with invalid code
218+
219+
Notable Bug Fixes
220+
221+
* Confusing error when filename starts with a number
222+
* Fixed usage `@file:CompilerOpts` in combination with `@file:Include`
223+
* Renamed `kshell_from_kscript` to `kshell_kts`
224+
225+
== [2.5]
226+
227+
Major Improvements
228+
229+
* Support dependencies with different types (pom instead of jar)
230+
* Use current kotlin for temporary project when using `--idea`
231+
* Started https://github.com/holgerbrandl/kscript/tree/master/misc/kshell_launcher[kshell launcher] for kscriptlets
232+
* Support `--idea` with includes
233+
234+
Minor Enhancements
235+
236+
* Avoid dependency duplications when using `//INCLUDE` recursively
237+
* Fixed: Unable to run script with plus character in filename
238+
* Allow to include same file from multiple files
239+
* Fixed: Space-containing argument propagation
240+
241+
== [2.4]
242+
243+
Major Enhancements:
244+
245+
* Allow to set `kotlinc` compiler flags with `@file:CompilerOpts` or `//COMPILER_OPTS` (#84).
246+
See https://github.com/holgerbrandl/kscript#deploy-scripts-as-standalone-binaries[here].
247+
* Provide a way to _package_ kscripts (#63).
248+
See https://github.com/holgerbrandl/kscript#configure-the-runtime--with-kotlin_opts[here].
249+
250+
Minor Enhancements:
251+
252+
* Fixed #95: `//INCLUDE` requiring full path
253+
* Fixed #94: stdin does not allow further switches
254+
* Allow for round brackets in artifact ids (fixes #100).
255+
* Fixed #83: interactive fails unless your script contains dependencies
256+
* Fixed #82: Sym-linking does not work correctly with –idea and relative script paths
257+
* New: Implemented benchmarking suite to assess runtime impact of `kscript`
258+
* Fixed: Don't use null in classpath arguments if classpath is empty
259+
* Fixed: Use `exec` for derived interpreter
260+
* Simplify Gradle config for script bootstrapping with IDEA (#86)
261+
* Added Gradle wrapper to the project (#87 and #88)
262+
263+
== [2.3]
264+
265+
Major Enhancements:
266+
267+
* Replaced `javac` with `kotlinc` for faster script compilation
268+
* Added symlink support
269+
* Allow to
270+
derive https://github.com/holgerbrandl/kscript/blob/master/docs/user_guide.md#create-interpreters-for-custom-dsls[custom DSL interpreters]
271+
from kscript (fixes https://github.com/holgerbrandl/kscript/issues/67[#67])
272+
* Implemented `@file:Include` and `@EntryPoint`
273+
as https://github.com/holgerbrandl/kscript#annotation-driven-script-configuration[documented] in README (
274+
fixes https://github.com/holgerbrandl/kscript/issues/73[#73])
275+
* Added https://gitter.im/holgerbrandl/kscript?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge[gitter] channel
276+
277+
Minor Enhancements:
278+
279+
* Consolidate imports and dependencies when `//INCLUDE` is used (
280+
fixes https://github.com/holgerbrandl/kscript/pull/75[#75]) …
281+
* Support artifact should have better namespace (fixes https://github.com/holgerbrandl/kscript/issues/57[#57])
282+
* Fixed https://github.com/holgerbrandl/kscript/issues/76[#76]: Unspecific error when dependency resolution fails
283+
* Fixed https://github.com/holgerbrandl/kscript/issues/66[#66]: It should die more gracefully if `idea` is not present
284+
* Fixed https://github.com/holgerbrandl/kscript/issues/81[#81]: Allow package declarations for scripts
285+
* Fixed https://github.com/holgerbrandl/kscript/issues/78[#78]: When using `--idea` the script argument should be
286+
symlinked
287+
* Fixed https://github.com/holgerbrandl/kscript/pull/79[#79]: Provide setup instructions if idea launcher is missing
288+
* Simplified build instructions (fixes https://github.com/holgerbrandl/kscript/issues/60[#60])
289+
* Document dependencies of kscript (fixes https://github.com/holgerbrandl/kscript/issues/69[#69])
290+
291+
== [2.2]
292+
293+
* Logging of maven artifact downloads to stderr (fixes https://github.com/holgerbrandl/kscript/issues/23[#23])
294+
* Added `-s` / `--silent` to suppress all logging
295+
* Fixed https://github.com/holgerbrandl/kscript/issues/55[#55]: dependency resolution fails on travis ci and within
296+
docker containers
297+
* Added alternative `@DependsOnMaven(val artifactId: String)` annotaiton to declare dependencies. This has been
298+
implemented to make kscripts compatible with https://github.com/ligee/kotlin-jupyter
299+
* Added support for custom maven repositories (fixes https://github.com/holgerbrandl/kscript/issues/22[#22])
300+
301+
See link:README.adoc[README] for usage details.
302+
303+
== [2.1]
304+
305+
* support for annotation-driven script configuration
306+
* refactored support api mode into `-t` parameter
307+
308+
== [2.0]
309+
310+
* Reimplemented in kotlin (fixes https://github.com/holgerbrandl/kscript/issues/36[#36])
311+
* Added cygwin support (fixes https://github.com/holgerbrandl/kscript/issues/39[#39])
312+
* Added `//INCLUDE` directive (fixes https://github.com/holgerbrandl/kscript/issues/34[#34]
313+
* Fixed: interactive mode is not correctly started when using stdin as script
314+
argument (https://github.com/holgerbrandl/kscript/issues/40[#40]
315+
* Fixed compatibility with java9 (https://github.com/holgerbrandl/kscript/issues/41[#41])
316+
317+
== [1.5.1]
318+
319+
* Fixed `--self-update`
320+
* More robust self-update on OSses with file-locking (e.g. windows)
321+
322+
== [1.5]
323+
324+
* removed `curl` dependency
325+
* more streamlined dependency lookup
326+
327+
== [1.4]
328+
329+
Major new features
330+
331+
* Redesigned https://github.com/holgerbrandl/kscript-support-api[support library] for streamlined tabular data
332+
processing. See http://holgerbrandl.github.io/kotlin/2017/05/08/kscript_as_awk_substitute.html[here] for an
333+
overview.
334+
335+
== [1.3]
336+
337+
Major new features
338+
339+
* Dramatically reduced overhead by using dependency lookup cache more efficiently. After the initial
340+
scriptlet-jar-building, `kscript` runs with almost *zero overhead* now (
341+
fixes https://github.com/holgerbrandl/kscript/issues/4[#4])
342+
* Dependencies can now declared in multiple lines for better readability (
343+
fixes https://github.com/holgerbrandl/kscript/issues/2[#2])
344+
* Automatic inclusion of support library for one-liners (fixes https://github.com/holgerbrandl/kscript/issues/19[#19])
345+
* Direct script arguments `kscript &#39;println(&quot;hello kotlin&quot;)&#39;` (
346+
fixes https://github.com/holgerbrandl/kscript/issues/18[#18])
347+
* More robust dependency resolution with more informative error messages
348+
349+
Support API improvements
350+
351+
* Kotlin DocOpt helpers to build
352+
CLIs (https://github.com/holgerbrandl/kscript-support-api/blob/master/src/test/kotlin/kscript/test/DocOptTest.kt[example])
353+
* New https://github.com/holgerbrandl/kscript-support-api/blob/master/src/main/kotlin/kscript/StreamUtil.kt[utilities]
354+
to automatically resolve arguments files and stdin to `Sequence&lt;String` for by-line processing
355+
356+
Other changes
357+
358+
* Allow dependencies to be declared in multiple lines prefixed by `//DEPS` (
359+
fixes https://github.com/holgerbrandl/kscript/issues/2[#2])
360+
* To ensure long-term stability of `kscript` we've added a suite of link:test/TestsReadme.md[unit tests]. The repository
361+
tested continuously by https://travis-ci.org/holgerbrandl/kscript[Travis CI]
362+
* Cache directory is now `~/.kscript`
363+
* More heuristics to guess `KOTLIN_HOME`
364+
* Cache cleanup `--clear-cache` now applies to jars, scripts, urls, and cached dependency lookups
365+
366+
== [1.2]
367+
368+
* Fixed compatibility with https://kotlinlang.org/docs/reference/whatsnew11.html[Kotlin v1.1]
369+
(fixes https://github.com/holgerbrandl/kscript/issues/15[#15])
370+
* Added `-i` to dump interactive console command incl deps (
371+
fixes https://github.com/holgerbrandl/kscript/issues/10[#10])
372+
* Compile jars should go to TEMP (fixes https://github.com/holgerbrandl/kscript/issues/13[#13])
373+
* started test-suite
374+
375+
== [1.1]
376+
377+
* Support for stdin and process substitution as script source. See link:examples[examples]
378+
* versioning and auto-update
379+
* basic command-line help
380+
* Added support for `KOTLIN_OPTS` (see https://github.com/holgerbrandl/kscript/issues/8[#8])
381+
* Added CLI help to `resdeps.kts`
382+
* Added option to clear dependency lookup cache: `resdeps.kts --clear-cache`
383+
384+
== [1.0]
385+
386+
Initial Release

0 commit comments

Comments
 (0)