eggmonster / CHANGES

Eggmonster Change Notes


Eggmonster runner now allows initializing the environment without actually
running any application (if not entry point application name is provided).

Eggmonster internal logging now will log to the host `eggmonster-log` if that
name resolves in DNS and no environment variable is present.


Added the `env.as_obscured_dict` method for obscuring sensitive information
before logging or other output of the configuration.


Fixed error when parsing namespace package names in RunningState._pkg_info.


The eggmonster environment `eggmonster.env` is now also a valid dict so one
can do things like iterate over the keys/values.

Added Python 3 build support.

If monster_launchd has problems spawning emi processes, eggmonster will log
some debug information to help diagnose it.


Fixed issue in eggmonster.concurrency where file locks would not be
released if the process was terminated unexpectedly.


Added support for namespace packages.


A new entry point is supported. Third-party libraries may supply an
entry point `eggmonster_config_updates` which will be called with two
parameters (the old and new config yaml as strings) when the config
is updated by "em edit".

A new parameter 'host-id' may be provided to monster_launchd to
override the default identity of


Previously to 4.1.27, the eggmonster launchd clients would by default
attempt to setuid to the user by the name "monster" and would always
require being started as root.

Beginning with 4.1.27, the eggmonster launchd clients no longer require
that the process be started by root. Instead, the process will run
in the user context under which it was started unless the `--user`
option is supplied. If `--user` is supplied and is not the same user
as the user that started the process, the process must have been started
by root.

When upgrading to 4.1.27, add `-u monster` or `--user monster` when
starting monster_launchd to maintain compatibility.


Beginning with 4.1.26, the eggmonster install lock mechanism (which
prevents other eggmonster instances on the same system from upgrading
packages simultaneously) was changed to be more platform friendly and
work as a context manager.

This change also tweaked the semantic meaning of the lockfile
(`/tmp/eggmonster-install-lock`). In previous versions, the lock file
was kept around, and locks were acquired by setting the EXCLUSIVE flag
on the file. Beginning with 4.1.26, the file is removed after the lock
is released. Thus when upgrading to 4.1.26, one must be careful to 
remove the lockfile or subsequent package install operations will fail.