anise

one software project administration tool for all environments
current release: 4.1.4792
state: production-stable
anise

About

Anise is a Python-based execution engine for automation tasks.

Automation tasks exist in software development, and probably all kinds of other sectors. They typically require the execution of different smaller and larger tools. Complex tasks often need a sequence of many steps to execute, with some steps having dependencies to each other. Manually triggering all these steps in the graphical interfaces of all the involved tools is possible in theory, but will generate errors and frustration after some cycles.

The automation interfaces of those tools are sometimes easier, but sometimes they are error-prone. Some tasks may also need to ask the user for some information in an interactive way. Some smaller parts might also be machine-specific (e.g. filesystem paths or the code how to access a password vault), while the entire task must be runnable on some different machines. In some situations, this can lead to a rather intransparent forest of different tools, with unique oddnesses and special conventions. As the number of different project increases, you will see more and more different tools, often doing a similar job, but for different platforms or frameworks and, of course, with different usage conventions. Spontaneously written glue scripts help in the beginning, but will explode as the complexity exceeds some threshold.

Typical tasks in software development could be:

  • Generating documentation
  • Testing
  • Automatic code generation
  • Creating packages
  • Creating a homepage, automatically built from the available version information, the packages, the documentation and so on
  • Deploying this homepage to a web server
  • Handling version information
    • e.g. print it in the manual
  • and many more

The anise framework allows you to implement all those tasks in a structured but generic way in a combination of XML and Python code. Once you have created this stuff at a defined place in your project, anise lets you easily execute your tasks from command line (or from any editor if you embed it somehow). This gives you a common and easy interface to all your 'tool glue' code.

The anise engine executes arbitrary Python source code and provides some additional services like logging, parameter passing from command line, basic graphical user interface support, a plugin interface, a flexible event system, injecting code and data from other place, dependencies between code fragments, and more.

On top of this engine, anise comes with a bunch of implementations which fulfill tasks (or parts of them) of software development. There is a testing module, a documentation- and homepage-generator, some package building methods and a lot more. The implementations use the event system in many places in order to allow customization in a somewhat technical but very flexible way. Even so, those implementations are rather specific and it depends on the particular case, if, and how many of those implementations are useful.

License

anise is distributed under the terms of the GPLv3 or higher license. This also affects all included files without a license header (non-source files like images), unless they are explicitly mentioned as third-party content. Read the Dependencies section for included third-party stuff.

Documentation

The following documentation is available:

Manual

Developer Documentation

Download

The following packages are available. Choose the one which matches your operating system or environment. Please also check for requirements.

Debian/Ubuntu package

sha256sum: 2359b4ceb7d5bab33a459a3612e211d5448721f9631c55e9c6f9a8d7f70842d7
created: 2019-08-27 21:32        size: 1.6 MB
sha256sum: 619c064fb0a47a225a4115d00440202096679b8fd140c301927d9fa4c5a15163
created: 2018-05-31 02:28        size: 1.6 MB
sha256sum: af79042b9932a54e441488bbab27f29799d71b55aed23f5fa413fd1d8aec7113
created: 2017-12-26 20:05        size: 3.1 MB
 

Python wheel package

sha256sum: 5249700c22cbb3aeb2779694a68157d8050ef1df3ac9feb8675865188a4ff453
created: 2019-08-27 21:32        size: 524.8 KB
sha256sum: c43528d0aef7b79481c02971f352d15a4b6ebe8fe35f7057b5f2ea83d86deb09
created: 2018-05-31 02:28        size: 520.3 KB
sha256sum: 12b416b397096a998b442fae800cb472f52dd51449636c3bcfe76d44f809604c
created: 2017-12-26 20:05        size: 513.2 KB
 

Windows package

sha256sum: d42025e054e663646abbc831e9f55d754a68a5a1d27aac138fc3eacb9c8bf3c8
created: 2019-08-27 21:32        size: 6.1 MB
sha256sum: ada47aebe47143bb888b2f4cad3acd169b68867f81042094e5a4c9816f58f4d3
created: 2018-05-31 02:28        size: 6.1 MB
sha256sum: 723d9d9503d6b6b62716e27b0b381d6b1ecbfcdb1c964538d981a6447e8523c9
created: 2017-12-26 20:05        size: 7.6 MB
 

flatpak

Install anise as Flatpak on most modern Linux systems by installing application 'pi.no.anise' from repository 'https://pseudopolis.eu/wiki/pino/projs/anise/flatpak'.
archlinux.png
Install $ sudo pacman -S flatpak before you can use Flatpak in Arch Linux.
centos.png
Install $ yum install flatpak as root before you can use Flatpak in CentOS.
debian.png
Install $ apt install flatpak as root before you can use Flatpak in Debian.
fedora.png
Flatpak is directly usable in Fedora without further work.
gentoo.png
Install https://github.com/fosero/flatpak-overlay before you can use Flatpak in Gentoo.
opensuse.png
Install $ sudo zypper install flatpak before you can use Flatpak in openSUSE.
redhat.png
Install $ yum install flatpak as root before you can use Flatpak in Red Hat.
ubuntu.png
Install $ sudo apt install flatpak before you can use Flatpak in Ubuntu.

See above how to prepare Flatpak and then run:

$ flatpak remote-add --user --no-gpg-verify anise https://pseudopolis.eu/wiki/pino/projs/anise/flatpak
$ flatpak install --user anise pi.no.anise
$ flatpak run pi.no.anise
or install it with just:
$ flatpak install --user --from https://pseudopolis.eu/wiki/pino/projs/anise/anise.flatpakref

anise.flatpakref

sha256sum: 86af939f2e80075f9db164d29e648a6a88b5dae760e30354a43770ae57260756
created: 2019-08-27 21:32        size: 2.4 KB
 
Use the .gpg for optional repository signature verification.

anise_flatpak.gpg

sha256sum: 0a40600de0f79c9cc2f528d7a77bf9b9eb15723efaf1c3740ec81d8dccd2671f
created: 2019-08-27 21:32        size: 1.6 KB
 

source tarball

sha256sum: 51d90e0af3e1429c8c9e39cf306c014b78e4458d1ad68a9037a0fd87392d379b
created: 2019-08-27 21:32        size: 5.9 MB
sha256sum: 080f5fd2a30fb112d7d25d4476c0e9519e128d068383b87fc15c6ac2f6f2f34d
created: 2018-05-31 02:28        size: 5.9 MB
sha256sum: 2295539aa5038c9138468f36be9fbf8efad0ac5ca83a9936b061faec9564364c
created: 2017-12-26 20:05        size: 7.4 MB
 

There are external parts which are used by anise. Many thanks to the projects and all participants.
python.png
Python 3.4 required
linux.png
Typical GNU/Linux Desktop recommended
package.png
PyQt5 incl. WebEngine required (has alternatives) : for some user interface enhancements; you can comfortably work without it (inside the browser then)
svn.png
subversion optional
git.png
git optional
artwork.png
font 'Symbola' included : for logo symbol; free for use; copied from here.
artwork.png
banner image included : _meta/homepage_bannerimage.png; license CC BY-SA 3.0; copied from here.
artwork.png
third-party project logos included : from some projects (see their websites for details).
artwork.png
all files in /_meta included : if not mentioned otherwise, Copyright 2015 Josef Hahn under license CC BY-SA 3.0 license.
artwork.png
icon set 'oxygen' included : files 'anise/data/icons/userfeedback'; license see homepage.

Gallery

screenshot1.png
The Anise task chooser
screenshot2.png
Execution of an Anise task
screenshot3.png
The Anise Console
screenshot4.png
Powerful graphical configuration interface
screenshot5.png
Each graphical interface also works in terminals
screenshot6.png
Project configuration raw editor
gallery0/v_anise001.mp4|||Screencast: First steps
gallery0/v_anise002.mp4|||Screencast: Creating project homepages
gallery0/v_anise003.mp4|||Screencast: Features
gallery0/v_anise004.mp4|||Screencast: Windows

Change Log

The last changes brought the following improvements.

2018-05-31 (4.1.4704)
  • Feature 'build.autotools' with initial support for the GNU Build System (a.k.a. Autotools) added.
  • The build feature now has an abstraction infrastructure for making code able to run in different environments/scenarios.
  • The universe object - formerly universe() - is now also available by universe.
  • Initial support for Flatpak application images is available.

Imprint

Publisher: Josef Hahn, Boxgraben 112-114, 52064 Aachen, Germany | website: pseudopolis.eu/wiki/pino | mail: anise.nosp@m.@pse.nosp@m.udopo.nosp@m.lis..nosp@m.eu

Feedback

If you have funny rants about anise itself or about some techniques it uses, some constructive feedback, a cool patch or a mysterious problem, feel free to mail it to anise.nosp@m.@pse.nosp@m.udopo.nosp@m.lis..nosp@m.eu.

Please use the bugtracker if you have found an error in the software.