# Kea Migration Assistant 4.5.0 Release Notes, September 20, 2023

Welcome to Kea Migration Assistant (KeaMA) 4.5.0, the first stand-alone 
release. Earlier releases were part of the ISC DHCP suite, but since ISC 
DHCP reached its End-of-Life in December 2022, KeaMA is the only 
component that is still maintained. It has been moved to its own project.

ISC DHCP is software that has been around for well over two decades, but 
has now reached End-Of-Life. Kea, a newer DHCP server from ISC, is a 
spiritual successor. ISC has developed the KeaMA tool to help users 
migrate from the legacy ISC DHCP server to the Kea DHCP server. This 
tool analyzes a valid ISC DHCP server configuration file and provides an 
equivalent configuration file for a Kea DHCP server. The resulting file 
is a starting point for your Kea configuration, but it will probably 
require editing before use. 

The text below references issue numbers. For more details, visit the Kea 
GitLab page at https://gitlab.isc.org/isc-projects/keama/-/issues.

The following bugfixes and features have been implemented since the 
previous release, version 4.4.3:

1. **Web interface**: KeaMA now features an optional web interface. This 
might be a convenient option for users who want to try it, but who do 
not wish to install additional software [#13, #21, #17, #14, #26, #29, 
#31, #33, #34, #30].

2. **Bug fixes**: A potential infinite loop was fixed [#7].

3. **Verbose responses**: KeaMA now prints information about the input 
and output files being read, subnets, shared networks, and host 
reservations. Some debug messages are printed to standard error; this 
might be useful to debug problems if KeaMA goes into an infinite loop 
[#14].

4. **Docker files**: Docker files are now available at 
https://gitlab.isc.org/isc-projects/keama-docker, adding yet another way 
of running KeaMA [#13]. 

5. **Build improvements**: We removed many obsolete files and added new 
documentation [#5, #35]. We fixed a compilation error on FreeBSD [#6]. 
The tool now reports its version and its internal built-in help is now 
expanded [#14]. A compilation error on Alpine 3.17 was fixed [#24]. 

6. **New system tests**: [#2]. We fixed all failing tests and added a CI 
pipeline with `pylint`, a python linter [#23].

## Incompatible Changes

There are no strictly incompatible changes, but right now KeaMA prints 
many informational messages on standard output, thus making the `-o 
<file>` parameter essentially mandatory to use.

## License

This version of KeaMA is released under the Mozilla Public License, 
version 2.0.

   https://www.mozilla.org/en-US/MPL/2.0

## Download

KeaMA can be used in at least four ways: 1. using on-line service; 2. 
download pre-built native packages for selected Linux distros; 3. Using 
Docker; 4. Downloading the sources and compiling on your own system.

1. Online at: https://dhcp.isc.org

2. Via pre-built ISC packages for the current version of selected 
popular Linux operating systems at: 
https://cloudsmith.io/~isc/repos/keama/packages/

3. Via Docker files from: 
https://gitlab.isc.org/isc-projects/keama-docker or 
https://cloudsmith.io/~isc/repos/keama/packages/

4. Via the source files from: https://ftp.isc.org/isc/keama

The KeaMA source and PGP signature for this release may be downloaded 
from:

   https://www.isc.org/download

The signature was generated with the ISC code-signing key, which is 
available at:

   https://www.isc.org/pgpkey

KeaMA does not feature extensive documentation. Some documents, 
including the manual file, README, CHANGELOG, and various others, are 
available from the KeaMA repository: 
https://gitlab.isc.org/isc-projects/keama/.

ISC maintains a public open source code tree, wiki, issue tracking 
system, milestone planner at https://gitlab.isc.org/isc-projects/keama.

Limitations and known issues with this release can be found at 
https://gitlab.isc.org/isc-projects/keama/-/wikis/known-issues-list.

We ask users of this software to please let us know how it worked for 
you and what operating system you tested on. Feel free to share your 
feedback on the DHCP-Users mailing list 
(https://lists.isc.org/mailman/listinfo/dhcp-users). We would also like 
to hear whether the available documentation is adequate and accurate. 
Please open tickets in the KeaMA GitLab project for bugs, documentation 
omissions and errors, and enhancement requests. We want to hear from you 
even if everything worked.

## Support

Professional support for Kea is available from ISC. We encourage all 
professional users to consider this option; Kea maintenance is funded 
with support subscriptions. For more information on ISC's Kea software 
support, see https://www.isc.org/support/.

Free best-effort support is provided by our user community via a mailing 
list. Information on all public email lists is available at 
https://www.isc.org/community/mailing-list. If you have any comments or 
questions about working with Kea, please share them to the Kea Users 
list (https://lists.isc.org/mailman/listinfo/kea-users). Bugs and 
feature requests may be submitted via GitLab at 
https://gitlab.isc.org/isc-projects/kea/-/issues.

## Changes

The following summarizes changes and important upgrades since the 4.4.3 
release.

* 23 [build] tomek

    The left-over server code is now removed. Documentation, python tests
    are now included in the release tarball.
    (Gitlab #35)

* 22 [func] piotrek

    Changelog is now displayed in Keama web interface, as a part of
    About KeaMA page.
    (Gitlab #30)

* 21 [func] piotrek

    CSRF protection was force enabled in Keama web interface.
    (Gitlab #34)

* 20 [func] piotrek

    Keama web flask random SECRET_KEY is now generated only once and 
stored
    in a file to make it persistent. This is to prevent issues with CSRF
    session token.
    (Gitlab #33)

* 19 [build] tomek

    All python tests fixed. Added pylint. Added CI pipeline that runs 
pylint,
    builds keama code, and runs tests.
    (Gitlab #23)

* 18 [func] piotrek

    Enhancements of keama web interface: whole web page was reformatted 
and is
    using now the same styling as official isc.org web page. The html 
form is
    sent asynchronously (ajax) and whole feedback to the user is 
displayed in
    asynchronous manner. Previous web interface was kept as a fallback 
legacy
    version in case JavaScript is not supported by browser (url 
`/legacy`).
    (Gitlab #31)

* 17 [func] piotrek

    Enhancements of keama web interface: when needed, feedback is 
presented
    to the user in form of closable alert section on top of the page.
    (Gitlab #29)

* 16 [func] piotrek

    Enhancements of keama web interface: when migration is done, display 
only
    those contents to the user which are available; feedback such as 
"file too
    large" or "your config has been shared" are now using the same base 
template
    for consistent styling; absolute file paths are hidden in stdout and 
stderr
    in production; added white-space wrapping for html pre tags - used 
to display
    stdout, stderr and kea generated config.
    (Gitlab #26)

* 15 [build] tomek

    Compilation fix for FreeBSD. Tested on FreeBSD 13.0, but other OS 
versions
    are likely affected, too.
    (Gitlab #6)

* 14 [func] tomek

    It is now possible to either upload a file or copy-paste its 
contents.
    It is now possible to add your comments if you share your 
configuration
    with ISC. The "share with ISC" button is now working properly.
    (Gitlab #25)

* 13 [doc] manu

    Add the Kea Migration Assistant Docker option to the "Off-Line 
Migration"
    section.

* 12 [build] tomek

    Fixed compilation error on Alpine 3.17. Also disabled -Werror option
    that might cause compilation failures in other cases.
    (Gitlab #24)

* 11 [doc]  vicky

    Web interface reworded.
    (Gitlab #17)

* 10 [bug] fdupont

    Fixed potential infinite loop in handling pick-first-value and 
possibly
    other statements.
    (Gitlab #7)

* 9 [func] tomek

    The keama now can report its version (using `-v` or `--version`. It 
now
    prints some information about the file being converted and its 
content.
    The internal help is now corrected. Thanks to Carsten Strotmann for
    reporting and sending a patch.
    (Gitlab #14)

* 8 [func] tomek

    The web interface now has configurable timeout for keama conversion.
    This is useful to kill hanging processes if keama gets stuck. The 
default
    timeout is 30 seconds.
    (Gitlab #21)

* 7 [func] tomek

    Basic web interface implemented for keama. The interface is written 
in
    python and uses Flask framework.
    (Gitlab #13)

* 6 [build] tomek

    Converted system tests to python (pytest).
    (Gitlab #2)

* 5 [build] tomek

    Removed many obsolete files, added new, short README and ChangeLog 
files.
    (Gitlab #1)


Thank you again to everyone who assisted us in making this release 
possible.

We look forward to receiving your feedback.