3
0
Fork 0

Compare commits

..

2 commits

Author SHA1 Message Date
77c9d00eb9 bump: version 0.27.2 → 0.27.3 2026-02-07 09:29:33 -06:00
5fdba539a0 fix: prefer new setting name for buefy_css liburl
old setting name is still supported for now, with deprecation
warnings.

this change was necessary due to ambiguity of the buefy setting, when
buefy.css setting was set
2026-02-07 09:28:37 -06:00
6 changed files with 136 additions and 9 deletions

View file

@ -5,6 +5,12 @@ All notable changes to wuttaweb will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## v0.27.3 (2026-02-07)
### Fix
- prefer new setting name for buefy_css liburl
## v0.27.2 (2026-02-04) ## v0.27.2 (2026-02-04)
### Fix ### Fix

View file

@ -6,7 +6,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "WuttaWeb" name = "WuttaWeb"
version = "0.27.2" version = "0.27.3"
description = "Web App for Wutta Framework" description = "Web App for Wutta Framework"
readme = "README.md" readme = "README.md"
authors = [{name = "Lance Edgar", email = "lance@wuttaproject.org"}] authors = [{name = "Lance Edgar", email = "lance@wuttaproject.org"}]

View file

@ -113,7 +113,7 @@
</%def> </%def>
<%def name="buefy_styles()"> <%def name="buefy_styles()">
${h.stylesheet_link(h.get_liburl(request, 'buefy.css'))} ${h.stylesheet_link(h.get_liburl(request, 'buefy_css'))}
</%def> </%def>
<%def name="base_styles()"> <%def name="base_styles()">

View file

@ -188,6 +188,14 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
""" """
config = request.wutta_config config = request.wutta_config
if key == "buefy.css":
warnings.warn(
"libver key 'buefy.css' is deprecated; please use 'buefy_css' instead",
DeprecationWarning,
stacklevel=2,
)
key = "buefy_css"
# nb. we prefer a setting to be named like: wuttaweb.libver.vue # nb. we prefer a setting to be named like: wuttaweb.libver.vue
# but for back-compat this also can work: tailbone.libver.vue # but for back-compat this also can work: tailbone.libver.vue
# and for more back-compat this can work: wuttaweb.vue_version # and for more back-compat this can work: wuttaweb.vue_version
@ -200,6 +208,17 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
if version: if version:
return version return version
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get("wuttaweb.libver.buefy.css")
if version:
warnings.warn(
"config for wuttaweb.libver.buefy.css is deprecated; "
"please set wuttaweb.libver.buefy_css instead",
DeprecationWarning,
)
return version
# fallback to caller-specified prefix # fallback to caller-specified prefix
if prefix != "wuttaweb": if prefix != "wuttaweb":
version = config.get(f"{prefix}.libver.{key}") version = config.get(f"{prefix}.libver.{key}")
@ -211,6 +230,17 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
) )
return version return version
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get(f"{prefix}.libver.buefy.css")
if version:
warnings.warn(
f"config for {prefix}.libver.buefy.css is deprecated; "
"please set wuttaweb.libver.buefy_css instead",
DeprecationWarning,
)
return version
if key == "buefy": if key == "buefy":
if not default_only: if not default_only:
# nb. old/legacy setting # nb. old/legacy setting
@ -225,7 +255,7 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
if not configured_only: if not configured_only:
return "0.9.25" return "0.9.25"
elif key == "buefy.css": elif key == "buefy_css":
# nb. this always returns something # nb. this always returns something
return get_libver( return get_libver(
request, "buefy", default_only=default_only, configured_only=configured_only request, "buefy", default_only=default_only, configured_only=configured_only
@ -280,13 +310,13 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
return None return None
def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches def get_liburl(
request, request,
key, key,
configured_only=False, configured_only=False,
default_only=False, default_only=False,
prefix="wuttaweb", prefix="wuttaweb",
): ): # pylint: disable=too-many-return-statements,too-many-branches,too-many-statements
""" """
Return the appropriate URL for the web resource library identified Return the appropriate URL for the web resource library identified
by ``key``. by ``key``.
@ -321,7 +351,7 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
* ``vue`` * ``vue``
* ``vue_resource`` * ``vue_resource``
* ``buefy`` * ``buefy``
* ``buefy.css`` * ``buefy_css``
* ``fontawesome`` * ``fontawesome``
Vue 3 + Oruga Vue 3 + Oruga
@ -353,6 +383,14 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
""" """
config = request.wutta_config config = request.wutta_config
if key == "buefy.css":
warnings.warn(
"liburl key 'buefy.css' is deprecated; please use 'buefy_css' instead",
DeprecationWarning,
stacklevel=2,
)
key = "buefy_css"
if not default_only: if not default_only:
# nb. new/preferred setting # nb. new/preferred setting
@ -360,6 +398,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
if url: if url:
return url return url
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get("wuttaweb.liburl.buefy.css")
if version:
warnings.warn(
"config for wuttaweb.liburl.buefy.css is deprecated; "
"please set wuttaweb.liburl.buefy_css instead",
DeprecationWarning,
)
return version
# fallback to caller-specified prefix # fallback to caller-specified prefix
url = config.get(f"{prefix}.liburl.{key}") url = config.get(f"{prefix}.liburl.{key}")
if url: if url:
@ -370,6 +419,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
) )
return url return url
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get(f"{prefix}.liburl.buefy.css")
if version:
warnings.warn(
f"config for {prefix}.liburl.buefy.css is deprecated; "
"please set wuttaweb.liburl.buefy_css instead",
DeprecationWarning,
)
return version
if configured_only: if configured_only:
return None return None
@ -400,7 +460,7 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
return liburl + static.buefy_js.relpath return liburl + static.buefy_js.relpath
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.js" return f"https://unpkg.com/buefy@{version}/dist/buefy.min.js"
if key == "buefy.css": if key == "buefy_css":
if static and hasattr(static, "buefy_css"): if static and hasattr(static, "buefy_css"):
return liburl + static.buefy_css.relpath return liburl + static.buefy_css.relpath
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.css" return f"https://unpkg.com/buefy@{version}/dist/buefy.min.css"

View file

@ -115,7 +115,7 @@ class AppInfoView(MasterView): # pylint: disable=abstract-method
("vue", "(Vue2) Vue"), ("vue", "(Vue2) Vue"),
("vue_resource", "(Vue2) vue-resource"), ("vue_resource", "(Vue2) vue-resource"),
("buefy", "(Vue2) Buefy"), ("buefy", "(Vue2) Buefy"),
("buefy.css", "(Vue2) Buefy CSS"), ("buefy_css", "(Vue2) Buefy CSS"),
("fontawesome", "(Vue2) FontAwesome"), ("fontawesome", "(Vue2) FontAwesome"),
("bb_vue", "(Vue3) vue"), ("bb_vue", "(Vue3) vue"),
("bb_oruga", "(Vue3) @oruga-ui/oruga-next"), ("bb_oruga", "(Vue3) @oruga-ui/oruga-next"),

View file

@ -95,27 +95,73 @@ class TestGetLibVer(TestCase):
self.assertEqual(version, "0.9.25") self.assertEqual(version, "0.9.25")
def test_buefy_css_default(self): def test_buefy_css_default(self):
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.25")
version = mod.get_libver(self.request, "buefy.css") version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.25") self.assertEqual(version, "0.9.25")
def test_buefy_css_custom_old(self): def test_buefy_css_custom_old(self):
# nb. this uses same setting as buefy (js) # nb. this uses same setting as buefy (js)
self.config.setdefault("wuttaweb.buefy_version", "0.9.29") self.config.setdefault("wuttaweb.buefy_version", "0.9.29")
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css") version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.29") self.assertEqual(version, "0.9.29")
def test_buefy_css_custom_new(self): def test_buefy_css_custom_new(self):
# nb. this uses same setting as buefy (js) # nb. this uses same setting as buefy (js)
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29") self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css") version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.29") self.assertEqual(version, "0.9.29")
def test_buefy_css_configured_only(self): def test_buefy_css_configured_only(self):
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertIsNone(version)
version = mod.get_libver(self.request, "buefy.css", configured_only=True) version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertIsNone(version) self.assertIsNone(version)
# legacy prefix + deprecated setting name
self.config.setdefault("tailbone.libver.buefy.css", "0.9.23")
version = mod.get_libver(
self.request, "buefy_css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.23")
version = mod.get_libver(
self.request, "buefy.css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.23")
# legacy prefix + preferred setting name
self.config.setdefault("tailbone.libver.buefy_css", "0.9.22")
version = mod.get_libver(
self.request, "buefy_css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.22")
version = mod.get_libver(
self.request, "buefy.css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.22")
# deprecated setting name
self.config.setdefault("wuttaweb.libver.buefy.css", "0.9.29")
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertEqual(version, "0.9.29")
# preferred setting name
self.config.setdefault("wuttaweb.libver.buefy_css", "0.9.27")
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertEqual(version, "0.9.27")
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertEqual(version, "0.9.27")
def test_buefy_css_default_only(self): def test_buefy_css_default_only(self):
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29") self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
version = mod.get_libver(self.request, "buefy_css", default_only=True)
self.assertEqual(version, "0.9.25")
version = mod.get_libver(self.request, "buefy.css", default_only=True) version = mod.get_libver(self.request, "buefy.css", default_only=True)
self.assertEqual(version, "0.9.25") self.assertEqual(version, "0.9.25")
@ -291,16 +337,31 @@ class TestGetLibUrl(TestCase):
self.assertEqual(url, "/wutta/fanstatic/buefy.js") self.assertEqual(url, "/wutta/fanstatic/buefy.js")
def test_buefy_css_default(self): def test_buefy_css_default(self):
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
url = mod.get_liburl(self.request, "buefy.css") url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css") self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
def test_buefy_css_custom(self): def test_buefy_css_custom(self):
self.config.setdefault("wuttaweb.liburl.buefy.css", "/lib/buefy.css")
# deprecated setting name
self.config.setdefault("wuttaweb.liburl.buefy.css", "/lib/deprecated-buefy.css")
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/lib/deprecated-buefy.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/lib/deprecated-buefy.css")
# preferred setting name
self.config.setdefault("wuttaweb.liburl.buefy_css", "/lib/buefy.css")
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/lib/buefy.css")
url = mod.get_liburl(self.request, "buefy.css") url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/lib/buefy.css") self.assertEqual(url, "/lib/buefy.css")
def test_buefy_css_fanstatic(self): def test_buefy_css_fanstatic(self):
self.setup_fanstatic() self.setup_fanstatic()
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/wutta/fanstatic/buefy.css")
url = mod.get_liburl(self.request, "buefy.css") url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/wutta/fanstatic/buefy.css") self.assertEqual(url, "/wutta/fanstatic/buefy.css")