diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 157f41fce..8d3780aad 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.33.4 +current_version = 1.33.5 commit = True tag = False tag_name = {new_version} @@ -30,11 +30,11 @@ search = {current_version} replace = {new_version} [bumpversion:file:RELEASE.txt] -search = {current_version} 2023-10-02T13:49:23Z +search = {current_version} 2023-10-02T15:13:02Z replace = {new_version} {utcnow:%Y-%m-%dT%H:%M:%SZ} [bumpversion:part:releaseTime] -values = 2023-10-02T13:49:23Z +values = 2023-10-02T15:13:02Z [bumpversion:file(version):birdhouse/config/canarie-api/docker_configuration.py.template] search = 'version': '{current_version}' diff --git a/CHANGES.md b/CHANGES.md index ab179378b..dbdb85281 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -17,6 +17,13 @@ [//]: # (list changes here, using '-' for each new entry, remove this when items are added) +[1.33.5](https://github.com/bird-house/birdhouse-deploy/tree/1.33.5) (2023-10-02) +------------------------------------------------------------------------------------------------------------------ + +## CHANGES + +- Adding a description for the STAC service that will be served at the `/services` endpoint + [1.33.4](https://github.com/bird-house/birdhouse-deploy/tree/1.33.4) (2023-10-02) ------------------------------------------------------------------------------------------------------------------ diff --git a/Makefile b/Makefile index 3363e16c9..4f4991967 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Generic variables override SHELL := bash override APP_NAME := birdhouse-deploy -override APP_VERSION := 1.33.4 +override APP_VERSION := 1.33.5 # utility to remove comments after value of an option variable override clean_opt = $(shell echo "$(1)" | $(_SED) -r -e "s/[ '$'\t'']+$$//g") diff --git a/README.rst b/README.rst index 5d26f86be..3e3c65e5a 100644 --- a/README.rst +++ b/README.rst @@ -14,13 +14,13 @@ for a full-fledged production platform. * - releases - | |latest-version| |commits-since| -.. |commits-since| image:: https://img.shields.io/github/commits-since/bird-house/birdhouse-deploy/1.33.4.svg +.. |commits-since| image:: https://img.shields.io/github/commits-since/bird-house/birdhouse-deploy/1.33.5.svg :alt: Commits since latest release - :target: https://github.com/bird-house/birdhouse-deploy/compare/1.33.4...master + :target: https://github.com/bird-house/birdhouse-deploy/compare/1.33.5...master -.. |latest-version| image:: https://img.shields.io/badge/tag-1.33.4-blue.svg?style=flat +.. |latest-version| image:: https://img.shields.io/badge/tag-1.33.5-blue.svg?style=flat :alt: Latest Tag - :target: https://github.com/bird-house/birdhouse-deploy/tree/1.33.4 + :target: https://github.com/bird-house/birdhouse-deploy/tree/1.33.5 .. |readthedocs| image:: https://readthedocs.org/projects/birdhouse-deploy/badge/?version=latest :alt: ReadTheDocs Build Status (latest version) diff --git a/RELEASE.txt b/RELEASE.txt index 61188eb14..3364640a1 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -1 +1 @@ -1.33.4 2023-10-02T13:49:23Z +1.33.5 2023-10-02T15:13:02Z diff --git a/birdhouse/components/stac/.gitignore b/birdhouse/components/stac/.gitignore index d4f1fa13d..a5127636d 100644 --- a/birdhouse/components/stac/.gitignore +++ b/birdhouse/components/stac/.gitignore @@ -1,3 +1,4 @@ config/magpie/config.yml config/proxy/conf.extra-service.d/stac.conf config/canarie-api/canarie_api_monitoring.py +service-config.json diff --git a/birdhouse/components/stac/service-config.json.template b/birdhouse/components/stac/service-config.json.template new file mode 100644 index 000000000..45297ea3a --- /dev/null +++ b/birdhouse/components/stac/service-config.json.template @@ -0,0 +1,54 @@ +{ + "$schema": "https://raw.githubusercontent.com/DACCS-Climate/Marble-node-registry/main/node_registry.schema.json#service", + "name": "stac", + "keywords": [ + "catalog" + ], + "description": "Searchable spatiotemporal metadata describing climate and Earth observation datasets.", + "links": [ + { + "rel": "service", + "type": "application/json", + "href": "https://${PAVICS_FQDN_PUBLIC}/stac/" + }, + { + "rel": "service-doc", + "type": "text/html", + "href": "https://github.com/radiantearth/stac-api-spec/tree/v1.0.0" + }, + { + "rel": "service-desc", + "type": "application/yaml", + "href": "https://raw.githubusercontent.com/radiantearth/stac-api-spec/main/core/openapi.yaml" + }, + { + "rel": "alternate", + "type": "text/html", + "href": "https://${PAVICS_FQDN_PUBLIC}/stac-browser/" + } + ] +}, { + "$schema": "https://raw.githubusercontent.com/DACCS-Climate/Marble-node-registry/main/node_registry.schema.json#service", + "name": "stac-browser", + "keywords": [ + "catalog" + ], + "description": "A web interface to browse the STAC catalogs.", + "links": [ + { + "rel": "service", + "type": "text/html", + "href": "https://${PAVICS_FQDN_PUBLIC}/stac-browser/" + }, + { + "rel": "service-doc", + "type": "text/html", + "href": "https://github.com/radiantearth/stac-browser" + }, + { + "rel": "alternate", + "type": "application/json", + "href": "https://${PAVICS_FQDN_PUBLIC}/stac/" + } + ] +} diff --git a/birdhouse/config/canarie-api/docker_configuration.py.template b/birdhouse/config/canarie-api/docker_configuration.py.template index bb7347bb0..0002bc2fe 100644 --- a/birdhouse/config/canarie-api/docker_configuration.py.template +++ b/birdhouse/config/canarie-api/docker_configuration.py.template @@ -109,8 +109,8 @@ SERVICES = { # NOTE: # Below version and release time auto-managed by 'make VERSION=x.y.z bump'. # Do NOT modify it manually. See 'Tagging policy' in 'birdhouse/README.rst'. - 'version': '1.33.4', - 'releaseTime': '2023-10-02T13:49:23Z', + 'version': '1.33.5', + 'releaseTime': '2023-10-02T15:13:02Z', 'institution': 'Ouranos', 'researchSubject': 'Climatology', 'supportEmail': '${SUPPORT_EMAIL}', @@ -142,8 +142,8 @@ PLATFORMS = { # NOTE: # Below version and release time auto-managed by 'make VERSION=x.y.z bump'. # Do NOT modify it manually. See 'Tagging policy' in 'birdhouse/README.rst'. - 'version': '1.33.4', - 'releaseTime': '2023-10-02T13:49:23Z', + 'version': '1.33.5', + 'releaseTime': '2023-10-02T15:13:02Z', 'institution': 'Ouranos', 'researchSubject': 'Climatology', 'supportEmail': '${SUPPORT_EMAIL}', diff --git a/docs/source/conf.py b/docs/source/conf.py index ae3876418..bf8cead3b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -69,9 +69,9 @@ # built documents. # # The short X.Y version. -version = '1.33.4' +version = '1.33.5' # The full version, including alpha/beta/rc tags. -release = '1.33.4' +release = '1.33.5' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/tests/test_deployment.py b/tests/test_deployment.py index 52b028d41..926fc6ef2 100644 --- a/tests/test_deployment.py +++ b/tests/test_deployment.py @@ -5,7 +5,6 @@ import jsonschema import pytest -import requests COMPONENT_LOCATIONS = ("components", "optional-components", "config") TEMPLATE_SUBSTITUTIONS = { @@ -43,11 +42,18 @@ def test_service_config_name_same_as_dirname(self, component_paths): service_config_file = os.path.join(path, "service-config.json.template") if os.path.isfile(service_config_file): with open(service_config_file) as f: - service_config = json.loads(Template(f.read()).safe_substitute(TEMPLATE_SUBSTITUTIONS)) - config_name = service_config.get("name") - path_name = os.path.basename(path) - if config_name != path_name: - invalid_names.append((config_name, path_name)) + config_info = Template(f.read()).safe_substitute(TEMPLATE_SUBSTITUTIONS) + service_configs = json.loads("[{}]".format(config_info)) + invalid_config_names = [] + for service_config in service_configs: + config_name = service_config.get("name") + path_name = os.path.basename(path) + if config_name == path_name: + # If at least one service_config in the file contains a matching name, that's ok + break + invalid_config_names.append((config_name, path_name)) + else: + invalid_names.extend(invalid_config_names) assert not invalid_names, "service names in service-config.json.template should match the directory name" @pytest.mark.online @@ -58,9 +64,11 @@ def test_service_config_valid(self, component_paths, services_config_schema): service_config_file = os.path.join(path, "service-config.json.template") if os.path.isfile(service_config_file): with open(service_config_file) as f: - service_config = json.loads(Template(f.read()).safe_substitute(TEMPLATE_SUBSTITUTIONS)) - try: - jsonschema.validate(instance=service_config, schema=services_config_schema) - except jsonschema.exceptions.ValidationError as e: - invalid_schemas.append(f"{os.path.basename(path)} contains invalid service configuration: {e}") + config_info = Template(f.read()).safe_substitute(TEMPLATE_SUBSTITUTIONS) + service_configs = json.loads("[{}]".format(config_info)) + for service_config in service_configs: + try: + jsonschema.validate(instance=service_config, schema=services_config_schema) + except jsonschema.exceptions.ValidationError as e: + invalid_schemas.append(f"{os.path.basename(path)} contains invalid service configuration: {e}") assert not invalid_schemas, "\n".join(invalid_schemas)