Releases: thevpc/nuts
Nuts Package Manager v0.8.8.0
Nuts Package Manager v0.8.8.0 Latest
- 2025-10-17 : FIXED fixed links (from thevpc.github.com to thevpc.github.io)
- 2025-10-17 : ADDED added google analytics to website
- 2025-10-17 : ADDED added compatibility matrix report in documentation
- 2025-10-17 : FIXED fixed NMemorySize issue (throws exception on creation)
- 2025-10-16 : FIXED removed some old source comments
- 2025-10-15 : ADDED add more javadoc
- 2025-10-14 : FIXED removed trailing System.out calls
- 2025-10-13 : FIXED fixed isLong calls
- 2025-10-13 : FIXED fixed isXYZ impls in NArg
- 2025-10-13 : CHANGED added "--sandbox --yes" by default to spring apps
- 2025-10-08 : ADDED NBulkheadCall to handle calls limited by concurrent count
- 2025-10-08 : REMOVED getBeanContainer() && withBeanContainer(NBeanContainer container) in concurrent classes
- 2025-10-08 : ADDED NDuration.parse(String) to parse user durations
- 2025-11-07 : Today we started new nuts 0.8.8 version
Nuts Package Manager v0.8.7.0
- FIXED Fixed NDuration issue
- CHANGED Now prefer NDuration over Duration in all API
- CHANGED Rewritten install|require workflow to be faster and more robust
- FIXED Fixed issue with plain maven repos
- CHANGED Less boilerplate in progress (do not show url, too long)
- CHANGED NElement destructible now can have multiple filters
- CHANGED Removed dependency on awt, and replace all refs with NColor (renamed from NNamedColor)
- ADDED Revamped documentation
- CHANGED Global refactoring to adjust class packages
- ADDED NScoredCallable a clean way to implement score based call strategy (renamed from NSupport)
- ADDED NSagaCall to support Saga DesignPattern implementation with loops, and conditions enabled
- ADDED NCircuitBreakerCall to support CircuitBreaker DesignPattern
- ADDED NRetryCall to support RetryCall DesignPattern (along with NStableValue, NCachedValue, NRateLimitValue and NLock (for DB and File Locking))
Nuts Package Manager v0.8.6.0
- 2025-09-14 added NCachedValue/NStableValue to handle stable and cached values (will be promoted to java's StableValue)
- 2025-09-08 added NScopedValue/NScopedStack to handle scoped values (based on ThreadLocal but will be promoted to java's ScopedValues)
- 2025-09-05 Added better handling for Text Tables
- 2025-09-05 Added better handling for Text Trees
- 2025-09-02 Added handling for TextArt (Banners using figlets and more)
- 2025-08-30 added Scoped Logging
- 2025-08-27 rewritten Logging API to support backends (JUL and SLF4J)
- 2025-07-28 enhance NComplex operations and mark as comparable
- 2025-07-28 enhance NElement operations
- 2025-07-28 NMsg.ofV now retains variable layout
- 2025-07-27 introduce NElementTransform
- 2025-07-27 introduce NElement::snippet
- 2025-07-26 Enhance NOperator operations
- 2025-07-26 introduce NOperatorGroup
- 2025-07-10 added NPath::resolveSiblingWithExtension, NPathNameParts::toNameWithExtension
- 2025-07-06 NArg now has getCmdLine() that returns the CmdLine when processed by NCmdLine. It returns null, if not.
- 2025-07-01 added NColor ANSI Color constants and mappings
- 2025-07-01 support for color names in ntf in tge form of ##:red:something## and
red something - 2025-06-25 added Nuts.require() to help creating an in-memory workspace if none is provided
- 2025-06-25 from now NMsg.ofC/ofV/ofJ support ntf (instead of plain)
- 2025-06-25 Added NIn a general purpose Input Utility (like NOut/NErr/NTrace)
- 2025-06-24 Added --reset-options
- 2025-06-24 Added Nuts.require()
- 2025-06-24 Implemented N?Complex parsing
- 2025-06-24 Added intValue/longValue... in NArg
- 2025-06-24 STARTED
Nuts Package Manager v0.8.5.0
This is a new refactored version with focus on library usability:
Main features:
- TSON support out of the box
- NSession & NWorkspace context (no more passed as parameters
- Enhanced boot wit a new project nuts-boot
Other features include : - ADDED: added NSession::isLogTermLevel, NSession::isVerboseTerm and equivalent for file log as well
- FIXED: fixed ANSI support for resetLine in Swing Terminal Panel
- ADDED: boot option (--boot-repository) to help considering this repo only to create the workspace (at create time)
- ADDED: NRepository::isTemporary
- ADDED: NPath::writeObject|NPath::writeMsg|NPath::writeText to handle efficient file writing (and or appending)
- ADDED: better support in NRef for primitive type ( NIntRef has an inc method for instance)
- ADDED: better added support for --@filepath format in commandline to embed files ars arguments
- ADDED: better support of windows in nserver
- ADDED: added support for ps and kill on windows, linux and macos
- ADDED: added support of dependency resolution regardless of current OS environment (needed for bundles creation)
- ADDED: added foundations for I18n
- ADDED: added new runtime repository that supports (for now) netbeans and tomcat
- ADDED: added simple Levenstein implementation to detect typos of boot commandline arguments and provide meaningful suggestions
- ADDED: added rememberMe key in NAsk to help remembering user's input to avoid asking the same questions multiple times in same session.
- ADDED: added simple templating (NTemplate) in NExpr to help manage text templating with simple expressions
- ADDED: added new tool
ndocandnsite-lib(the related library) to generate statically html websites... - FIXED: enhanced NExprs toolkit to support complex expressions, and is now default for ndoc
- DEPRECATED: deprecated for removal nclown (was really never used)
- DEPRECATED: deprecated for removal old docusaurus website and replace with one new based on ndoc (a tool by nuts!!)
- REMOVED: removed NFetch::isDependencies, NFetch::isEffective, NSearch::isDependencies, NSearch::isEffective (now information is loaded in lazy mode)
- CHANGED: When generating preview jar, it will support natively thevpc.net
- ADDED: added option --preview-repo | -U to help simplifying preview mode installation.
- CHANGED: nuts-app now depends only on nuts-boot
- CHANGED: extracted nuts boot that does only load runtime all within its API. This will make simpler api upgrades
- CHANGED: nuts is exploded into nuts-boot (minimal bootstrap app), nuts (api library), nuts-lib (common library), two applications : nuts-app (minimal) and nuts-app-full (including runtime)
- WARNING: The OSS License has changed from APACHE2 to LGPL3
- REMOVED: cleanup and removal of javax.security (and all SecurityManager staff) as It's marked for removal for JDK 24
- CHANGED: simplified NPathSPI interface to help simpler implementation of, let's say, in-memory files for instance
- FIXED: fixed NStringBuilder::lines()
- CHANGED: enhanced and simplified NProgressMonitor API
- ADDED: added support for TSON
- CHANGED: introduced NAppRunOptions to help customize application behaviour when running NApplication (exit on termination, throw error when found, handle error and only show a short message,etc)
- ADDED: added NPath::ensureEmptyDirectory, NPath::ensureEmptyFile to help delete file/folder content is a clean manner
- ADDED: Now you can customize NOptional Message with NOptional::withMessage
- FIXED: fixed several issues related to utility methods that generate NException whereas the workspace is not yet created
- CHANGED: for now on, nuts jar will include information about if it supports automatically preview features. You still can disable them using repo filters.
- CHANGED: refactored nuts to separate nuts-boot, nuts-api (nuts), nus-lib and nuts-runtime
Nuts Package Manager v0.8.3.1
This is a bug fixing release that ensures a set of applications are supported by nuts, such as jedit, mucommander etc...
What's Changed
- Readme by @SelimSkhiri in #145
- Bump shelljs from 0.8.3 to 0.8.5 in /web-toolbox/nclown by @dependabot in #146
- Bump trim-off-newlines from 1.0.1 to 1.0.3 in /web-toolbox/nclown by @dependabot in #147
New Contributors
- @SelimSkhiri made their first contribution in #145
Full Changelog: v0.8.3...v0.8.3.1
- UPDATED : move support to reporisoties "nuts-public" and "nuts-preview"
- FIXED : Updated README
- FIXED : {runtime} Fixed problem with dependency resolution whit maven's "import" scope
- ROLLBACK : Rolled back test on maven-local
- FIXED : Fixed nuts api without changing the version and without breaking the API, changes will be promoted to next version later thevpc 46 minutes ago
- UPDATED : Updated NEXT API CHANGES
- UPDATED : Updated .gitignore
- FIXED : Fixed Help files
- FIXED : Changed
$* by $ @ - FIXED : Fixed NAF support in ncode
- UPDATED : Updated TEST
- FIXED : Fixed display of URL paths
- PERF : Optimize Maven Dependency Resolver
- FIXED : Fix reinstall so that it calls uninstaller component
- FIXED : Fix recommendation connector API
- FIXED : Fix Class Name resolution when using CGLIB
- FIXED : Call clearLine before Progress
- FIXED : Call resetLine before Log
Nuts Package Manager v0.8.3.0
We are thrilled to announce v0.8.3 release of #nuts, the open source #java package manager intended to be #devops friendly.
This is a major version in Nuts Package Manager as it revisits all of it API's and provided a more solid foundation for multiple platforms including Windows Operating System.
Look at this location (at github repo) for a small intro
/documentation/presentations/2021-a/nuts-presentation-2021-a.pdf
Features / Changes
- WARNING : {api} API has evolved with incompatibilities with previous versions
- ADDED : {runtime} now search --dry displays the search query plan
- ADDED : {api} added command "settings install-log" to display installation logs
- ADDED : {api} added NutsExpr to help parsing simple expressions (used or will be used in almost all commands)
- CHANGED : {api} Simplified API
- ADDED : {api} added NutsDescriptorFlag to match multiple descriptor info such as app, executable etc.
- ADDED : {api} added NutsIOCopyAction.setSource(byte[]) and NutsIOHashAction.setSource(byte[])
- ADDED : {api} removed NutsId.compatFilter and NutsVersion.compatFilter and replaced by compatNewer/compatOlder
- ADDED : {api} replaced string messages with NutsMessage in NutsLogger
- ADDED : {api} removed 'NutsInput' and 'NutsOutput'
- ADDED : {api} removed 'NutsCommandlineFamily' and replaced by 'NutsShellFamily'
- ADDED : {api} added 'NutsBootTerminal' to help nuts bootstrap using custom stdin/out end err
- CHANGED : {api} added 'NutsHomeLocation' to replace compound key NutsOSFamily and NutsStoreLocation
- ADDED : {api} added 'NutsPath.isDirectory' and 'NutsPath.isRegularFile'
- CHANGED : {api} removed commandline options '-C' and '--no-color', you can use '--!color' instead
- CHANGED : {api} removed commandline options '--no-switch' and '--no-progress', you can use '--!switch' and '--!progress' instead
- CHANGED : {api} NutsResultList renamed to NutsStream and revamped with handy stream features and added ws.util.streamOf(...)
- CHANGED : {api} ws.io.expandPath replaced by NutsPath.builder.setExpanded(true)
- REMOVED : {api} removed deprecated ClassifierMapping
- REMOVED : {api} removed NutsTokenFilter (little to no interest)
- REMOVED : {api} removed deprecated feature inheritedLog
- ADDED : {api} NutsVal, a simple wrapper for strings and objects with helpful converters used in args, env, options and properties.
- CHANGED : {api} changed descriptor to add maven profiles support, mainly added platform for dependency and added os/platform etc to property
- ADDED : {api} added NutsShellFamily to support bash, csh, and other shell families
- ADDED : {pom } add Manifest Entry 'Automatic-Module-Name' in all projects to support j9+ module technology
- FIXED : {impl} NutsFormat now creates any missing parent folder when calling print(Path/File) or println(Path/File)
What's Changed
- [FIX] Fix Nuts installation in different shells by @bacali95 in #34
- test by @amine-sakka in #33
- Add OS shell to
nuts infooutput by @bacali95 in #60 - [FIXED] Question asked without display #62 by @thevpc in #83
- [FIXED] Prepare for Better Gradle Integration #86 by @thevpc in #87
- [FIXED] "ls -l --table format" #66 by @thevpc in #88
- [FIXED] minimal archetype fails to create workspace (closing #84) by @thevpc in #90
- [FIXED] cat file with syntax coloring (closing #85) by @thevpc in #92
- Throw an error when passing no packages ids to
nuts uninstallby @bacali95 in #95 - Uncomment throwing exception when updating a non installed package by @bacali95 in #96
- Use double quotes instead of simple ones for arguments escaping in Shell by @bacali95 in #97
- Fix
nuts execthrowing NullPointerException by @bacali95 in #100 - Fix license command
--jsonand--xmlarguments usage by @bacali95 in #99 - Add user confirmation before uninstalling by @bacali95 in #101
- Fix
execandwhichbehaviour when the command is unknown by @bacali95 in #102 - Fix all commands help argument and reformat help texts by @bacali95 in #94
- Refactor simplify api by @thevpc in #106
- Fix JSON and XML output formatting for
check-updatescommand by @bacali95 in #104 - Bump jszip from 3.1.5 to 3.7.1 in /toolbox/nclown by @dependabot in #110
- Bump path-parse from 1.0.5 to 1.0.7 in /toolbox/nclown by @dependabot in #109
- Bump url-parse from 1.4.4 to 1.5.3 in /toolbox/nclown by @dependabot in #108
- Bump url-parse from 1.4.7 to 1.5.3 in /website by @dependabot in #124
- Bump path-parse from 1.0.6 to 1.0.7 in /website by @dependabot in #123
- Bump algoliasearch-helper from 3.2.2 to 3.6.2 in /website by @dependabot in #122
- Bump prismjs from 1.21.0 to 1.25.0 in /website by @dependabot in #121
New Contributors
- @bacali95 made their first contribution in #34
- @amine-sakka made their first contribution in #33
- @thevpc made their first contribution in #83
- @dependabot made their first contribution in #110
Full Changelog: v0.8.2.1...v0.8.3
v0.8.3-beta-2021-10-13
This Tag reflects beta version published to http://thevpc.net/nuts stream.
date : 2021-10-13
status : BETA
api version : 0.8.3
rt version : 0.8.3.0
api digest : A2A9D1C670572244D31EF5FEC206BB34
rt digest : 109D9F2FA9882C5DEC49AEE774605813
CHANGE -LOG (0.8.3 versus 0.8.2):
- WARNING : {api} API has evolved with incompatibilities with previous versions
- ADDED : {api} added NutsIOCopyAction.setSource(byte[]) and NutsIOHashAction.setSource(byte[])
- ADDED : {api} removed NutsId.compatFilter and NutsVersion.compatFilter and replaced by compatNewer/compatOlder
- ADDED : {api} replaced string messages with NutsMessage in NutsLogger
- ADDED : {api} removed 'NutsInput' and 'NutsOutput'
- ADDED : {api} removed 'NutsCommandlineFamily' and replaced by 'NutsShellFamily'
- ADDED : {api} added 'NutsBootTerminal' to help nuts bootstrap using custom stdin/out end err
- CHANGED : {api} added 'NutsHomeLocation' to replace compound key NutsOSFamily and NutsStoreLocation
- ADDED : {api} added 'NutsPath.isDirectory' and 'NutsPath.isRegularFile'
- CHANGED : {api} removed commandline options '-C' and '--no-color', you can use '--!color' instead
- CHANGED : {api} removed commandline options '--no-switch' and '--no-progress', you can use '--!switch' and '--!progress' instead
- CHANGED : {api} NutsResultList renamed to NutsStream and revamped with handy stream features and added ws.util.streamOf(...)
- CHANGED : {api} ws.io.expandPath replaced by NutsPath.builder.setExpanded(true)
- REMOVED : {api} removed deprecated ClassifierMapping
- REMOVED : {api} removed NutsTokenFilter (little to no interest)
- REMOVED : {api} removed deprecated feature inheritedLog
- ADDED : {api} NutsVal, a simple wrapper for strings and objects with helpful converters used in args, env, options and properties.
- CHANGED : {api} changed descriptor to add maven profiles support, mainly added platform for dependency and added os/platform etc to property
- ADDED : {api} added NutsShellFamily to support bash, csh, and other shell families
- ADDED : {pom } add Manifest Entry 'Automatic-Module-Name' in all projects to support j9+ module technology
- FIXED : {impl} NutsFormat now creates any missing parent folder when calling print(Path/File) or println(Path/File)
You can install this version as follows:
java -jar nuts.jar -r dev -w beta --switch -ZyS
Note that this will reset the beta workspace (hence will erase any existing beta version) and will switch/promote this version to system globals (nuts command in shell will point to this version). If this is not the intended behaviour please read documentation to adjust the appropriate command line options.
v0.8.2.1
v0.8.1
This is a Major version that introduces multiple changes :
- ADDED: {api} added static methods of() in interfaces to simplify instantiation
- ADDED: {api} parseLenient to all NutsEnum classes
- CHANGED: {nadmin} removed nadmin and merged into runtime (tight coupling!!)
- REMOVED: {api} removed session.formatObject() as the session is now propagated silently
- CHANGED: {api} removed NutsApplicationLifeCycle and replaced with NutsApplication (an interface instead of a class)
- ADDED : {api} added support for parsing pom.xml (MAVEN) along with *.nuts (nuts descriptors)
- ADDED : {api} added io killProcess support
- CHANGED: {api} added path API, implemented via nlib-ssh to add ssh support for paths
- CHANGED: {all} remove dependencies, runtime has no dependencies, and others have the bare minimum
- CHANGED: {api} session is from now on mandatory to perform any operation. A simple way to make it simple to use is to get a "session aware" workspace with session.getWorkspace()
- ADDED : {api} added support for Yaml with minimal implementation
- ADDED : {api} element now supports complex keys in Map Entries (Objects)
- ADDED : {api}{cmdline} added support for History and implemented in JLine extension
- ADDED : {api}{cmdline} added support for readline syntax coloring (using jline)
- ADDED : {api}{cmdline} added --locale option to support multi languages. The option is reflected to Session as well
- ADDED : {api}{cmdline} added ---key=value options to support extra properties
- ADDED : {api}{cmdline} added -S short option, equivalent to --standalone
- ADDED : {api}{cmdline} added NutsFormattedMessage to support formatted messages in a uniform manner (C-style, {} positional)
- CHANGED: {api}{cmdline} both list and tree dependencies are now accessible as NutsDependencies
- ADDED : {runtime} added support to community maven repositories : jcenter, jboss, spring, clojars, atlassian, atlassian-snapshot, google, oracle
to use the repository you can add it as a permanent repository or temporary. here are some examples:- nuts nadmin add repository jcenter // add permanently the repository
- nuts -r jcenter my-command // use temporarily the repository top run my-command
- FIXED : {runtime} extension support (for JLine)
- ADDED : {runtime} added minimal implementation for YAM
- ADDED : {runtime} added fast implementation for JSON and removed gson dependency
- CHANGED: {runtime} revamped Nuts Text Format to support simplified syntax but more verbose styles.
Now supports #), ##), ###) and so on as Title Nodes.
It supports as well the common markdown 'code' format with anti-quotes such as
java code goes here...
Other supported examples are:
sh some command...
error error message...
kw someKeyword - CHANGED: {runtime} help files now have extensions ".ntf" (for nuts text format) instead of ".help"
- ADDED : {njob} added --help sub-command
- FIXED : {nsh} fixed multiple inconsistencies and implemented a brand new parser
- REMOVED: {docusaurus-to-ascidoctor} tool fully removed as replaced by a more mature ndocusaurus
- REMOVED: {ndi}, removed project, merged into nadmin
- REMOVED: {nded}, removed project, temporarily code added to nadmin, needs to be refactored
- ADDED : {ntalk-agent} new modules nlib-talk-agent (library) and ntalk-agent (application using the library) that enable client to client communication.
nlib-talk-agent is a broker that helps communication between nuts components with minimum overhead.
nlib-talk-agent enables one workspace to talk with any other workspace without having to create one server socket for each workspace.
It also enables singleton per location implementation