All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- #429 - Moved
FutureWarnings
fromdeprecated_decorators.py
to_config_parser.py
. Simplified deprecation warnings. - #432 - Replaced
WebvizPluginABC
type indeprecated_plugin
decorator withType[WebvizPluginABC]
. - #433 - Removed short message
from
deprecated_plugin
decorator. - #435 - Support only specifying
source_url
insetup.py
when building Dockerfile.
- #419 - Plugins and their arguments can now be marked as deprecated by using the newly implemented deprecation framework that, in addition to console FutureWarnings, automatically shows deprecation messages to the end user in the app and in the documentation. Adjusted contributing guide accordingly.
- #318 -
webviz-config
now facilitates automatically including necessary plugin projects as dependencies in generated Docker setup. Private repositories are also supported, however the Docker build process would then need to be given deploy keys as environment variable secrets. First iteration of automatically creating a corresponding Radix config and deploying a Radix application is also added. - #423 - Added class name
webviz-config-markdown
to the output from thewebviz-config
Markdown
plugin output, such that Webviz themes can optionally reduce CSS scope to the output from theMarkdown
plugin.
- #419 - Changed
plugin_metadata
andplugin_project_metadata
inwebviz_config.plugins
to uppercase. - #409 - Relax Python test dependency constraints.
- #318 - Ad-hoc plugins not
supported anymore (i.e. plugins not being part of a Python project with
setup.py
). This enables us to reserve the configuration file syntaxprefix.PluginName
to later. Requiring a formal Python project also enables useful features in the framework (see e.g. theAdded
section for this PR).
- #415 - Reduce height of main sidebar to prevent overflow.
- #422 - Remove deprecated 'plugin-types' CSP directive.
- #345 - Added Oauth2 Authorization Code flow support for Azure AD applications.
- #374 - Removed Webviz SSL certificate generation and forcing of HTTPS connections.
- #388 - Firefox preferred as
default browser over Chrome/Chromium to ease the transition on localhost after #374.
Browser defined with
webviz preferences --browser somebrowser
is still used instead of the new default (Firefox).
- #380 - Don't write warning for multiple versions of same plugin if the metadata is equal.
- #368 - Made Webviz global
settings available to plugin implementations through special
webviz_settings
argument. This argument is an instance of theWebvizSettings
class and currently contains both theshared_settings
andtheme
properties.
- #368 - Access to
webviz_settings
as an attribute on the Dash application instance object (currently being passed to the plugins as the specialapp
argument) has been deprecated.
- #373 - Fix for import of TypedDict in Python versions older than 3.8. Check against Python version instead of using try-except.
- #367 - Made type information available to package consumers by indicating support for typing as specified in PEP 561.
- #362 - Bumped pandas requirement
to
pandas>=1.0
, aspandas==0.24.2
is no longer needed in internal deployment.
- #351 - Fixed bug in automatically
generated docs when having a defaulted input argument of type
pathlib.Path
in plugin arguments. - #354 - Fixed bug in automatically
generated docs when having type hinted return value of plugin
__init__
functions.
- #337 - New generic plugin to generate a Pivot table based on Dash Pivottable.
- #333 - Warning is now raised if more than one plugin project provides a plugin with the same name.
- #339 - After
#230 generated app started using
Dash
dcc.Location
anddcc.Link
instead of tabs for multi-page apps. This enabled URL routing. At the same time, the root url/
special case was set to show "Front page", however, users did not from before necessarily have a page called "Front page", as the "Front page" shown earlier was simply the first page in the list. Changed back to behavior prior to #230 - i.e. show first page in config as "Front page" and not rely on page title.
- #324 - Now also
webviz-config
shipped plugins install themselves through thewebviz_config_plugins
entrypoints group. - #325 - Removed support for
ad-hoc plugins as this is costly to maintain. Also, the
module.PluginName
notation in configuration files can then in future be used fo distinguish between multiple plugin packages using the same plugin name. - #330 - Pie chart plot type now available in table plotter.
- #325 - Support plugin projects that use different name for top level package and distribution name.
- #230 - Instead of using
dcc.Tabs
to give the impression of a "multipage app", webviz now usesdcc.Link
anddcc.Location
. This has two main advantages: Big applications can have significantly faster loading time, as only callbacks on selected "page" fire initially. In addition, the user can navigate with forward/backward buttons in browser, as well as getting an URL they can share with others in order to point them to the correct "page". Plugin authors should check that persistence is set tosession
on Dash components they use if they want user selections to remain across "page" changes. In order to get more easily typed URLs, runtime generated page IDs now use-
instead of_
for spaces.
- #321 - Allowed for
blob:
inimg-src
CSP such thatplotly.js
"Download to png" works properly.
- #311 - Automatically add a comment
in generated application regarding which Python executable (
sys.executable
) was used when building a portable application. - #310 - Added
RuntimeWarning
which appears if@webvizstore
decorated functions are given argument values of typepandas.DataFrame
orpandas.Series
(Which are known to not have__repr__
functions useful for hashing).
- #313 - Added
min-width
to menu CSS such that it does not collapse on wide content. In addition, make sure menuwidth
is only specified on screen widths wide enough to be above the DashTabs
provided breakpoint at800px
.
- #283 - Auto-generated Webviz plugin documentation
now has search functionality (using
docsify
full text search). - #278 - Plugin authors can now use Dash inline callbacks
(i.e.
app.clientside_callback(...)
) without being in conflict with the strict CSP rules enforced bywebviz-config
(inline script hashes are added automatically).
- #294 - Plugin authors can now define file type to download
(including specifying MIME type). Before only
.zip
archives were supported. - #281 - Now uses
importlib
instead ofpkg_resources
for detecting plugin entry points and package versions. - #306 - Now runs
WEBVIZ_ASSETS.make_portable
beforeWEBVIZ_STORE.build_store
when building portables, as it usually takes shorter time, and therefore will give feedback quicker if something is wrong.
- #308 - Fixed
UnclosedFile
andResource
warnings, which would appear if developer enabled e.g.export PYTHONWARNINGS=default
. Also, Webviz now gracefully exits on CTRL+C (KeyboardInterrupt
) instead of giving (unnecessary) traceback to the user. - #295 - Menu width is now specified. This both ensures
the menu does not collapse if plugin content is wide, as well as not too wide itself if page titles are long
(instead page titles in the menu are wrapped). Also added
<meta name="viewport" content="width=device-width, initial-scale=1">
for better experience on mobiles.
- #279 - Added scrollbar to menu (when larger than screen size).
- #269 - Added an optional argument
screenshot_filename
toWebvizPluginABC
. Can be used to let plugin authors specify filename used when screenshots of the plugin are saved. - #275 - Indented docstrings are now supported by
webviz docs
.
- #265 - Added support to automatically create JSON/YAML schema based on installed plugins to be used in e.g. VSCode with the Red Hat YAML extension for VSCode. Create a schema by running
webviz schema
.