diff --git a/CHANGELOG.md b/CHANGELOG.md index 03f2d8c6..1ea5d93f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ This release ships three things at once: for the full table, methodology, and caveats. 2. **Rename from `voyager-index` to `colsearch`.** PyPI package is now `colsearch` (`pip install colsearch`), the GitHub repository is - `ddickmann/colsearch` (the old `ddickmann/voyager-index` URL + `latenceainew/colsearch` (the old `ddickmann/voyager-index` URL auto-redirects), and the on-disk Python package is `colsearch` with an importable `colsearch-server` entry point. The project is repositioned as the **production category for late-interaction retrieval** — diff --git a/LICENSE b/LICENSE index fe463e0f..d6456956 100644 --- a/LICENSE +++ b/LICENSE @@ -1,408 +1,202 @@ -Attribution-NonCommercial 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution-NonCommercial 4.0 International Public -License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-NonCommercial 4.0 International Public License ("Public -License"). To the extent this Public License may be interpreted as a -contract, You are granted the Licensed Rights in consideration of Your -acceptance of these terms and conditions, and the Licensor grants You -such rights in consideration of benefits the Licensor receives from -making the Licensed Material available under these terms and -conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - i. NonCommercial means not primarily intended for or directed towards - commercial advantage or monetary compensation. For purposes of - this Public License, the exchange of the Licensed Material for - other material subject to Copyright and Similar Rights by digital - file-sharing or similar means is NonCommercial provided there is - no payment of monetary compensation in connection with the - exchange. - - j. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - k. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - l. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part, for NonCommercial purposes only; and - - b. produce, reproduce, and Share Adapted Material for - NonCommercial purposes only. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties, including when - the Licensed Material is used other than for NonCommercial - purposes. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database for NonCommercial purposes - only; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - -======================================================================= - -Creative Commons is not a party to its public -licenses. Notwithstanding, Creative Commons may elect to apply one of -its public licenses to material it publishes and in those instances -will be considered the “Licensor.” The text of the Creative Commons -public licenses is dedicated to the public domain under the CC0 Public -Domain Dedication. Except for the limited purpose of indicating that -material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the -public licenses. - -Creative Commons may be contacted at creativecommons.org. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. diff --git a/LICENSING.md b/LICENSING.md index 2bcd5d1e..4f8c4038 100644 --- a/LICENSING.md +++ b/LICENSING.md @@ -2,72 +2,67 @@ ## Repository-Level License -This repository is licensed under the **Creative Commons Attribution-NonCommercial -4.0 International** license (SPDX: `CC-BY-NC-4.0`). See the root `LICENSE` file -for the full legal code. +This repository is licensed under the **Apache License 2.0** (SPDX: +`Apache-2.0`). See the root `LICENSE` file for the full legal text and the +root `NOTICE` file for the attribution notice. In plain English: -- You may **use, copy, modify, and redistribute** this code for **research, - evaluation, academic, personal, and other non-commercial** purposes, as long - as you provide attribution. -- You **may not** use this code, in whole or in part, for any **commercial or - revenue-generating purpose** (including, without limitation, selling it, - offering it as a hosted or managed service, or embedding it in a product or - service that you sell, license, or monetize) without first obtaining a - separate commercial license from the copyright holder. +- You may **use, copy, modify, redistribute, and sublicense** this code for + **any purpose, commercial or non-commercial**. +- You must **retain the license and notices** when you redistribute + (Apache-2.0 Section 4), and **mark any files you modify** as changed + (Section 4(b)). +- The license includes an **express patent grant** from contributors + (Section 3). -This summary is a convenience and does not replace the legal text in `LICENSE`. +This summary is a convenience and does not replace the legal text in +`LICENSE`. -## Explicit Exceptions And Boundaries +## License History -### Vendored Qdrant Subtree +- Versions `0.1.0` through `0.1.6`, published under the `voyager-index` + name, were licensed under Apache-2.0. +- Version `0.1.7` through the current published release were distributed + under `CC-BY-NC-4.0`. +- This source tree, and all releases made from it starting with the next + version, are licensed under Apache-2.0. +- Recipients of earlier releases retain them under the license they were + originally distributed with. + +## Vendored Qdrant Subtree - Path: `src/kernels/vendor/qdrant/` -- License: Apache-2.0 +- License: Apache-2.0 (upstream's own license) - Reason: this subtree is a vendored copy of upstream - [qdrant/qdrant](https://github.com/qdrant/qdrant) and cannot be relicensed. - Each file inside this directory remains under its original Apache-2.0 terms, - including any local modifications, which are clearly marked per Apache-2.0 + [qdrant/qdrant](https://github.com/qdrant/qdrant). Each file inside this + directory remains under its original upstream Apache-2.0 terms and + copyright, and any local modifications are clearly marked per Apache-2.0 Section 4(b). - Details: see `internal/contracts/QDRANT_VENDORING.md` and `src/kernels/vendor/qdrant/LICENSE`. -This is the **only** carveout. All other code in the repository — including -the native Rust crates under `src/kernels/` that depend on the vendored -subtree via Cargo path dependencies — is licensed under CC-BY-NC-4.0. -When those crates are built into binaries that embed Qdrant code, the -embedded Qdrant code continues to carry its original Apache-2.0 terms at the -file level. +The vendored subtree's license is consistent with the repository-level +license, but its upstream copyright and NOTICE obligations are separate and +travel with those files — including into the native Rust crates under +`src/kernels/` that depend on the vendored subtree via Cargo path +dependencies, and into any binaries built from them. ## Practical Rule -All code in this repository is `CC-BY-NC-4.0` unless it lives inside -`src/kernels/vendor/qdrant/`, in which case it is `Apache-2.0`. +All code in this repository is `Apache-2.0`. Files inside +`src/kernels/vendor/qdrant/` carry upstream Qdrant's Apache-2.0 license and +copyright rather than this repository's; honor their notices when +redistributing. ## Distribution Source distributions, wheels, and container images for this repository should include: -- `LICENSE` (CC BY-NC 4.0 legal code) +- `LICENSE` (Apache License 2.0 text) +- `NOTICE` - `LICENSING.md` (this file) - `THIRD_PARTY_NOTICES.md` - `src/kernels/vendor/qdrant/LICENSE` whenever the vendored Qdrant subtree or any derivative of it is included. - -## Commercial Use - -CC-BY-NC-4.0 forbids commercial use without a separate license. If you want -to use this code or any derivative of it commercially — for example, in a -revenue-generating product, in a hosted or managed service, in a paid -consulting engagement, or in any business activity that is primarily -intended for commercial advantage or monetary compensation — please contact -the copyright holder to discuss commercial licensing terms: - -- Email: `commercial@latence.ai` - -Pre-existing releases that were previously distributed under Apache-2.0 -remain available under Apache-2.0 to those who already obtained them; the -license change above applies to this source tree and to releases made from -it going forward. diff --git a/NOTICE b/NOTICE new file mode 100644 index 00000000..3d42520d --- /dev/null +++ b/NOTICE @@ -0,0 +1,2 @@ +colsearch +Copyright 2026 Dennis Dickmann diff --git a/README.md b/README.md index 1da3cf51..3a6a8e64 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # colsearch -[![CI](https://github.com/ddickmann/colsearch/actions/workflows/ci.yml/badge.svg)](https://github.com/ddickmann/colsearch/actions/workflows/ci.yml) +[![CI](https://github.com/latenceainew/colsearch/actions/workflows/ci.yml/badge.svg)](https://github.com/latenceainew/colsearch/actions/workflows/ci.yml) [![PyPI](https://img.shields.io/pypi/v/colsearch)](https://pypi.org/project/colsearch/) -[![License: CC BY-NC 4.0](https://img.shields.io/badge/license-CC%20BY--NC%204.0-lightgrey.svg)](LICENSE) +[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) **ColSearch — the production search category for late-interaction retrieval.** One node. CPU or GPU. MaxSim is the truth scorer. 1.58-bit ColBERT at 40 B/token. **3.12× FastPlaid on H100.** @@ -166,26 +166,10 @@ Three execution modes share the same collection format and API contract: **CPU e - Release process: [RELEASING.md](RELEASING.md) - Code of Conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) -## License & Commercial Use +## License -**This project is licensed under [Creative Commons Attribution-NonCommercial 4.0 International](LICENSE) (`CC-BY-NC-4.0`). It is free for non-commercial use only.** +**This project is licensed under the [Apache License 2.0](LICENSE) (`Apache-2.0`).** You may use, copy, modify, redistribute, and build on `colsearch` for any purpose — commercial or otherwise — under the terms of that license. -You may use, copy, modify, and redistribute `colsearch` for: +**Vendored Qdrant subtree.** The directory `src/kernels/vendor/qdrant/` is a vendored copy of upstream [qdrant/qdrant](https://github.com/qdrant/qdrant), which is also **Apache-2.0**; that license travels with those files into any derivative binaries. See [LICENSING.md](LICENSING.md) and [internal/contracts/QDRANT_VENDORING.md](internal/contracts/QDRANT_VENDORING.md) for details. -- research, evaluation, and benchmarking -- academic work and teaching -- personal projects and experimentation -- internal, non-revenue R&D inside an organization - -You may **not** use `colsearch`, in whole or in part, for any commercial or revenue-generating purpose without a separate commercial license. This explicitly includes: - -- selling, sublicensing, or relicensing the code -- offering it as a hosted, managed, or SaaS product -- embedding it in any product, service, or integration that you sell, license, or otherwise monetize -- using it to provide paid consulting deliverables built on top of it - -For commercial licensing inquiries, contact **commercial@latence.ai**. - -**Carveout — vendored Qdrant subtree.** The directory `src/kernels/vendor/qdrant/` is a vendored copy of upstream [qdrant/qdrant](https://github.com/qdrant/qdrant) and remains under its original **Apache-2.0** license; that license travels with those files into any derivative binaries. See [LICENSING.md](LICENSING.md) and [internal/contracts/QDRANT_VENDORING.md](internal/contracts/QDRANT_VENDORING.md) for the full carveout. - -**Prior releases.** Releases previously distributed under the `voyager-index` name (versions `0.1.0` through `0.1.6`, Apache-2.0) remain available to recipients who already obtained them under their original license. The CC-BY-NC-4.0 license above and the `colsearch` package name apply to this source tree and to all `0.1.7+` releases made from it going forward. +**License history.** Versions `0.1.0` through `0.1.6` (published under the `voyager-index` name) were Apache-2.0. Version `0.1.7` through the current published release were distributed under `CC-BY-NC-4.0`. This source tree, and all releases made from it starting with the next version, are Apache-2.0. Recipients of earlier releases retain them under the license they were originally distributed with. diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 8cc8ea1a..67e8a19e 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -1,7 +1,7 @@ # Third-Party Notices The umbrella `colsearch` repository is licensed under -**CC-BY-NC-4.0** (see `LICENSE` and `LICENSING.md`). It additionally bundles +**Apache-2.0** (see `LICENSE` and `LICENSING.md`). It additionally bundles third-party code that carries its own, separate license. Each such component and its license is documented below; those obligations apply independently of the repository-level license whenever the third-party files (or diff --git a/colsearch/_internal/inference/config.py b/colsearch/_internal/inference/config.py index a3cf3fc6..9ac8e195 100644 --- a/colsearch/_internal/inference/config.py +++ b/colsearch/_internal/inference/config.py @@ -5,7 +5,7 @@ Production-ready with validation and sensible defaults. Author: ColBERT Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import json diff --git a/colsearch/_internal/inference/engines/base.py b/colsearch/_internal/inference/engines/base.py index 6bcc4085..2d2422d3 100644 --- a/colsearch/_internal/inference/engines/base.py +++ b/colsearch/_internal/inference/engines/base.py @@ -5,7 +5,7 @@ This allows for unified handling of ColBERT, BM25, Neo4j, and future engines. Author: ColBERT Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ from abc import ABC, abstractmethod diff --git a/colsearch/_internal/inference/engines/bm25.py b/colsearch/_internal/inference/engines/bm25.py index d8cf7711..ac029eec 100644 --- a/colsearch/_internal/inference/engines/bm25.py +++ b/colsearch/_internal/inference/engines/bm25.py @@ -13,7 +13,7 @@ Reference: search-index-innovations/search_enhancements.md Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import bisect diff --git a/colsearch/_internal/inference/engines/colbert.py b/colsearch/_internal/inference/engines/colbert.py index d893fdf3..130330e0 100644 --- a/colsearch/_internal/inference/engines/colbert.py +++ b/colsearch/_internal/inference/engines/colbert.py @@ -13,7 +13,7 @@ multi-vector search with product quantization. Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import logging diff --git a/colsearch/_internal/inference/engines/colpali.py b/colsearch/_internal/inference/engines/colpali.py index 9d6d3711..54c3831f 100644 --- a/colsearch/_internal/inference/engines/colpali.py +++ b/colsearch/_internal/inference/engines/colpali.py @@ -26,7 +26,7 @@ visual_results = colpali_engine.search(query_visual_emb) Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import heapq diff --git a/colsearch/_internal/inference/engines/hnsw.py b/colsearch/_internal/inference/engines/hnsw.py index 1359410b..27055e37 100644 --- a/colsearch/_internal/inference/engines/hnsw.py +++ b/colsearch/_internal/inference/engines/hnsw.py @@ -13,7 +13,7 @@ Reference: search-index-innovations/search_enhancements.md Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import json diff --git a/colsearch/_internal/inference/engines/neo4j.py b/colsearch/_internal/inference/engines/neo4j.py index 3872bd4f..4096b06d 100644 --- a/colsearch/_internal/inference/engines/neo4j.py +++ b/colsearch/_internal/inference/engines/neo4j.py @@ -5,7 +5,7 @@ Leverages graph structure for semantic search and relationship traversal. Author: ColBERT Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import logging diff --git a/colsearch/_internal/inference/fusion/strategies.py b/colsearch/_internal/inference/fusion/strategies.py index c348c1e6..a7ba26c0 100644 --- a/colsearch/_internal/inference/fusion/strategies.py +++ b/colsearch/_internal/inference/fusion/strategies.py @@ -10,7 +10,7 @@ - Borda Count: Rank-based voting Author: ColBERT Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ from collections import defaultdict diff --git a/colsearch/_internal/inference/index_core/async_storage.py b/colsearch/_internal/inference/index_core/async_storage.py index be7300d9..a40ca2f1 100644 --- a/colsearch/_internal/inference/index_core/async_storage.py +++ b/colsearch/_internal/inference/index_core/async_storage.py @@ -13,7 +13,7 @@ - Scales to millions of documents Author: ColBERT Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import json diff --git a/colsearch/_internal/inference/index_core/index.py b/colsearch/_internal/inference/index_core/index.py index e32c29ed..6e2096b5 100644 --- a/colsearch/_internal/inference/index_core/index.py +++ b/colsearch/_internal/inference/index_core/index.py @@ -16,7 +16,7 @@ - Large (>50K docs): PLAID candidates → Triton reranking Author: ColBERT Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import json diff --git a/colsearch/_internal/inference/index_core/storage.py b/colsearch/_internal/inference/index_core/storage.py index 411237c0..4c37a5cc 100644 --- a/colsearch/_internal/inference/index_core/storage.py +++ b/colsearch/_internal/inference/index_core/storage.py @@ -13,7 +13,7 @@ - Lazy deletion with compaction Author: ColBERT Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import json diff --git a/colsearch/_internal/inference/quantization/__init__.py b/colsearch/_internal/inference/quantization/__init__.py index a8c93e61..e63df129 100644 --- a/colsearch/_internal/inference/quantization/__init__.py +++ b/colsearch/_internal/inference/quantization/__init__.py @@ -15,7 +15,7 @@ - Matryoshka (MRL): arXiv:2405.12497 Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ from .binary import ( diff --git a/colsearch/_internal/inference/quantization/binary.py b/colsearch/_internal/inference/quantization/binary.py index 7bfb15b3..a51337b5 100644 --- a/colsearch/_internal/inference/quantization/binary.py +++ b/colsearch/_internal/inference/quantization/binary.py @@ -10,7 +10,7 @@ Reference: arXiv:2409.09913 (Binary Embedding for Retrieval) Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import logging diff --git a/colsearch/_internal/inference/quantization/product.py b/colsearch/_internal/inference/quantization/product.py index dfa40985..90777f85 100644 --- a/colsearch/_internal/inference/quantization/product.py +++ b/colsearch/_internal/inference/quantization/product.py @@ -9,7 +9,7 @@ Reference: arXiv:2405.12497 (Product Quantization for Similarity Search) Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import logging diff --git a/colsearch/_internal/inference/quantization/scalar.py b/colsearch/_internal/inference/quantization/scalar.py index ed74ee57..425f0f8d 100644 --- a/colsearch/_internal/inference/quantization/scalar.py +++ b/colsearch/_internal/inference/quantization/scalar.py @@ -5,7 +5,7 @@ Provides good balance of compression and accuracy. Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import logging diff --git a/colsearch/_internal/server/main.py b/colsearch/_internal/server/main.py index c327ce38..93a92579 100644 --- a/colsearch/_internal/server/main.py +++ b/colsearch/_internal/server/main.py @@ -11,7 +11,7 @@ uvicorn colsearch.server:app --host 127.0.0.1 --port 8080 Author: Latence Team -License: CC-BY-NC-4.0 +License: Apache-2.0 """ import logging diff --git a/docs/benchmarks/fast-plaid-head-to-head.md b/docs/benchmarks/fast-plaid-head-to-head.md index 46e98060..8b51ef48 100644 --- a/docs/benchmarks/fast-plaid-head-to-head.md +++ b/docs/benchmarks/fast-plaid-head-to-head.md @@ -55,7 +55,7 @@ published numbers, a single H100 (80 GB or 40 GB SXM) is the target. ### Option A — local box with a CUDA GPU ```bash -git clone https://github.com/ddickmann/colsearch.git +git clone https://github.com/latenceainew/colsearch.git cd colsearch python -m venv .venv @@ -82,7 +82,7 @@ recipe that works: # - Vast.ai: any "pytorch/pytorch:2.4.0-cuda12.1-cudnn9-runtime" image # 2. SSH in, then: -git clone https://github.com/ddickmann/colsearch.git +git clone https://github.com/latenceainew/colsearch.git cd colsearch pip install --upgrade pip pip install -e ".[shard,gpu,native,dev]" diff --git a/docs/full_feature_cookbook.md b/docs/full_feature_cookbook.md index 46f65475..4a94f923 100644 --- a/docs/full_feature_cookbook.md +++ b/docs/full_feature_cookbook.md @@ -82,7 +82,7 @@ What the native extras add: ### Install from source (contributors) ```bash -git clone https://github.com/ddickmann/colsearch.git +git clone https://github.com/latenceainew/colsearch.git cd colsearch bash scripts/install_from_source.sh --cpu ``` diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 60c46ed5..c25ff176 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -46,7 +46,7 @@ Requires Python 3.10+ and a Rust toolchain only if you want to build the public native wheels from source. ```bash -git clone https://github.com/ddickmann/colsearch.git +git clone https://github.com/latenceainew/colsearch.git cd colsearch bash scripts/install_from_source.sh --cpu ``` diff --git a/mkdocs.yml b/mkdocs.yml index 915b7264..e4eeafc7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,9 +1,9 @@ site_name: colsearch site_description: Shard-first late-interaction retrieval for ColBERT and ColPali workloads -site_url: https://ddickmann.github.io/colsearch/ +site_url: https://latenceainew.github.io/colsearch/ -repo_name: ddickmann/colsearch -repo_url: https://github.com/ddickmann/colsearch +repo_name: latenceainew/colsearch +repo_url: https://github.com/latenceainew/colsearch theme: name: material diff --git a/pyproject.toml b/pyproject.toml index b41f10e9..a1ad6c3f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ version = "0.1.7" description = "ColSearch — production late-interaction retrieval for ColBERT and ColPali style workloads. Single-node CPU/GPU, Triton MaxSim, 1.58-bit ROQ quantization at 40 B/token, BM25 hybrid search, durable CRUD/WAL, multimodal preprocessing, and a base64-ready reference API." readme = "README.md" requires-python = ">=3.10" -license = "CC-BY-NC-4.0" +license = "Apache-2.0" license-files = [ "LICENSE", "LICENSING.md", @@ -131,10 +131,10 @@ colsearch-server = "colsearch.server:main" voyager-index-server = "colsearch.server:main" [project.urls] -Homepage = "https://github.com/ddickmann/colsearch" -Repository = "https://github.com/ddickmann/colsearch" -Issues = "https://github.com/ddickmann/colsearch/issues" -Changelog = "https://github.com/ddickmann/colsearch/blob/main/CHANGELOG.md" +Homepage = "https://github.com/latenceainew/colsearch" +Repository = "https://github.com/latenceainew/colsearch" +Issues = "https://github.com/latenceainew/colsearch/issues" +Changelog = "https://github.com/latenceainew/colsearch/blob/main/CHANGELOG.md" [tool.setuptools] include-package-data = true diff --git a/src/kernels/gem_router/Cargo.toml b/src/kernels/gem_router/Cargo.toml index 34fdf6c7..c640e680 100644 --- a/src/kernels/gem_router/Cargo.toml +++ b/src/kernels/gem_router/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.1" edition = "2021" authors = ["Latence Team"] description = "GEM-inspired set-native multi-vector routing core for ColBERT and ColPali" -license = "CC-BY-NC-4.0" +license = "Apache-2.0" [lib] name = "latence_gem_router" diff --git a/src/kernels/gem_router/pyproject.toml b/src/kernels/gem_router/pyproject.toml index 38bd9d3e..eb216d5b 100644 --- a/src/kernels/gem_router/pyproject.toml +++ b/src/kernels/gem_router/pyproject.toml @@ -7,7 +7,7 @@ name = "latence-gem-router" version = "0.1.1" description = "GEM-inspired set-native multi-vector routing core for ColBERT and ColPali" authors = [{name = "Latence AI", email = "dev@latence.ai"}] -license = { text = "CC-BY-NC-4.0" } +license = {text = "Apache-2.0"} requires-python = ">=3.10" dependencies = ["numpy"] diff --git a/src/kernels/hnsw_indexer/Cargo.toml b/src/kernels/hnsw_indexer/Cargo.toml index 450ce508..d0e9af3e 100644 --- a/src/kernels/hnsw_indexer/Cargo.toml +++ b/src/kernels/hnsw_indexer/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.1" edition = "2021" authors = ["Latence Team"] description = "Python bindings for Qdrant Segment HNSW" -license = "CC-BY-NC-4.0" +license = "Apache-2.0" [lib] name = "latence_hnsw" diff --git a/src/kernels/hnsw_indexer/pyproject.toml b/src/kernels/hnsw_indexer/pyproject.toml index 0af0298e..2d353295 100644 --- a/src/kernels/hnsw_indexer/pyproject.toml +++ b/src/kernels/hnsw_indexer/pyproject.toml @@ -7,7 +7,7 @@ name = "latence_hnsw" version = "0.1.1" description = "Qdrant HNSW Indexer Wrapper" authors = [{name = "Latence AI", email = "dev@latence.ai"}] -license = { text = "CC-BY-NC-4.0" } +license = {text = "Apache-2.0"} requires-python = ">=3.8" dependencies = ["numpy"] diff --git a/src/kernels/knapsack_solver/Cargo.toml b/src/kernels/knapsack_solver/Cargo.toml index 026fa6df..ba89d035 100644 --- a/src/kernels/knapsack_solver/Cargo.toml +++ b/src/kernels/knapsack_solver/Cargo.toml @@ -4,9 +4,9 @@ version = "0.1.6" edition = "2021" authors = ["Latence Team"] description = "CPU-reference-first Tabu Search Quadratic Knapsack solver with optional experimental accelerators" -license = "CC-BY-NC-4.0" +license = "Apache-2.0" readme = "README.md" -repository = "https://github.com/ddickmann/colsearch" +repository = "https://github.com/latenceainew/colsearch" keywords = ["optimization", "knapsack", "tabu-search", "cpu", "cuda", "machine-learning"] categories = ["algorithms", "science"] diff --git a/src/kernels/knapsack_solver/pyproject.toml b/src/kernels/knapsack_solver/pyproject.toml index d4680ba5..22ec3995 100644 --- a/src/kernels/knapsack_solver/pyproject.toml +++ b/src/kernels/knapsack_solver/pyproject.toml @@ -7,7 +7,7 @@ name = "latence-solver" version = "0.1.6" description = "CPU-reference-first Tabu Search Quadratic Knapsack solver with optional accelerator hooks" readme = "README.md" -license = { text = "CC-BY-NC-4.0" } +license = {text = "Apache-2.0"} authors = [ { name = "Latence Team", email = "dev@latence.ai" } ] @@ -34,8 +34,8 @@ dev = [ ] [project.urls] -Homepage = "https://github.com/ddickmann/colsearch" -Repository = "https://github.com/ddickmann/colsearch" +Homepage = "https://github.com/latenceainew/colsearch" +Repository = "https://github.com/latenceainew/colsearch" [tool.maturin] # Build with Python bindings and CPU backend by default diff --git a/src/kernels/shard_engine/Cargo.toml b/src/kernels/shard_engine/Cargo.toml index a7f56bcd..52b993b9 100644 --- a/src/kernels/shard_engine/Cargo.toml +++ b/src/kernels/shard_engine/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.6" edition = "2021" authors = ["Latence Team"] description = "Lock-free shard engine for multi-vector retrieval — ArcSwap snapshots, WAL, mmap shards, GPU scoring callbacks" -license = "CC-BY-NC-4.0" +license = "Apache-2.0" [lib] name = "latence_shard_engine" diff --git a/src/kernels/shard_engine/pyproject.toml b/src/kernels/shard_engine/pyproject.toml index e5472c8d..1d452fe7 100644 --- a/src/kernels/shard_engine/pyproject.toml +++ b/src/kernels/shard_engine/pyproject.toml @@ -7,7 +7,7 @@ name = "latence-shard-engine" version = "0.1.6" description = "Lock-free shard engine for multi-vector retrieval — Rust data plane with GPU scoring callbacks" authors = [{name = "Latence Team"}] -license = {text = "CC-BY-NC-4.0"} +license = {text = "Apache-2.0"} requires-python = ">=3.10" dependencies = ["numpy>=1.24"] diff --git a/tests/test_oss_release_hygiene.py b/tests/test_oss_release_hygiene.py index 5de17f3a..41c45338 100644 --- a/tests/test_oss_release_hygiene.py +++ b/tests/test_oss_release_hygiene.py @@ -167,8 +167,8 @@ def test_native_crate_licenses_are_consistent() -> None: license_text = data.get("project", {}).get("license", {}) if isinstance(license_text, dict): license_text = license_text.get("text", "") - assert str(license_text) == "CC-BY-NC-4.0", ( - f"{crate_dir}/pyproject.toml license should be CC-BY-NC-4.0, got {license_text}" + assert str(license_text) == "Apache-2.0", ( + f"{crate_dir}/pyproject.toml license should be Apache-2.0, got {license_text}" )