<div dir="ltr"><div class="gmail_default"><div class="gmail_default"><font face="arial, helvetica, sans-serif">We are pleased to announce that Tangelo 0.9 has been released and can be downloaded from the Python Package Index, or installed by issuing a command similar to:</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    </font><font face="monospace, monospace">pip install -U tangelo</font></div><div style="font-family:arial,helvetica,sans-serif"><br></div><div><span style="font-family:arial,helvetica,sans-serif">The main behavioral change to be aware of is that Tangelo no longer behaves as a general web server, dynamically serving content from all home directories.  Instead, it now serves a single application directory, which leads to a more secure, more focused "application driver" behavior.</span></div><div><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div><span style="font-family:arial,helvetica,sans-serif">Also, Tangelo now serves the current directory by default.  To serve the example applications, invoke Tangelo with "</span><font face="monospace, monospace">tangelo --examples"</font><font face="arial, helvetica, sans-serif">.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">See the full list of changes below, and read updated documentation [0] for in-depth discussion.</font></div><div style="font-family:arial,helvetica,sans-serif"><br></div><div style="font-family:arial,helvetica,sans-serif">As always, please don't hesitate to contact us with questions and concerns [1], or file issues on GitHub [2].</div><div style="font-family:arial,helvetica,sans-serif"><br></div><div style="font-family:arial,helvetica,sans-serif">roni</div><div style="font-family:arial,helvetica,sans-serif"><br></div><div><div><span style="font-family:arial,helvetica,sans-serif">[0] <a href="http://tangelo.readthedocs.org/en/v0.9/" target="_blank">http://tangelo.readthedocs.org/en/v0.9/</a></span><br></div><div><font face="arial, helvetica, sans-serif">[1] <a href="mailto:tangelo-users@public.kitware.com" target="_blank">tangelo-users@public.kitware.com</a></font></div><div><font face="arial, helvetica, sans-serif">[2] <a href="https://github.com/Kitware/tangelo/issues" target="_blank">https://github.com/Kitware/tangelo/issues</a></font></div></div><div style="font-family:arial,helvetica,sans-serif"><br></div><div style="font-family:arial,helvetica,sans-serif"><font size="4">Changelog</font></div><div style="font-family:arial,helvetica,sans-serif"><b>Added</b><br></div><div><div><span style="font-family:arial,helvetica,sans-serif">- Improvements to style testing</span><br></div><div><font face="arial, helvetica, sans-serif">- Improvements to coverage testing</font></div><div><font face="arial, helvetica, sans-serif">- Serverside and command line version tests</font></div><div><font face="arial, helvetica, sans-serif">- New security features: by default Tangelo no longer serves directory contents,</font></div><div><font face="arial, helvetica, sans-serif">  Python source code, and web service configuration files</font></div><div><font face="arial, helvetica, sans-serif">- ``--examples`` flag causes example applications to be served; default web root</font></div><div><font face="arial, helvetica, sans-serif">  is now ``.`` (i.e. directory from which Tangelo was invoked)</font></div><div><font face="arial, helvetica, sans-serif">- SQLAlchemy-based visualization tutorial</font></div><div><font face="arial, helvetica, sans-serif">- Plugins can now be specified without a path, causing Tangelo to look for a</font></div><div><font face="arial, helvetica, sans-serif">  bundled plugin of that name</font></div><div><font face="arial, helvetica, sans-serif">- New ``tangelo-pkgdata`` executable reports filesystem path to Tangelo package</font></div><div><font face="arial, helvetica, sans-serif">  data</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><b>Changed</b></font></div><div><font face="arial, helvetica, sans-serif">- Cross-platform generation of ``tangelo`` and ``tangelo-passwd`` executable</font></div><div><font face="arial, helvetica, sans-serif">  files (tested on Linux, Windows, and OS X)</font></div><div><font face="arial, helvetica, sans-serif">- Loosened dependency requirement on CherryPy</font></div><div><font face="arial, helvetica, sans-serif">- System path is no longer modified to make service module available to import</font></div><div><font face="arial, helvetica, sans-serif">  system; instead, the current working directory is changed to that of the service file</font></div><div><font face="arial, helvetica, sans-serif">- Configuration file is now typechecked at load time, including reporting of</font></div><div><font face="arial, helvetica, sans-serif">  unexpected options, with errors resulting in fail-fast</font></div><div><font face="arial, helvetica, sans-serif">- Plugins are now specified in the ``plugins`` entry of the main configuration</font></div><div><font face="arial, helvetica, sans-serif">  file</font></div><div><font face="arial, helvetica, sans-serif">- Plugins no longer require an ``enabled`` property; all plugins listed in the</font></div><div><font face="arial, helvetica, sans-serif">  configuration file will be loaded</font></div><div><font face="arial, helvetica, sans-serif">- Build process uses ``setuptools`` instead of ``distutils``</font></div><div><font face="arial, helvetica, sans-serif">- Example webpage and bundled plugins are now treated as package data (i.e.,</font></div><div><font face="arial, helvetica, sans-serif">  stored directly in ``site-packages``, etc.)</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><b>Removed</b></font></div><div><font face="arial, helvetica, sans-serif">- Service of web content from home directories</font></div><div><font face="arial, helvetica, sans-serif">- ``tangelo.abspath()`` - web services should instead use</font></div><div><font face="arial, helvetica, sans-serif">  ``tangelo.server.analyze_url()`` to learn the disk path for a given web resource</font></div><div><font face="arial, helvetica, sans-serif">- ``systemd`` support materials, as well as plans to provide other system</font></div><div><font face="arial, helvetica, sans-serif">  service helpers</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif"><b>Fixed</b></font></div><div><font face="arial, helvetica, sans-serif">- ``tangelo.plugin_config()`` works</font></div><div><font face="arial, helvetica, sans-serif">- Python module path behaves correctly in plugin web directories</font></div><div><font face="arial, helvetica, sans-serif">- ``tangelo.server.analyze()`` works better, especially for plugin development</font></div><div><font face="arial, helvetica, sans-serif">- Informational log output now goes unilaterally to ``sys.stderr`` while access</font></div><div><font face="arial, helvetica, sans-serif">  logs go to ``sys.stdout``</font></div><div><font face="arial, helvetica, sans-serif">- Nodelink example fixed so that contents are visible</font></div></div></div></div>