Releases: varabyte/kobweb-cli
v0.9.21
This fix is a tiny patch. It fixes a broken message that provides the wrong instructions after a user finishes an export that was introduced as part of a new feature (it would include the -p arg even when it shouldn't have).
However, in order for users to see a more useful "What's new" section when they visit here, we have copied everything from our earlier release and put it here as well:
What's New?
-
Added ways to help limit live reloading when you don't want it on.
kobweb run --oncewill completely disable the feature for this run.kobweb runand then pressingPwill pause / unpause live reloading.- Code will still compile continuously! But the server will ignore requests to reload the current page. As a user, you can still reload manually.
- Requires your project be using Kobweb v0.23.0 or newer, or otherwise this option won't be available.
-
The CLI will now offer to restart the server if it detects that
conf.yamlhas changed. -
If you run
kobweb export, it now drops you into an interactive menu to choose the proper export layout instead of defaulting to fullstack.- Fullstack vs. static layouts are a feature that bites new users so we hope to make the choice more explicit.
- See also: https://kobweb.varabyte.com/docs/concepts/foundation/exporting#static-layout-vs-full-stack-sites
- Specify the layout explicitly to avoid this, i.e.
--layout staticor--layout fullstack
-
After an export, the suggested "kobweb run" message now includes the
-poption if relevant- For example:
Export finished successfully. You can run 'kobweb run -p site --env prod' to preview your site.
- For example:
-
The deprecated
kobweblayout value has been removed. (This was renamed tofullstacka while back)
Full Changelog (since 0.9.18): v0.9.18...v0.9.21
v0.9.20
This fix is a tiny patch added on top of v0.9.19 (which I just released a couple of hours ago). This update prevents JDK24 users from seeing a warning about Kobweb using a restricted method. While I'm not sure exactly how many users would be impacted by it, this would likely happen to new user who installs Kobweb via a package manager who also doesn't explicitly set JAVA_HOME to an older JDK version (probably a bunch of folks).
However, in order for users to see a more useful "What's new" section than just "tiny patch for JDK24 users", we have copied everything from v0.9.19 and put it here as well:
What's New?
-
Added ways to help limit live reloading when you don't want it on.
kobweb run --oncewill completely disable the feature for this run.kobweb runand then pressingPwill pause / unpause live reloading.- Code will still compile continuously! But the server will ignore requests to reload the current page. As a user, you can still reload manually.
- Requires your project be using Kobweb v0.23.0 or newer, or otherwise this option won't be available.
-
The CLI will now offer to restart the server if it detects that
conf.yamlhas changed. -
If you run
kobweb export, it now drops you into an interactive menu to choose the proper export layout instead of defaulting to fullstack.- Fullstack vs. static layouts are a feature that bites new users so we hope to make the choice more explicit.
- See also: https://kobweb.varabyte.com/docs/concepts/foundation/exporting#static-layout-vs-full-stack-sites
- Specify the layout explicitly to avoid this, i.e.
--layout staticor--layout fullstack
-
After an export, the suggested "kobweb run" message now includes the
-poption if relevant- For example:
Export finished successfully. You can run 'kobweb run -p site --env prod' to preview your site.
- For example:
-
The deprecated
kobweblayout value has been removed. (This was renamed tofullstacka while back)
Full Changelog (since 0.9.18): v0.9.18...v0.9.20
v0.9.19
What's New?
-
Added ways to help limit live reloading when you don't want it on.
kobweb run --oncewill completely disable the feature for this run.kobweb runand then pressingPwill pause / unpause live reloading.- Code will still compile continuously! But the server will ignore requests to reload the current page. As a user, you can still reload manually.
- Requires your project be using Kobweb v0.23.0 or newer, or otherwise this option won't be available.
-
The CLI will now offer to restart the server if it detects that
conf.yamlhas changed. -
If you run
kobweb export, it now drops you into an interactive menu to choose the proper export layout instead of defaulting to fullstack.- Fullstack vs. static layouts are a feature that bites new users so we hope to make the choice more explicit.
- See also: https://kobweb.varabyte.com/docs/concepts/foundation/exporting#static-layout-vs-full-stack-sites
- Specify the layout explicitly to avoid this, i.e.
--layout staticor--layout fullstack
-
After an export, the suggested "kobweb run" message now includes the
-poption if relevant- For example:
Export finished successfully. You can run 'kobweb run -p site --env prod' to preview your site.
- For example:
-
The deprecated
kobweblayout value has been removed. (This was renamed tofullstacka while back)
Full Changelog: v0.9.18...v0.9.19
v0.9.18
This small release adds handling for the new site.basePath configuration property.
Note
Previously, Kobweb used a property called routePrefix, but that name is getting migrated to basePath, after it was discovered that that was the terminology used by most other web frameworks.
Full Changelog: v0.9.17...v0.9.18
v0.9.17
This release contains some nice improvements around detecting and stopping unexpectedly running Kobweb servers.
However, the biggest visible change is color formatted help. For example, if you run kobweb run --help:
Changes
-
Help pages are now formatted with color for easier readability.
-
Made git syncing logic more robust when pulling from repos regardless of how they name their main / master branch.
-
If a running Kobweb server is detected at the start of running
kobweb runorkobweb export, interactive mode will now give the user an opportunity to stop it at that point, instead of just quitting and asking the user to runkobweb stopmanually. -
If a running Kobweb server is detected after trying to quit a
kobweb runearly, it will now be shut down.- Users have reported that a occasionally a Kobweb server gets spun up even after quitting a Kobweb build. This is because, despite the cancellation request going through to Gradle, it doesn't mean that it hadn't yet executed the task that spins up a Kobweb server.
- This issue has likely gotten worse after enabling configuration and build caches, as now this can happen a lot easier actually due to tasks being executed a lot quicker now.
Thanks
- Thanks to @EchoEllet for their support migrating Kobweb over to the latest version of Clikt! This really got the ball rolling on enabling the colored help formatting feature.
Full Changelog: v0.9.16...v0.9.17
v0.9.16
Changes
-
kobweb createwill now make a best-effort match if it can't find an exact match.- For example,
kobweb create todowill put the cursor on theexamples/todoproject.
- For example,
-
Added support for the new
FULLSTACKlayout value.KOBWEB, the legacy value, is still supported, but deprecated.
-
Updated Gradle reporting code to always show errors first, if both errors and warnings are reported during compilation.
-
When running in
--nottymode, now exit with an error code if the relevant Kobweb command fails.-
Users were doing exports in Docker containers that were failing due to OOM errors but they didn't realize it because
kobweb exportwas itself returning a successful exit code. This resulted in users getting a confusing error later about thesitefolder not being found... which, of course it wasn't created -- the export had actually failed!Now users will get a failure message closer to where the error happened, which should make it easier for them to browse the logs to find out what really went wrong.
-
-
Made template parsing logic more robust.
- So the CLI won't crash if it encounters a template it can't parse for any reason.
Full Changelog: v0.9.15...v0.9.16
v0.9.15
This release is nearly identical to v0.9.14 but with a tiny yet critical fix. (You are strongly encouraged to read those release notes instead because they are much more interesting and relevant to you as a user!)
Unfortunately, v0.9.14 hit a very niche issue where the compiler building the code hooked it up to a JDK16 API despite the build scripts set up to target JDK11. You can see this YouTrack issue for more details.
For this release, we actually changed the code to a functionally identical algorithm that avoids using the problematic API, but we also introduced a new process where we have the GitHub CI build the artifacts rather than build them locally. This ensures a sterile, consistent environment for builds where the only JDK available there is JDK11.
v0.9.14
-
We now attempt some recovery behavior if a Kobweb project cannot be found.
- If the user runs
kobweb run,kobweb stop, orkobweb exportin the wrong directory, we now look in nested folders if it's there instead. - This should help new users who run
kobweb runin their root project and not thesitesubfolder, for example. - The search is limited to a depth of 2, so running kobweb in a totally incorrect place shouldn't cause major hanging issues.
- If the user runs
-
kobweb create ...now attempts to find a close match if no exact match is found.- e.g.
kobweb create clockis invalid, because the project is calledexamples/clock. As before, we show the user a list of templates to choose from in this case; but now, the cursor will point to theexamples/clockline automatically so the user just has to press enter.
- e.g.
-
Fixed an issue where externally stopping a Kobweb server would cause kobweb to hang.
- e.g. In terminal 1, run
kobweb run. Once running, in terminal 2, runkobweb stop.
- e.g. In terminal 1, run
-
Yes/no questions now use a simpler
[Yes] Nowidget instead of asking the user to type "Yes" or "No". -
kobweb confnow uses general yaml parsing and not reflection, for a simpler, more future-proof approach.- Plus, reflection is ugly!
- As a bonus, the command now also lists all possible queries if the user doesn't specify any query at all, or if they specify an invalid one.
-
kobweb helpnow works the same askobweb --help
Internal
-
Kobweb Templates now support a
maximumVersionvalue in addition to aminimumVersion.- In the future, this will allow us to fork templates over and add new features to them without breaking older users, who can continue to fetch the older versions in their case.
-
Removed the long deprecated
--modeparameter. Users should be using--nottyinstead. -
Added
notto the list of freemarker methods available in templates.- This will allow us to clean up the empty template considerably after enough time passes that users can upgrade.
-
Added an informative error message instead of crashing if the user's
.kobwebfolder is somehow missing aconf.yamlfile.
Full Changelog: v0.9.13...v0.9.14
v0.9.13
- New
--path/-pparameter which allows you to specify an explicit path to your kobweb app module, instead of requiring you runkobwebin the current working directory.- For example:
kobweb run -p ~/my-kobweb-app/site
- For example:
- This version should have far less egregious repainting / flickering issues in response to window resizing / text filling up with full height of your terminal window.
- The CLI now prints the Gradle command used.
- For example, running
kobweb runresults in:$ gradlew kobwebStart -PkobwebEnv=DEV -PkobwebRunLayout=KOBWEB -t --stacktrace > Task :kotlinNodeJsSetup > Task :kotlinNpmCachesSetup ...
- Most users will never need this, but it can be convenient if you want to create an equivalent run task in your IntelliJ IDE for example.
- For example, running
- New
--gradlearguments for advanced configuration of Gradle.- For example,
kobweb run --gradle quiet --gradle-start --build-cachewould pass the--quietargument to both start and stop phases, but it would only pass the--build-cacheargument to the start phase.
- For example,
- Fixed an issue that could result in not using the Gradle version associated with your project.
Run
kobweb runnow accepts an optional--foregroundvalue (which must be paired with--notty)- If passed in, the CLI program will stay active while the server is running, and you can use CTRL-C to both exit the app and shutdown the server in one keystroke.
- Before, the CLI program would finish running immediately, leaving a kobweb server running in the background until you explicitly ran
kobweb stop kobweb run --notty --foregroundcan be useful when deploying your web server using a remote service, such as one configured with a Dockerfile.
v0.0.1
⚠️ ⚠️ ⚠️ DO NOT USE ⚠️ ⚠️ ⚠️
This release is for internal testing only.
For Kotter CLI devs, the way this release is populated is by doing the following:
- Edit
gradle/libs.versions.toml, set "kobweb-cli" to "0.0.1" - Run
:kobweb:assembleShadowDist - Delete any existing binaries attached to this release
- Upload contents from
kobweb/build/distributionsinto this release.

