ns-scripting
3.0.0 (2026-03-26)
Added
- Support for Git commit signing, integrated with the GPG agent.
- Added automatic initialization for git flow repos.
- Added
expansionSettingsFilefunction toNSExecutionTemplatewhich will set theexpansion.settingsproperty on the expanders-maven-plugin.
Changed
- Replaced the git implementation with jgit wherever possible.
- This might change the SSH agent used by ns-scripting, most likely on Windows, which will result in an issue where the
passphrase of the SSH key is asked for repeatedly, instead of once. If this is the case, changes can be made to
~/.ssh/configto resolve this. More information about SSH in jgit here. - Suggested solution for Windows using Git Bash, add the following to
~/.ssh/config:
Host *
IdentityAgent SSH_AUTH_SOCK - This might change the SSH agent used by ns-scripting, most likely on Windows, which will result in an issue where the
passphrase of the SSH key is asked for repeatedly, instead of once. If this is the case, changes can be made to
2.3.1 (2026-01-07)
Fixed
- Fixed handling order for file annotations.
- Fixed multi-threading issue in script engine.
2.2.1 (2025-12-30)
Fixed
- Language version target for Kotlin was set to 2.0 instead of 2.3.
- Script loader instance was not correctly shared in the application.
2.2.0 (2025-12-30)
Fixed
- Fixed link to Foundation in documentation.
Added
- Added
gitandgit-flowas package dependencies in the debian packages.
Changed
- Updated Kotlin from
2.1.10to2.3.0. - Updated dependencies:
net.democritus.forks:jgitflow:1.6.1 > 1.7.0one.util:streamex:0.8.3 > 0.8.4org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 > 1.9.0
- Moved class
net.democritus.scripting.NSScriptout of the api core library to the engine itself. - Engine now uses K2 compiler.
2.1.0 (2025-06-16)
Fixed
- Fixed links to source code in API reference, which were still pointing to old Bitbucket location.
- Internal errors in the script engine did not result in a clear error message. These will now report the correct message and stack trace for the error.
Added
- [NSS-7] Added new file annotation
RootPath, which can be used to define the strategy used to determine the path of the rootScopeContextobject. This is by default the directory from which the script is executed.
2.0.0 (2025-06-12)
Fixed
- Lookup original path if symbolic link is found for NPM.
Added
- Added
DedicatedScriptScopeinterface. - Added
RootScriptScopeinterface.
Changed
- Debian package now depends on JDK 21 packages primarily with JDK 17 as alternative.
- Debian package now prefers Temurin as JDK dependency.
- Updated Kotlin from
2.1.10to2.1.21.
Removed
- Removed
IllegalFunctionNestingExceptionin favor of using DSL markers. - Removed catch methods for all execution templates that threw
IllegalFunctionNestingException.
1.14.0 (2025-02-05)
Added
- Added declarative activation conditions for script scopes.
- Added support for creating hotfixes with Git Flow.
Changed
- Updated Kotlin from
2.0.0to2.1.10. - When starting a git flow release while on a support branch, the API will now start the release flow from that support branch automatically instead of from the develop branch.
- All git flow executions now verify that the directory contains an initialized git flow repository prior to calling git flow.
1.13.0 (2024-05-22)
Fixed
- Fixed JSON serialization support which broke with the update to Kotlin
1.9.0.
Added
- Added
NpmScopeto provide executions for NPM. - Added
EnvironmentContextcontext to provide information about the execution environment. - Added execution for NPM install.
- Added execution for NPM run.
Changed
- Updated Kotlin from
1.9.23to2.0.0.
1.12.1 (2024-04-09)
Fixed
- If no message is given for a tag, the message parameter will still be added for a tag.
1.12.0 (2024-03-30)
Changed
- Updated copyright notice for API documentation.
- Updated Kotlin from
1.9.0to1.9.23.
1.11.0 (2023-08-09)
Changed
- Updated copyright notice for API documentation.
- Updated Kotlin from
1.8.22to1.9.0.
1.10.1 (2023-06-14)
Fixed
- Ns-scripting no longer packaged in main chocolatey package, only in install package.
1.10.0 (2023-06-13)
Fixed
- (INIT-27) Windows installer would duplicate the path to ns-scripting in the
PATHvariable when installing over an existing installation. It will also remove all duplicates when (un)installing now.
Changed
- Updated Kotlin from
1.7.10to1.8.22. - Updated SLF4J from
1.7.36to2.0.7. - Updated PicoCli from
4.6.3to4.7.4.
1.9.0 (2022-09-27)
Added
- Added support for Kotlin serialization to serialize JSON data.
- Added support for creating releases with Git Flow.
1.8.0 (2022-08-08)
Fixed
- Suppressed irrelevant warning from compiler.
Added
- Added default import for
ScriptScopeinterface.
Changed
- Debian package now also accepts Temurin JDK as dependencies.
- Changed Chocolatey JDK dependency from outdated Oracle JDK to Temurin.
- Updated Kotlin from
1.7.0to1.7.10.
1.6.0 (2022-05-17)
Changed
- Split Chocolatey packages into
ns-scripting.installandns-scripting, the latter of which provides external dependencies. - Switched dependency from
openjdk8tooraclejdkin main Chocolatey package. - Dropped minimum version on
mavendependency in main Chocolatey package.
1.4.1 (2022-05-11)
Fixed
- Script file path in warnings produced by the script engine was incorrect.
- Mapping of diagnostic information inadvertently broke script imports. With this fix, script filenames in API exceptions will only be mapped to the full path if there are no duplicate script filenames.
1.4.0 (2022-05-10)
Fixed
- When a warning and no errors are returned by the script engine, the exit code 1 was returned instead of 0.
Added
- Added EULA for distribution artifacts.
- API to interact with Git.
exit()function alias forkotlin.system.exitProcess().
Changed
- Improved error reporting now prints path to script file and line number for calling site when exception occurs in library functions.
- Exceptions for internal APIs now indicate what API was called in order to have better reporting of the cause of exceptions in libraries.
- API structure refactoring:
- Moved API for NS scope and related executions to
net.democritus.scripting.ns. - Moved API for Maven execution to
net.democritus.scripting.maven. - Moved API for
dir()andexec()executions tonet.democritus.scripting.common. - Moved
ScriptScopeandExecutionTemplateinterfaces tonet.democritus.scripting.
- Moved API for NS scope and related executions to
Removed
- Default import of
kotlin.systempackage.
1.3.0 (2022-05-02)
Added
- Command-line option
--verboseto print stack traces when a JVM error occurs while executing a script. kotlin.systemstandard API is now imported by default in all scripts.- File annotation
MinVersion()was added to the API, which is used to verify that the NSScript engine is at least at the specified version.
Changed
- Default log level printed from script engine is now
WARNinstead ofERROR. - By default stack traces are no longer printed if a JVM exception occurs in a script.
1.1.0 (2022-03-26)
Fixed
- The NSScript process returned code
1reports with a severity lower thanERROR. - The behavior of
ScriptScope.dir(Path)was not consistent withScriptScope.dir(String).
Added
- Extensive KDoc documentation of the API.
- Added support to map
~in the script path to the user's home directory. - Added support to map
~in the theScriptScope.dir()scope function to the user's home directory. -h/--helpargument for the script engine to write command-line help to the console.-V/--versionargument for the script engine to write the version of ns-scripting to the console.
Changed
- Refactored class
net.democritus.scripting.scope.ScopeNestingExceptiontonet.democritus.scripting.IllegalFunctionNestingException. - The constructor of
IllegalFunctionNestingExceptionis no longer accessible in scripts. - Nesting an execution function within an execution template will now throw a
IllegalFunctionNestingException. ExecutionTemplateis now asealed interfaceinstead of asealed classto completely hide the implementation details from scripts.ScriptScopeis now asealed interfaceinstead of asealed classto completely hide the implementation details from scripts.NSScope.expand()andNSScope.harvest()now default topom-expansion.xml,pom-expand.xmlorpom.xmlif found by default if no POM file was specified.- The function
net.democritus.scripting.scope.ScriptScope.env()was refactored tonet.democritus.scripting.env().
1.0.0 (2022-03-21)
- Initial release.