Skip to content

Releases: NucciTheBoss/cleantest

cleantest-0.4.0-rc1

20 Feb 22:33
42522ed
Compare
Choose a tag to compare
cleantest-0.4.0-rc1 Pre-release
Pre-release

Release notes

What is new?

Over the past two months, I have been hard at work adding a lot of new features for 0.4.0
in my quest to make cleantest a great testing framework. The 0.4.0-rc1 pre-release is so that
folks can start getting a feel for all the features that I have been adding. Not everything I want
to have has been added to cleantest yet, but I want to give folks something new to get their hands on
in the meantime. Here is what is new in 0.4.0-rc1:

  • Added a CI/CD pipeline for linting and functional tests via GitHub Actions. No more hip firing here!
  • Fixed mutability issues when running clean tests in sequence. Now singleton state can be rest between runs.
  • Added a run utility for executing shell commands inside test environment instances.
  • Added a systemd utility for controlling services inside test environment instances.
  • Added a apt utility for interfacing with the apt package manager on Ubuntu/Debian-based test environment instances.
  • General quality of life refactors. Removed methods that did not need to be there.
  • New module structure - I tried to further refine imports from version 0.3.0.
  • PRELIMINARY MULTI-DISTRIBUTION SUPPORT!!! You can know launch Rocky, AlmaLinux instances and more, but robust support
    is not fully there yet (i.e. package macros do not work yet).
  • Fixed issue #21.
  • Introduction of Archon and Harness classes. Archon can be used to manually direct the test environment provider
    and Harness is the new name for the legacy Provider classes. Harness is what wraps around testlets when
    invoking the provider decorators. Archon can be used to set up more complex cloud deployments such as
    mini high-performance computing clusters.
  • Enhanced documentation. There is now a News page (what you are reading currently), a reference page
    (to be completed by 0.6.0), and a community page that routes to GitHub Discussions. I also cleaned up
    the home page to make it more concise.
  • An actual tutorial! I know I said I would not add them until 0.5.0, but I decided to share a sneak-peak ;)

What still needs to be done for 0.4.0?

I still need to do a bit of work before the final 0.4.0 release is ready. Here is what still needs to be done:

  • Add a dnf utility for interfacing with the dnf package manager.
  • Add a pacman utility for interfacing with the pacman package manager.
  • Add a passwd utility for creating users and groups on test environment instances.
  • Low-level refactor to improve LXD API socket interaction.
    See issue #32.
  • Add some logging output to show cleantest's progress.
    See issue #4.
  • Fix bug where cleantest will fail if using LXD virtual machines instead of containers.
    See issue #12.

What comes after 0.4.0?

I have big plans for cleantest 0.5.0. The focus of the 0.5.0 release will be cloud-interoperability,
test result reporting, and adding a CLI front-end to cleantest. Here is a sneak-peak of what I am
planning to do:

  • Add Juju as a test environment provider.
  • Add a REPL for interactively running cleantest.
  • Add report generation abilities to cleantest.
  • Add support for "gambols". More on that later ;)

As always, feel free to make a discussion post if you have any questions and I hope you continue to enjoy
using cleantest!

cleantest-0.3.0

26 Dec 02:51
Compare
Choose a tag to compare

Release notes

First actual pinned release of cleantest on GitHub! Lots of changes have been introduced since I first gave the lightning talk about cleantest while in Prague. After getting lots of good feedback, here is what has been changed since 0.2.0:

  • Support for new packages. cleantest now supports injecting and managing snap packages. There is a handler for snap packages as well, so you can control snap services from inside the testlet.
  • Support for parallel testing. cleantest now has the ability to run test environments in parallel. This will be helpful for spread testing code across different versions of Ubuntu.
  • Better inheritance structure. More thought has been put into the design of cleantest and how to reuse methods and properties between classes. For example, all injectable objects (objects to be uploaded into test environment instances) now inherit from the Injectable metaclass.
  • Support for uploading and downloading files to and from test environment instances. Artifacts can be pushed before the testlets are run and results can be downloaded after the testlet has completed.
  • Better documentation. More complete web documentation and consistent docstrings.
  • Support for StopEnvHooks.
  • More features that I might be missing.

Links

  1. This release can be found on PyPI here: https://pypi.org/project/cleantest/0.3.0/
  2. Updated documentation can be found here on GitHub Pages: https://nuccitheboss.github.io/cleantest/