|
| 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 -> KSCRIPT_PREAMBLE |
| 40 | + KSCRIPT_IDEA_COMMAND -> KSCRIPT_COMMAND_IDEA |
| 41 | + KSCRIPT_GRADLE_COMMAND -> 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 -> @Repository |
| 55 | +** @KotlinOpts -> @KotlinOptions |
| 56 | +** @CompilerOpts -> @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 & 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 & 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 <script.kts>` |
| 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 & 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 & 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 & 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 'println("hello kotlin")'` ( |
| 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<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