Skip to content

Releases: varabyte/kotter

v1.0.0-rc3

21 Oct 21:34
Compare
Choose a tag to compare
v1.0.0-rc3 Pre-release
Pre-release
  • Code coverage is now above 90% and very healthy
  • Introduced the new link(...) method for adding text links
    • For example: link("https://github.com/varabyte/kotter", "Learn Kotter!")
    • See also: OSC hyperlink support
    • Huge thanks to @cbcmg for their support with this feature! 🙇

With the current level of code coverage and the fact that link was the last feature I was planning on squeezing into 1.0, it's hoped that this 1.0-rc3 release will become 1.0, assuming no bugs or other issues are discovered by users before then. I might also make a pass at reviewing / updating code docs, but if all goes well, no more code changes will need to be made 🤞

v1.0.0-rc2

20 Oct 04:09
Compare
Choose a tag to compare
v1.0.0-rc2 Pre-release
Pre-release
  • Tons of unit tests added, bringing code coverage up to > 70%, and fixing a slew of subtle bugs that were uncovered by them.
  • Added a new viewMap parameter to the input method, which allows you to map characters in your input text before they show up on the screen.
    • For example, the feature allows password fields like so: input(viewMap = { '*' })
  • Created (and published) a kotter-test-support library, as a home for code that I not only use in my own Kotter tests but could be useful to anyone who wants to test their own programs backed by Kotter.

v1.0.0-rc1

08 Oct 22:12
Compare
Choose a tag to compare
v1.0.0-rc1 Pre-release
Pre-release

First 1.0.0 release candidate! 🎉

At this point, all v1.0 milestone bugs have been resolved except for a final code coverage requirement.

This seems like a good time to start advertising we're getting close to a 1.0 release. If no high priority community feature requests or bugs come in, we'll just keep adding more tests over time, and lock things down once code coverage hits a high enough percent.

Now, onto the fixes added in this release:

  • Added new LiveMap and LiveSet classes, in a similar vein to the existing LiveList class.
  • Any exceptions thrown during the run block are no longer silently swallowed but will now crash the calling thread. This makes it so you no longer have programs that might fail silently, and also you can wrap a whole session in a single try/catch block now to handle all possible errors.
  • Fixed a bug where asides in a run block could get lost if their parent section block finished too quickly.
  • Exceptions thrown in a section block no longer prevent internal state from getting cleaned up

In addition to the bug fixes, code coverage was added and is now being tracked. As we've added more and more unit tests for this goal, it has helped surface subtle inefficiencies with extra rendering that have since been fixed.

v0.9.9

16 May 04:10
Compare
Choose a tag to compare
v0.9.9 Pre-release
Pre-release
  • Added ways to query and set input() values outside of onInputChanged / onInputEntered methods.
    • You shouldn't need this in most cases but it's an important escape hatch when available.
  • Created a new VirtualTerminal implementation backed by Compose. It works but is still considered experimental.
    • It is in a separate kotterx.compose module.
    • Unlike the Swing version, you can't simply deploy it effortlessly, but you need to package it differently on Windows, MacOS, and Linux. It may only ever be good for the rare application that intentionally wants to launch ONLY uses a virtual terminal and never using an actual command line.
  • Added a clearTerminal argument that you can set to true when creating a session. Useful if you're making a "full screen" terminal application, such as a game.
  • Added a handful of missing color methods. Thanks @LeafyLappa!
  • Fixed a hard lock that could happen with subtle timing if you pressed ESC very quickly followed by a control key.

v0.9.8

18 Apr 01:27
Compare
Choose a tag to compare
v0.9.8 Pre-release
Pre-release
  • README updated, with animated gifs or at least screenshots for most examples.
  • Fixed a bug with how p worked, which was buggy if you had two p blocks in a row.
  • Fixed a bug where setting addTimer { repeat = false } wasn't actually working behind the scenes
  • Major change to input enabling advanced use-cases:
    • You can now call input() more than once in a render block. However, only one input block can be active at a time, and each input block must have a different ID.
    • Added onInputActivated and onInputDeactivated callbacks for intercepting focus change events.
    • Updated the input example to demonstrate this new behavior.
    • Simple code written as described in the README should still work.

v0.9.7

14 Apr 22:59
Compare
Choose a tag to compare
v0.9.7 Pre-release
Pre-release

Misc bug fixes / minor feature additions.

  • Fixed a bug with border rendering caused by setting both left/right AND top/bottom padding
  • Fixed an occasional crash that could be caused due to a threading issue around how the ESC key was handled
  • Added a try/catch around code that calls into user space and previously could break system assumptions from within if it threw an exception
  • Added the ability to call clearInput in onInputEntered, ensuring the input() field would be empty on the next render pass.

v0.9.6

06 Jan 19:44
Compare
Choose a tag to compare
v0.9.6 Pre-release
Pre-release

Patch fix.

  • BREAKING CHANGE animOf is now textAnimOf (and Anim is now TextAnim)
  • Introduce renderAnimOf and RenderAnim
  • Update Kotlin compilation version (which doesn't affect the end user but eliminates warnings when compiling Kotter)

v0.9.5

03 Jan 08:12
Compare
Choose a tag to compare
v0.9.5 Pre-release
Pre-release

Patch fix.

  • BREAKING CHANGE RunScope is now a top-level class.
    • Change imports of Section.RunScope to just RunScope
    • Made this change for API consistency with RenderScope
  • Added hasNextLine to the offscreen buffer renderer class.
  • Fixed a crash when ConcurrentScopedData value initialization register dependent values as part of its logic.
  • Added a new sliding tile sample.
  • Added a new "extend Kotter" sample.
  • Added a bunch of information to the README about extending Kotter.

v0.9.4

29 Dec 00:42
Compare
Choose a tag to compare
v0.9.4 Pre-release
Pre-release

Patch fix.

This release was focused on some input(...) improvements.

Major changes since last release include:

  • Fixed a bug with p { ... } adding an extra leading newline in some cases
  • Lifecycles can now be linked hierarchically, so that you can group some keys together as a subset of a greater lifecycle
    • Use the new lifecycle hierarchy feature to clean up input() code
  • Add initialText to input(...) which can be used to set, um, initial text (shocking, I know), when input is called for the first time.
  • Add id to input(...), which can be used if you have multiple input(...) blocks in a single section and want to make sure text is reset when bouncing between them
  • Release resources allocated by input(...) are now released if input(...) is not called on a subsequent render.

v0.9.3

28 Dec 02:30
Compare
Choose a tag to compare
v0.9.3 Pre-release
Pre-release

Patch fix. Major changes since last release include:

  • New offscreen and bordered blocks
    • You can now "render" commands offscreen so you can query results for width / height before actually rendering them
    • This allows you to make smart layout decisions, e.g. wrap your text with a border, or center text, etc.
    • New sample: "Border" to showcase bordered
  • Added a parameter for setting max num lines on the virtual terminal
  • Added support for clicking on URLs inside the virtual terminal