Back to Isle project page

Release v0.0.3 (Alpha)

⚠️ ALPHA RELEASE ⚠️ All 0.0.x releases are considered alpha. Future 0.0.x releases will likely contain backwards incompatible changes which may require resetting your network. Expect bugs and missing features.

This is an exciting release! There are a handful of major changes, and of course a lot of things on the underside of Isle have been rewritten and improved.

This release is backwards compatible with v0.0.2; you can safely upgrade without any migration steps or downtime.

Downloads

Isle is still Linux-only as of this release. Sorry!

SHA256s

SHA256s GPG signature

64-bit Intel/AMD:

x86_64 (AppImage)

x86_64 (Pacman)

x86_64 (Debian)

64-bit ARM:

aarch64 (AppImage)

aarch64 (Pacman)

aarch64 (Debian)

For Raspberry Pi (2 and older) and other 32-bit ARM devices:

armv6l (Pacman)

armv6l (Debian)

32-bit Intel/AMD (untested):

i686 (AppImage)

i686 (Pacman)

i686 (Debian)

Release Notes

All documentation related to the following changes has been updated accordingly in the Isle repo.

Isle development repo

Allow Joining Multiple Networks

This is the major improvement around which this release revolves. It is now possible to join multiple networks on the same host. Each network is managed independently of the others by the Isle daemon, such that no resources are ever shared between them. Implementing this required significant refactoring of how sub-processes are managed, as well as how networks are configured and how the configuration is propagated to them.

CLI-Based Network Configuration

Previously it was required to use the `daemon.yml` file to configure resources like the VPN public address and storage allocations on a host. It is now possible to configure these on the command-line instead. The user can decide if they wish to use the configuration file or the command-line on a network-by-network basis.

With this change in place it is now possible to implement a GUI on top of Isle, where this wasn't previously worthwhile. If the configuration file was the only way to make changes the GUI wouldn't be able to do much except view the current configuration. Now it will be able to also make changes, removing the need for the user to make any actions outside the GUI at all.

New Testing Framework (Again!)

The previous testing framework based on shell scripts wasn't cutting it. The new framework is based out of Go's normal testing framework, which brings to the table niceities like parallel tests, better logging management, and improving iteration time by removing the need to recompile the AppImage for every run.

The motivation for a new testing framework came primarily while implement the CLI-based network configuration feature described above. This feature required significant refactors and new code around checking for configuration changes and propagating them to sub-processes in a sane way. These changes were quite tricky, and it was necessary to add far more testing than was previously implemented. At this point there is very little of Isle which is not covered by tests.

Testing is one of those things that has a high up-front cost but pays dividends down the road. A strong testing foundation eventually speeds up the development of new features by giving the developer a more convenient way to set up scenarios and inspect the behavior of the feature in them. And as more functionality is developed the tests will help give confidence that changes aren't breaking existing functionality. So while user-facing features are always the highlight of a release, this is the part of this release I am personally most excited about.

Other Minor Improvements

Bug Fixes