Skip to content

Commit 12f88df

Browse files
rustyconoverclaude
andcommitted
fix(vgi-fixtures): bundle LICENSE in the wheel + add license classifier
The companion package read its license text from ../../LICENSE (populating the License: metadata field) but the ../.. path is outside the package root, so hatchling could not ship the file into the wheel's dist-info/licenses/ — installed vgi-fixtures had no LICENSE file. It also declared no classifiers, so the License :: Other/Proprietary License classifier was missing. - Add a local copy of the repo-root LICENSE under packages/vgi-fixtures/ and point license = { file = 'LICENSE' } at it. - Add the full classifier set, mirroring the core vgi-python package. Verified: the built wheel now ships dist-info/licenses/LICENSE and METADATA carries License-File + the License classifier, matching vgi-python. twine check passes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent fdd5df0 commit 12f88df

2 files changed

Lines changed: 151 additions & 1 deletion

File tree

packages/vgi-fixtures/LICENSE

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
Query Farm Source-Available License, Version 1.0
2+
3+
Copyright (c) 2025, 2026 Query Farm LLC. All rights reserved.
4+
5+
## 1. Definitions
6+
7+
"Licensor" means Query Farm LLC (http://query.farm, hello@query.farm) and its
8+
affiliates under common control.
9+
10+
"VGI" means the Vector Gateway Interface, the DuckDB extension technology developed
11+
by the Licensor, also referred to by the Licensor as its "Hyperfederation" database
12+
technology.
13+
14+
"Licensed Work" means VGI, including its source code, object code, and any
15+
documentation distributed with it, in each version made available by the Licensor
16+
under this License.
17+
18+
"You" (or "Your") means the individual or legal entity exercising rights under this
19+
License, together with all affiliates under common control with that entity.
20+
21+
"Production Use" means any use of the Licensed Work other than for development,
22+
testing, evaluation, experimentation, or other non-production purposes.
23+
24+
"Hyperfederation Services" means services relating to the federation, gateway,
25+
integration, querying, or interoperation of data sources using VGI or
26+
functionally equivalent technology, including services that expose, broker, or
27+
provide access to such federated or gateway capabilities.
28+
29+
"Commercial Marketplace" means any platform, exchange, or intermediary service,
30+
whether or not operated for a fee, that connects providers and consumers of
31+
Hyperfederation Services, or that facilitates the offering, discovery, exchange,
32+
sale, or licensing of Hyperfederation Services among third parties.
33+
34+
"Competing Offering" means a product or service that You make available to third
35+
parties, on a paid basis (including through paid support, subscription, or hosting
36+
arrangements), whose capabilities significantly overlap with those of the Licensor's
37+
version(s) of the Licensed Work.
38+
39+
## 2. Grant of Rights
40+
41+
Subject to the terms and limitations of this License, the Licensor grants You a
42+
worldwide, royalty-free, non-exclusive license to:
43+
44+
(a) use, copy, and run the Licensed Work for any non-production purpose;
45+
46+
(b) modify the Licensed Work and create derivative works of it;
47+
48+
(c) redistribute the Licensed Work and Your derivative works, provided You comply
49+
with Section 5; and
50+
51+
(d) make Production Use of the Licensed Work, except where such use is restricted by
52+
Section 3 or reserved to the Licensor by Section 4.
53+
54+
## 3. Production Use Conditions
55+
56+
The grant of Production Use in Section 2(d) does not extend to, and You may not
57+
without a separate commercial license from the Licensor:
58+
59+
(a) provide a Competing Offering to third parties; or
60+
61+
(b) offer the Licensed Work, or any derivative work of it, to third parties on a
62+
hosted, embedded, or as-a-service basis where doing so competes with the Licensor's
63+
commercial interests in the Licensed Work.
64+
65+
"Embedded" includes incorporating the source or object code of the Licensed Work
66+
into a Competing Offering, and packaging a Competing Offering such that the Licensed
67+
Work must be accessed or downloaded for that offering to function.
68+
69+
Hosting or using the Licensed Work for Your own internal purposes is not a Competing
70+
Offering and is permitted, including across Your affiliates under common control.
71+
72+
## 4. Reserved Rights
73+
74+
Notwithstanding any other provision of this License, the Licensor reserves to itself
75+
the exclusive right to build, operate, offer, or authorize a Commercial Marketplace
76+
that incorporates, integrates, is built upon, or otherwise uses the Licensed Work.
77+
78+
This License grants You no right to construct, operate, or enable a Commercial
79+
Marketplace using the Licensed Work, whether on a commercial or non-commercial basis,
80+
and any such use requires a separate written agreement with the Licensor.
81+
82+
## 5. Redistribution
83+
84+
If You redistribute the Licensed Work or any derivative work of it, in original or
85+
modified form, You must:
86+
87+
(a) include a complete, unmodified copy of this License with each copy; and
88+
89+
(b) cause any recipient to receive the Licensed Work subject to the terms of this
90+
License.
91+
92+
The conditions in Sections 3 and 4 apply to every recipient of the Licensed Work,
93+
whether received directly from the Licensor or through a third party.
94+
95+
## 6. Conversion to Open Source
96+
97+
For each version of the Licensed Work, on the tenth anniversary of the date the
98+
Licensor first made that version publicly available (the "Change Date" for that
99+
version), the Licensor additionally grants You the right to use that version under
100+
the terms of the Apache License, Version 2.0, and on and after that version's Change
101+
Date the restrictions in Sections 3 and 4 no longer apply to that version.
102+
103+
This License applies separately to each version of the Licensed Work, and the Change
104+
Date may differ between versions.
105+
106+
## 7. Commercial Licensing
107+
108+
If Your intended use is not permitted under this License, You may obtain a separate
109+
commercial license from the Licensor by contacting hello@query.farm. Absent such a
110+
license, You must refrain from the restricted use.
111+
112+
## 8. Trademarks
113+
114+
This License does not grant You any right to use the names, trademarks, service
115+
marks, or logos of the Licensor, including "Vector Gateway Interface," "VGI," and
116+
"Hyperfederation," except as required for reasonable and customary use in describing
117+
the origin of the Licensed Work.
118+
119+
## 9. Termination
120+
121+
Any use of the Licensed Work in violation of this License automatically terminates
122+
Your rights under this License for the current and all other versions of the Licensed
123+
Work. Your rights may be reinstated only by a writing signed by the Licensor.
124+
125+
## 10. Disclaimer of Warranty and Limitation of Liability
126+
127+
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
128+
AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EXPRESS OR IMPLIED,
129+
INCLUDING WITHOUT LIMITATION ANY WARRANTIES OR CONDITIONS OF MERCHANTABILITY, FITNESS
130+
FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE.
131+
132+
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL THE LICENSOR BE
133+
LIABLE TO YOU FOR ANY DAMAGES ARISING OUT OF OR RELATING TO THIS LICENSE OR THE USE
134+
OF THE LICENSED WORK, WHETHER IN CONTRACT, TORT, OR OTHERWISE.

packages/vgi-fixtures/pyproject.toml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,24 @@ name = "vgi-fixtures"
1111
version = "0.8.0"
1212
description = "Example/test VGI worker modules and entry points (not for production use)"
1313
readme = "README.md"
14-
license = { file = "../../LICENSE" }
14+
# Local copy of the repo-root LICENSE (kept in sync): the build can't reach
15+
# ../../LICENSE to ship it into the wheel's dist-info/licenses/.
16+
license = { file = "LICENSE" }
1517
requires-python = ">=3.13"
18+
classifiers = [
19+
"License :: Other/Proprietary License",
20+
"Development Status :: 4 - Beta",
21+
"Intended Audience :: Developers",
22+
"Programming Language :: Python :: 3",
23+
"Programming Language :: Python :: 3 :: Only",
24+
"Programming Language :: Python :: 3.13",
25+
"Programming Language :: Python :: 3.14",
26+
"Topic :: Database",
27+
"Topic :: Database :: Database Engines/Servers",
28+
"Topic :: Software Development :: Libraries :: Python Modules",
29+
"Operating System :: OS Independent",
30+
"Typing :: Typed",
31+
]
1632
# The fixture modules import numpy (test-fixtures) and sqlglot (transactor, used
1733
# by the writable workers); test-fixtures-writable pulls both transitively.
1834
# The fixture worker also builds statistics fixtures at import time, which

0 commit comments

Comments
 (0)