This is an automated email from the ASF dual-hosted git repository. asorokoumov pushed a commit to branch pypi-disclaimer in repository https://gitbox.apache.org/repos/asf/otava.git
commit d11cd2c21f029b66c259f7c030b9decd54163d0a Author: Alex Sorokoumov <[email protected]> AuthorDate: Tue Dec 9 22:38:18 2025 -0800 PyPI Project description contains ASF incubating disclaimer --- hatch_build.py | 42 ++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 4 +++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/hatch_build.py b/hatch_build.py new file mode 100644 index 0000000..3dbbe3c --- /dev/null +++ b/hatch_build.py @@ -0,0 +1,42 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +from pathlib import Path +from hatchling.metadata.plugin.interface import MetadataHookInterface + + +class CustomMetadataHook(MetadataHookInterface): + """Dynamically generate PyPI README by combining README.md and DISCLAIMER.""" + + def update(self, metadata): + """Called during build to update package metadata.""" + # Read README.md + readme_path = Path(self.root) / "README.md" + readme_content = readme_path.read_text(encoding="utf-8") + + # Read DISCLAIMER + disclaimer_path = Path(self.root) / "DISCLAIMER" + disclaimer_content = disclaimer_path.read_text(encoding="utf-8") + + # Combine them + combined_readme = f"{readme_content}\n## Disclaimer\n\n{disclaimer_content}" + + # Update metadata + metadata["readme"] = { + "content-type": "text/markdown", + "text": combined_readme + } diff --git a/pyproject.toml b/pyproject.toml index 71a4e3e..e8fe0e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ name = "apache-otava" version = "1.0.0" description = "Apache Otava (Incubating): Change Detection for Continuous Performance Engineering" -readme = "README.md" +dynamic = ["readme"] requires-python = ">=3.10,<3.15" license = { text = "Apache-2.0" } authors = [ @@ -84,6 +84,8 @@ Repository = "https://github.com/apache/otava" requires = ["hatchling"] build-backend = "hatchling.build" +[tool.hatch.metadata.hooks.custom] + [tool.hatch.build.targets.wheel] packages = ["otava"]
