What's New¶
Last Updated: July 2022
Refer to this article for information about each new release of Tethys Platform.
Release 3.4¶
Python 3.10¶
Tethys Platform formally updated to use Python 3.10
Should also support Python 3.7+
Django 3.2¶
Django 2.2, the version Tethys 3 depended on, lost LTS status in April 11, 2022
Tethys was upgraded to be able to use Django 3.2, the new LTS version until April of 2024
Bootstrap 5¶
Upgraded to use Bootstrap version 5 (Tethys 3 used version 3).
Tethys Portal overhauled and re-themed using new capabilities of Bootstrap 5.
Controller Decorators¶
Added three new decorators:
controller
,consumer
, andhandler
.Use these decorators for mapping controllers, consumers, and handlers to URLs.
UrlMaps in app.py are no longer needed and the
url_maps
method is deprecated.
See: Routing API
WebSocket URLs¶
WebSocket URLs now begin with
/apps/
to be consistent with the other URLs that are generated by Tethys Platform (e.g.:/apps/my-first-app/ws/
).
See: Websockets and WebSockets Concepts
Tethys Map Layout¶
The first Tethys Layout, a new way to quickly and easily a fully functioning views to Tethys Apps.
A fully-featured, customizable map view with layer tree, address search, attribute popups, click-n-plot capability, and more.
Subclass the
MapLayout
class and override thecompose_layers
method to add layers.Enable / disable functionality by setting class properties.
See: Layouts API and Map Layout
Comprehensive Tethys Manage Command¶
The
tethys manage
command now provides full range ofmanage.py
commands.Use it to run any
manage.py
command, including commands provided by Django apps (e.g.django manage shell
).Use
tethys manage path
to get the path to themanage.py
that Tethys is using.
See: manage command
Static Dependencies¶
Replaced vendored static dependencies with CDN-hosted equivalants
Removed all vendored packages--almost 2000 files!
Upgraded all static dependencies to the latest versions
Added alternative to install static dependencies using NPM to allow self-hosting of dependencies instead of CDNs
See: STATICFILES_USE_NPM
setting at Tethys Portal Configuration
Custom Job Actions¶
The Jobs Table now allows custom actions to be defined and added.
The order of the actions displayed in the actions dropdown menu can now be customized.
See: Jobs Table
Scheduler App Settings¶
HTCondor and Dask Schedulers can now be assigned to apps using App Settings like other services.
Tethys Dask Scheduler updated to be compatible to the latest version of Dask.
See: Schedulers
Showcase Apps¶
The Developer pages, including the Gizmo Showcase, were removed from Tethys Portal.
A new Gizmo Showcase App was developed to provide improved demonstrations and code examples of Tethys Gizmos.
A new Layout Showcase App was developed to provide live demonstrations and code examples of the new Map Layout and future Layouts.
See: Showcase Apps
Tethys Portal¶
The registration page can now be overridden with a custom controller using the
REGISTER_CONTROLLER
setting.
See: REGISTER_CONTROLLER
setting at Tethys Portal Configuration
Documentation¶
App Migration Documentation for Tethys 3 to 4: Migrating Apps from Tethys 2 to 3
All tutorials updated for new Bootstrap 5, Django 3.2, and Tethys 4 syntax: Tutorials
Other documentation updates as discussed above.
Miscellaneous Changes¶
Changed logging scope for Tethys apps from
tethys.apps
totethysapp
to allow for using__name__
to get/name loggers.
Bug Fixes¶
Fixed Issue 763: Spatial Dataset Service created w/ CLI does not work until manually saved in admin pages
Fixed Issue 714: Restore Defaults Option of Site Command Breaks Tethys Portal
Fixed Issue 718: Error to bind the THREDDS data directory on Windows
Fixed Issue 777: tethys_quotas.UserQuota' has no ForeignKey to 'tethys_apps.ProxyApp
Security Fixes¶
Updated GeoServer and THREDDS containers used by tethys docker command to address log4j vulnerabilities.
Addressed Issue 719: CSP requires unsafe-eval for plot_view.