Prior Release Notes¶
Last Updated: September 2019
Information about prior releases is shown here.
Python 3 Support¶
Python 3 officially supported in Tethys Platform.
Python 2 support officially deprecated and will be dropped when Tethys Platform 3.0 is released.
Tethys needs to migrate to Python 3 only so we can upgrade to Django 2.0, which only supports Python 3.
Migrate your apps to Python 3. After Tethys Platform 3.0 is released, Python 2 will no longer be supported by Tethys Platform.
100% Unit Test Coverage¶
Tests pass in Python 2 and Python 3.
Unit tests cover 100% of testable code.
Code base linted using flake8 to enforce PEP-8 and other Python coding best practices.
Automated test execution on Travis-CI and Stickler-CI whenever a Pull Request is submitted.
Added badges to the README to display build/testing, coverage, and docs status on github repository.
All of this will lead to increased stability in this and future releases.
See: Tethys Platform Repo for build and coverage information.
Customize Tethys Platform functionality.
Create your own gizmos.
Centralize app logic that is common to multiple apps in an extension.
Map View Gizmo¶
Added support for many more basemaps.
Added Esri, Stamen, CartoDB.
Support for custom XYZ services as basemaps.
User can set OpenLayers version.
Uses jsdelivr to load custom versions (see: https://cdn.jsdelivr.net/npm/openlayers)
Default OpenLayers version updated to 5.3.0.
See: Map View
TethysControllerto SDK to support class-based views in Tethys apps.
Inherits from django
as_controllermethod, which is a thin wrapper around
as_viewmethod to better match Tethys terminology.
UrlMaps can take class-based Views as the controller argument:
More to come in the future.
See: Django Class-based views to get started.
Partial Install Options¶
The Tethys Platform installation scripts now allow for partial installation.
Install in existing Conda environment or against existing database.
Upgrade using the install script!
Linux and Mac only.
Command Line Interface¶
New commands to manage app settings and services.
tethys app_settings- List settings for an app.
tethys services- List, create, and remove Tethys services (only supports persistent store services and spatial dataset services for now).
tethys link- Link/Assign a Tethys service to a corresponding app setting.
tethys schedulers- List, create, and remove job Schedulers.
tethys manage sync- Sync app and extensions with Tethys database without a full Tethys start.
New Dockerfile for Tethys Platform.
Use it to build Docker images.
Use it as a base for your own Docker images that have your apps installed.
Includes supporting salt files.
Dockerfile has been optimized to minimize the size of the produced image.
Threading is enabled in the Docker container.
See: Docker Documentation to learn how to use Docker in your workflows.
API Tokens for Users¶
API tokens are automatically generated for users when they are created.
Use User API tokens to access protected REST API views.
Added SSL setup instruction to Production Installation
Fixed grammar in forget password link.
Refactored various methods and decorators to use new way of using Django methods
Fixed bug with Gizmos that was preventing errors from being displayed when in debug mode.
Fixed various bugs with uninstalling apps and extensions.
Fixed bugs with get_persistent_store_setting methods.
Fixed a naming conflict in the SelectInput gizmo.
Fixed numerous bugs identified by new tests.
Powered by Miniconda Environment¶
Tethys Platform is now installed in a Miniconda environment.
Using the Miniconda includes Conda, an open source Python package management system
Conda can be used to install Python dependencies as well as system dependencies
Installing packages like GDAL or NetCDF4 are as easy as
conda install gdal
Conda is cross platform: it works on Windows, Linux, and MacOS
Cross Platform Support¶
Develop natively on Windows, Mac, or Linux!
No more virtual machines.
Be careful with your paths.
See: Getting Started
Completely automated installation of Tethys
Scripts provided for Mac, Linux, and Windows.
See: Getting Started
Experimental Python 3 Support in 2.0.0
Tethys Dataset Services is not completely Python 3 compatible
--python-version 3option on the installation script
Python 2 support will be dropped in version 2.1
See: Getting Started
Leaner, updated theme for app base template.
header_buttonsblock for adding custom buttons to app header.
See: App Templating API
Developers can create App Settings, which are configured in the admin interface of the Tethys Portal.
Types of settings that can be created include Custom Settings, Persistent Store Settings, Dataset Service Settings, Spatial Dataset Service Settings, and Web Processing Service Settings.
The way Tethys Services are allocated to apps is now done through App Settings.
All apps using the Persistent Stores APIs, Dataset Services APIs, or Web Processing Services APIs prior to version 2.0.0 will need to be refactored to use the new App settings approach.
See: App Settings API
tethys listcommand that lists installed apps.
Completely overhauled scaffold command that works cross-platform.
New options for scaffold command that allow automatically accepting the defaults and overwriting project if it already exists.
Brand new Getting Started Tutorial
Demonstration of most Tethys SDK APIs
See: Key Concepts
New way to call them
New load dependencies Method
Updated select_gizmo to allow Select2 options to be passed in.
See: Template Gizmos API
Updated OpenLayers libraries to version 4.0
Fixes to make MapView compatible with Internet Explorer
Can configure styling of MVDraw overlay layer
New editable attribute for MVLayers to lock layers from being edited
A basemap switcher tool is now enabled on the map with the capability to configure multiple basemaps, including turning the basemap off.
Added the ability to customize some styles of vector MVLayers.
See: Map View
Plotly View and Bokeh View Gizmos¶
True open source options for plotting in Tethys
Sessions will now timeout and log user out after period of inactivity.
When user closes browser, they are automatically logged out now.
Expiration times can be configured in settings.
Fixed issue where
tethys uninstall <app>command was not uninstalling fully.
There is now a formalized mechanism for creating permissions for apps.
It includes a permission_required decorator for controllers and a has_permission method for checking permissions within controllers.
Terms and Conditions Management¶
Portal Admins can now manage and enforce portal-wide terms and conditions and other legal documents.
Documents are added via the admin interface of the portal.
Documents can be versioned and dates at which they become active can be set.
Once the date passes, all users will be prompted to accept the terms of the new documents.
The GeoServer docker was updated to version 2.8.3
It can be configured to run in clustered mode (multiple instances of GeoServer running inside the container) for greater stability and performance
Several extensions are now included:
Tethys Docker CLI¶
Modified behaviour of "-c" option to accept a list of containers names so that commands can be performed on subsets of the containers
Improved behaviour of "start" and "stop" commands such that they will start/stop all installed containers if some are not installed
Improved behaviour of the "remove" command to skip containers that are not installed
Updated the Select2 Gizmo libraries to version 4.0.
Not changes should be necessary for basic usage of the Select2 Gizmo.
If you are using advanced features of Select2, you will likely need to migrate some of your code.
Refer to https://select2.github.io/announcements-4.0.html#migrating-from-select2-35 for migration help.
Use the TETHYS_MAP_VIEW.getSelectInteraction() method to have more control over items that are selected.
MVLayer Select Features now supports selection of vector layers in addition to the WMS Layers.
Added support for images in the legend including support for GeoServer GetLegendGraphic requests.
Workflow Job Type¶
New Condor Workflow provides a way to run a group of jobs (which can have hierarchical relationships) as a single job.
The hierarchical relationships are defined as parent-child relationships between jobs.
As part of this addition the original Condor Job type was refactored and, while backwards compatibility is maintained in version 1.4, several aspects of how job templates are defined have been deprecated.
New Tethys CLI command to run tests on Tethys and apps.
Tethys SDK now provides a TethysTestCase to streamlines app testing.
Persistent stores is supported in testing.
Tethys App Scaffold now includes testing module with example test code.
Installation Instructions for Ubuntu 16.04
Fixed an issue with URL mapping that was masking true errors with contollers (see: Issue #177)
Fixed an issue with syncstores that use the string version of the path to the intializer function (see: Issue #185)
Fixed an issue with syncstores that would cause it to fail the first time (see: Issue #194)
Open account signup disabled by default
New setting in settings.py that allows open signup to be enabled
Feature selection enabled for ImageWMS layers
Clicking on features highlights them when enabled
Custom styles can be applied to highlighted features
Basemap can be disabled
Layer attributes can be set in MVLayer (e.g. visibility and opacity)
Updated to use OpenLayers 3.10.1
D3 plotting implemented as a free alternative to Highcharts for line plot, pie plot, scatter plot, bar plot, and timeseries plot.
Spatial Dataset Services¶
Upgraded gsconfig dependency to version 1.0.0
Provide two new methods on the geoserver engine to create SQL views and simplify the process of linking PostGIS databases with GeoServer.
Places button on all app pages that activates a feedback form
Sends app-users comments to specified developer emails
Includes user and app specific information
Handoff Manager now available, which can be used from controllers to handoff from one app to another on the same Tethys portal (without having to use the REST API)
The way handoff handler controllers are specified was changed to be consistent with other controllers
Jobs Table Gizmo¶
The refresh interval for job status and runtime is configurable
Dynamic Persistent Stores¶
Persistent stores can now be created dynamically (at runtime)
Helper methods to list persistent stores for the app and check whether a store exists.
Apps now feature optional descriptions.
An information icon appears on the app icon when descriptions are available.
When the information icon is clicked on the description is shown.
Missing initial value parameter was added to the select and select2 gizmos.
Addressed several cases of mixed content warnings when running behind HTTPS.
The disconnect social account buttons are now disabled if your account doesn't have a password or there is only one social account associated with the account.
Fixed issues with some of the documentation not being generated.
Fixed styling issues that made the Message Box gizmo unusable.
Normalized references to controllers, persistent store initializers, and handoff handler functions.
Various docs typos were fixed.
Social login supported
Google, LinkedIn, and Facebook
HydroShare coming soon
New controls on User Profile page to manage social accounts
D3 Plotting Gizmos¶
D3 alternatives for all the HighCharts plot views
Use the same plot objects to define both types of charts
Simplified and generalized the mechanism for declaring plot views
Job Manager Gizmo¶
New Gizmo that will show the status of jobs running with the Job Manager
SDK methods for creating and managing workspaces for apps
List files and directories in workspace directory
Clear and remove files and directories in workspace
Use handoff to launch one app from another
Pass arguments via GET parameters that can be used to retrieve data from the sender app
New video tutorials have been created
The videos highlight working with different software suite elements
CKAN, GeoServer, PostGIS
Advanced user input forms
Advanced Mapping and Plotting Gizmos
New Location for Tethys SDK¶
Tethys SDK methods centralized to a new convenient package: tethys_sdk
Persistent Stores Changes¶
Moved the get_persistent_stores_engine() method to the TethysAppBase class.
To call the method import your app class and call it on the class.
The old get_persistent_stores_engine() method has been flagged for deprecation.
Command Line Interface¶
New management commands including
Modified behavior of
syncdbmanagement command, which now makes and then applies migrations.
Options objects for configuring gizmos
Many improvements to Map View
Improved layer support including GeoJSON, KML, WMS services, and ArcGIS REST services
Added a mechanism for creating legends
Added drawing capabilities
Upgraded to OpenLayers version 3.5.0
New objects for simplifying Highcharts plot creation
Added the ability to draw a box on Google Map View
Tethys Portal Features¶
Reset forgotten passwords
Bypass the home page and redirect to apps library
Rename the apps library page title
The two mobile menus were combined into a single mobile menu
Dataset Services and Web Processing Services admin settings combined into a single category called Tethys Services
Added "Powered by Tethys Platform" attribution to footer
Provides a unified interface for all apps to create submit and monitor computing jobs
Abstracts the CondorPy module to provide a higher-level interface with computing jobs
Allows definition of job templates in the app.py module of apps projects
Added documentation about the Software Suite and the relationship between each software component and the APIs in the SDK is provided
Documentation for manual download and installation of Docker images
Added system requirements to documentation
Naming new app projects during scaffolding is more robust
Fixed bugs with fetch climate Gizmo
Addressed issue caused by usernames that included periods (.) and other characters
Made header more responsive to long names to prevent header from wrapping and obscuring controls
Fixed bug with tethys gen apache command
Addressed bug that occurred when naming WPS services with uppercase letters
Added parameter of UrlMap that can be used to specify custom regular expressions for URL search patterns
Added validation to service engines
Custom collectstatic command that automatically symbolically links the public/static directories of Tethys apps to the static directory
Added "list" methods for dataset services and web processing services to allow app developers to list all available services registered on the Tethys Portal instance