Improvements & Fixes
- #159 Use aether instead of maven to pull dependencies
- #210: Updated gradle capsule plugin
- #102: Removed
--self-update
- Use resource from repo for resolve boostrap header
- #203: Fix cache check bug on Windows
- #199: Allow to bootstrap kscript installation with
--add-bootstrap-header
- #200: Expose script file name to script
Major Improvements
- #166: Support dynamic versions ending with
+
- #185: Support "~" in INCLUDE ()
- #187: Added support for shortened URLs
- #146: Allow kscript cache directory to be configurable via
KSCRIPT_CACHE_DIR
environment variable - #175:
cygwin
support improvements - Improved
kshell
launcher to also launch scripts with invalid code
Notable Bug Fixes
- Confusing error when filename starts with a number
- Fixed usage
@file:CompilerOpts
in combination with@file:Include
- Renamed
kshell_from_kscript
tokshell_kts
Major Improvements
- Support dependencies with different types (pom instead of jar)
- Use current kotlin for temporary project when using
--idea
- Started kshell launcher for kscriptlets
- Support
--idea
with includes
Minor Enhancements
- Avoid dependency duplications when using
//INCLUDE
recursively - Fixed: Unable to run script with plus character in filename
- Allow to include same file from multiple files
- Fixed: Space-containing argument propagation
Major Enhancements:
- Allow to set
kotlinc
compiler flags with@file:CompilerOpts
or//COMPILER_OPTS
(#84). See here. - Provide a way to package kscripts (#63). See here.
Minor Enhancements:
- Fixed #95:
//INCLUDE
requiring full path - Fixed #94: stdin does not allow further switches
- Allow for round brackets in artifact ids (fixes #100).
- Fixed #83: interactive fails unless your script contains dependencies
- Fixed #82: Sym-linking does not work correctly with --idea and relative script paths
- New: Implemented benchmarking suite to assess runtime impact of
kscript
- Fixed: Don't use null in classpath arguments if classpath is empty
- Fixed: Use
exec
for derived interpreter - Simplify Gradle config for script bootstrapping with IDEA (#86)
- Added Gradle wrapper to the project (#87 and #88)
Major Enhancements:
- Replaced
javac
withkotlinc
for faster script compilation - Added symlink support
- Allow to derive custom DSL interpreters from kscript (fixes #67)
- Implemented
@file:Include
and@EntryPoint
as documented in README (fixes #73) - Added gitter channel
Minor Enhancements:
- Consolidate imports and dependencies when
//INCLUDE
is used (fixes #75) … - Support artifact should have better namespace (fixes #57)
- Fixed #76: Unspecific error when dependency resolution fails
- Fixed #66: It should die more gracefully if
idea
is not present - Fixed #81: Allow package declarations for scripts
- Fixed #78: When using
--idea
the script argument should be symlinked - Fixed #79: Provide setup instructions if idea launcher is missing
- Simplified build instructions (fixes #60)
- Document dependencies of kscript (fixes #69)
- Logging of maven artifact downloads to stderr (fixes #23)
- Added
-s
/--silent
to suppress all logging - Fixed #55: dependency resolution fails on travis ci and within docker containers
- Added alternative
@DependsOnMaven(val artifactId: String)
annotaiton to declare dependencies. This has been implemented to make kscripts compatible with https://github.com/ligee/kotlin-jupyter - Added support for custom maven repositories (fixes #22)
See README.md for usage details.
- support for annotation-driven script configuration
- refactored support api mode into
-t
parameter
- Reimplemented in kotlin (fixes #36)
- Added cygwin support (fixes #39)
- Added
//INCLUDE
directive (fixes #34 - Fixed: interactive mode is not correctly started when using stdin as script argument (#40
- Fixed compatibility with java9 (#41)
- Fixed
--self-update
- More robust self-update on OSses with file-locking (e.g. windows)
- removed
curl
dependency - more streamlined dependency lookup
Major new features
- Redesigned support library for streamlined tabular data processing. See here for an overview.
Major new features
- Dramatically reduced overhead by using dependency lookup cache more efficiently. After the initial scriptlet-jar-building,
kscript
runs with almost zero overhead now (fixes #4) - Dependencies can now declared in multiple lines for better readability (fixes #2)
- Automatic inclusion of support library for one-liners (fixes #19)
- Direct script arguments
kscript 'println("hello kotlin")'
(fixes #18) - More robust dependency resolution with more informative error messages
Support API improvements
- Kotlin DocOpt helpers to build CLIs (example)
- New utilities to automatically resolve arguments files and stdin to
Sequence<String
for by-line processing
Other changes
- Allow dependencies to be declared in multiple lines prefixed by
//DEPS
(fixes #2) - To ensure long-term stability of
kscript
we've added a suite of unit tests. The repository tested continuously by Travis CI - Cache directory is now
~/.kscript
- More heuristics to guess
KOTLIN_HOME
- Cache cleanup
--clear-cache
now applies to jars, scripts, urls, and cached dependency lookups
- Fixed compatibility with Kotlin v1.1 (fixes #15)
- Added
-i
to dump interactive console command incl deps (fixes #10) - Compile jars should go to TEMP (fixes #13)
- started test-suite
- Support for stdin and process substitution as script source. See examples
- versioning and auto-update
- basic command-line help
- Added support for
KOTLIN_OPTS
(see #8) - Added CLI help to
resdeps.kts
- Added option to clear dependency lookup cache:
resdeps.kts --clear-cache
Initial Release