Tethys Platform
Table Of Contents
Table Of Contents

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

See: Django Supported Versions

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.

See: Boostrap 5 Documentation

Controller Decorators

  • Added three new decorators: controller, consumer, and handler.

  • 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 the compose_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 of manage.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 the manage.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


  • 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 to tethysapp to allow for using __name__ to get/name loggers.

Bug Fixes

Security Fixes

Prior Release Notes