Package: merlyn
A server backend for interactive online exercises.Testing and documentationTesting is done usingtox. Install it, and run it from the command
line in the repository root. This will create avirtualenvfor each
supported environment, install the necessary things in it, run the
tests, and build the documentation.Speeding up buildsFor a faster experience, it is recommended that you configurepipto
usewheelby default, by placing the following in your~/.pip/pip.confor equivalent:[global]
use-wheel = True

[install]
find-links = /tmp/wheelhouse

[wheel]
wheel-dir = /tmp/wheelhouseAfter that, build wheels out of the requirements by running the
following command once:pip wheel -r requirements.txt -r requirements-docs.txt -r requirements-testing.txtThat will build wheels, which are faster to install than regular
packages. You can make installations even faster by addingno-index= Trueto the[install]section; that way, installations won’t
even hit PyPI, further reducing latency. Keep in mind that you will
then no longer be able to usepip installto install anything,
unless you’ve first made a wheel out of it.Release notes0.0.9Added per-user secrets. Once pyca/cryptography will have HKDF support,
this will turn into per-user entropy.Also minor fixes, version upgrades.0.0.8Now being continuously tested on Travis, with coverage monitoring
thanks to Coveralls.Several other minor improvements:A useful mixin for resources that represent exercises, for helping
them resolve and notify when an exercise is completed.User e-mails are indexed.Persisted factories are now unary callables that take a store. This
prevents some otherwise icky global mutable state.New behavior for adding persisted factories: addOrUpdate; don’t just
blindly add more factories with the same identifier.0.0.7Added support for adhparam.pem, enabling DH-based PFS
ciphersuites. ECDH-based PFS ciphersuites is a work in progress, see
#6.0.0.6Moved requirements into setup.py for easier installsclarentversion requirement bump0.0.5Features:localhost manhole support for debuggingOnly support good ciphersuites.0.0.4Renamed to merlyn (see “Whence the name” below).Features:Drastically simplified exercise APIAuthentication API based on SSL certificate verification0.0.3Features:Basic documentation for steps and exercisesInterfaces: IStep, IRenderer, IValidator (see docs)A renderer based on string templating (str.format)Upgrades:repoze.sphinx.autointerface -> sphinxcontrib-zopeext, which appears
to be a shinier, more updated version of the same thingCommon things between merlyn andarthur, such as shared AMP command
classes, were moved toclarent.0.0.2Features:Exercise and Step classesStep validation draftStep solution submission interface0.0.1Initial public release. Nothing much to see here.Whence the name?This project was originally called merlin, because the step-by-step
oracle-like model reminded me of Merlin in the AM complexity class andArthur-Merlin protocols. It’s since been renamed to merlyn, because
the primo merlin PyPI real estate has been taken up by some kind of
weird setuptools fork.Since Arthur is the person who performs the protocol together with
Merlin, it only made sense to name the client side projectarthur.
Finally,clarent, named after king Arthur’s ceremonial sword, holds
common tools.