Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
102 changes: 102 additions & 0 deletions .github/workflows/mevd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: MEVD

on:
push:
branches: [main]
paths:
- 'MEVD/**'
- 'Shared/**'
- 'eng/**'
- 'Directory.Build.props'
- 'Directory.Packages.props'
- 'global.json'
- '.github/workflows/mevd.yml'
pull_request:
branches: [main]
paths:
- 'MEVD/**'
- 'Shared/**'
- 'eng/**'
- 'Directory.Build.props'
- 'Directory.Packages.props'
- 'global.json'
- '.github/workflows/mevd.yml'

env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true

jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json

- name: Build
run: dotnet build MEVD/MEVD.slnf

unit-tests:
name: 'Unit: ${{ matrix.provider }} (${{ matrix.os }})'
needs: build
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
provider:
- InMemory
- AzureAISearch
- CosmosMongoDB
- PgVector
- Pinecone
- Qdrant
- Redis
- SqliteVec
- Weaviate
steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json

- name: Test
run: dotnet test MEVD/test/${{ matrix.provider }}.UnitTests

# Conformance tests run on Ubuntu only: most providers use Testcontainers with Linux Docker
# images, which aren't available on Windows GitHub-hosted runners.
conformance-tests:
name: 'Conformance: ${{ matrix.provider }}'
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
provider:
# AzureAISearch and CosmosMongoDB require cloud instances and are not run in CI.
# - AzureAISearch
# - CosmosMongoDB
- InMemory
- PgVector
- Pinecone
- Qdrant
- Redis
- SqliteVec
- Weaviate
steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json

- name: Test
run: dotnet test MEVD/test/${{ matrix.provider }}.ConformanceTests
41 changes: 41 additions & 0 deletions CommunityToolkit.AI.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<Solution>
<Folder Name="/Solution Items/">
<File Path=".editorconfig" />
<File Path=".gitignore" />
<File Path="README.md" />
<File Path="Directory.Build.props" />
<File Path="Directory.Packages.props" />
</Folder>
<Folder Name="/MEVD/src/">
<File Path="MEVD/src/Directory.Build.props" />
<Project Path="MEVD/src/AzureAISearch/AzureAISearch.csproj" />
<Project Path="MEVD/src/CosmosMongoDB/CosmosMongoDB.csproj" />
<Project Path="MEVD/src/InMemory/InMemory.csproj" />
<Project Path="MEVD/src/PgVector/PgVector.csproj" />
<Project Path="MEVD/src/Pinecone/Pinecone.csproj" />
<Project Path="MEVD/src/Qdrant/Qdrant.csproj" />
<Project Path="MEVD/src/Redis/Redis.csproj" />
<Project Path="MEVD/src/SqliteVec/SqliteVec.csproj" />
<Project Path="MEVD/src/Weaviate/Weaviate.csproj" />
</Folder>
<Folder Name="/MEVD/test/">
<Project Path="MEVD/test/AzureAISearch.UnitTests/AzureAISearch.UnitTests.csproj" />
<Project Path="MEVD/test/AzureAISearch.ConformanceTests/AzureAISearch.ConformanceTests.csproj" />
<Project Path="MEVD/test/CosmosMongoDB.UnitTests/CosmosMongoDB.UnitTests.csproj" />
<Project Path="MEVD/test/CosmosMongoDB.ConformanceTests/CosmosMongoDB.ConformanceTests.csproj" />
<Project Path="MEVD/test/InMemory.UnitTests/InMemory.UnitTests.csproj" />
<Project Path="MEVD/test/InMemory.ConformanceTests/InMemory.ConformanceTests.csproj" />
<Project Path="MEVD/test/PgVector.UnitTests/PgVector.UnitTests.csproj" />
<Project Path="MEVD/test/PgVector.ConformanceTests/PgVector.ConformanceTests.csproj" />
<Project Path="MEVD/test/Pinecone.UnitTests/Pinecone.UnitTests.csproj" />
<Project Path="MEVD/test/Pinecone.ConformanceTests/Pinecone.ConformanceTests.csproj" />
<Project Path="MEVD/test/Qdrant.UnitTests/Qdrant.UnitTests.csproj" />
<Project Path="MEVD/test/Qdrant.ConformanceTests/Qdrant.ConformanceTests.csproj" />
<Project Path="MEVD/test/Redis.UnitTests/Redis.UnitTests.csproj" />
<Project Path="MEVD/test/Redis.ConformanceTests/Redis.ConformanceTests.csproj" />
<Project Path="MEVD/test/SqliteVec.UnitTests/SqliteVec.UnitTests.csproj" />
<Project Path="MEVD/test/SqliteVec.ConformanceTests/SqliteVec.ConformanceTests.csproj" />
<Project Path="MEVD/test/Weaviate.UnitTests/Weaviate.UnitTests.csproj" />
<Project Path="MEVD/test/Weaviate.ConformanceTests/Weaviate.ConformanceTests.csproj" />
</Folder>
</Solution>
2 changes: 2 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>

<Import Project="$(MSBuildThisFileDirectory)eng/LegacySupport.props" />

</Project>
41 changes: 41 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,45 @@
<Project>
<ItemGroup>
<PackageVersion Include="System.Linq.AsyncEnumerable" Version="10.0.6" />
<PackageVersion Include="System.Numerics.Tensors" Version="10.0.6" />
<PackageVersion Include="System.Text.Json" Version="10.0.6" />
<PackageVersion Include="Microsoft.Extensions.AI.Abstractions" Version="10.5.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.6" />
</ItemGroup>

<ItemGroup Label="MEVD">
<PackageVersion Include="Microsoft.Extensions.VectorData.Abstractions" Version="10.5.0" />
<PackageVersion Include="Microsoft.Extensions.VectorData.ConformanceTests" Version="10.5.0" />

<PackageVersion Include="Azure.Search.Documents" Version="11.7.0" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="10.0.6" />
<PackageVersion Include="MongoDB.Driver" Version="3.7.1" />
<PackageVersion Include="Npgsql" Version="10.0.2" />
<PackageVersion Include="NRedisStack" Version="1.3.0" />
<PackageVersion Include="Pgvector" Version="0.3.2" />
<PackageVersion Include="Pinecone.Client" Version="3.1.0" /> <!-- TODO: Upgrade to 4 -->
<PackageVersion Include="Qdrant.Client" Version="1.17.0" />
<PackageVersion Include="sqlite-vec" Version="0.1.7-alpha.2.1" />
</ItemGroup>

<ItemGroup Label="Test">
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.6" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.6" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.6" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="10.0.6" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.6" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.6" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
<PackageVersion Include="Azure.Identity" Version="1.21.0" />
<PackageVersion Include="coverlet.collector" Version="8.0.1" />
<PackageVersion Include="Humanizer" Version="3.0.10" />
<PackageVersion Include="Moq" Version="4.20.72" />
<PackageVersion Include="Testcontainers" Version="4.11.0" />
<PackageVersion Include="Testcontainers.PostgreSql" Version="4.11.0" />
<PackageVersion Include="Testcontainers.Qdrant" Version="4.11.0" />
<PackageVersion Include="Testcontainers.Redis" Version="4.11.0" />
</ItemGroup>

</Project>
36 changes: 36 additions & 0 deletions MEVD/MEVD.slnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"solution": {
"path": "../CommunityToolkit.AI.slnx",
"projects":
[
"MEVD/src/AzureAISearch/AzureAISearch.csproj",
"MEVD/src/CosmosMongoDB/CosmosMongoDB.csproj",
"MEVD/src/InMemory/InMemory.csproj",
"MEVD/src/Pinecone/Pinecone.csproj",
"MEVD/src/PgVector/PgVector.csproj",
"MEVD/src/Qdrant/Qdrant.csproj",
"MEVD/src/Redis/Redis.csproj",
"MEVD/src/SqliteVec/SqliteVec.csproj",
"MEVD/src/Weaviate/Weaviate.csproj",

"MEVD/test/AzureAISearch.UnitTests/AzureAISearch.UnitTests.csproj",
"MEVD/test/AzureAISearch.ConformanceTests/AzureAISearch.ConformanceTests.csproj",
"MEVD/test/CosmosMongoDB.UnitTests/CosmosMongoDB.UnitTests.csproj",
"MEVD/test/CosmosMongoDB.ConformanceTests/CosmosMongoDB.ConformanceTests.csproj",
"MEVD/test/InMemory.UnitTests/InMemory.UnitTests.csproj",
"MEVD/test/InMemory.ConformanceTests/InMemory.ConformanceTests.csproj",
"MEVD/test/PgVector.UnitTests/PgVector.UnitTests.csproj",
"MEVD/test/PgVector.ConformanceTests/PgVector.ConformanceTests.csproj",
"MEVD/test/Pinecone.UnitTests/Pinecone.UnitTests.csproj",
"MEVD/test/Pinecone.ConformanceTests/Pinecone.ConformanceTests.csproj",
"MEVD/test/Qdrant.UnitTests/Qdrant.UnitTests.csproj",
"MEVD/test/Qdrant.ConformanceTests/Qdrant.ConformanceTests.csproj",
"MEVD/test/Redis.UnitTests/Redis.UnitTests.csproj",
"MEVD/test/Redis.ConformanceTests/Redis.ConformanceTests.csproj",
"MEVD/test/SqliteVec.UnitTests/SqliteVec.UnitTests.csproj",
"MEVD/test/SqliteVec.ConformanceTests/SqliteVec.ConformanceTests.csproj",
"MEVD/test/Weaviate.UnitTests/Weaviate.UnitTests.csproj",
"MEVD/test/Weaviate.ConformanceTests/Weaviate.ConformanceTests.csproj"
]
}
}
2 changes: 2 additions & 0 deletions MEVD/src/AzureAISearch/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
27 changes: 27 additions & 0 deletions MEVD/src/AzureAISearch/AzureAISearch.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Version>1.0.0-preview.1</Version>
<AssemblyName>CommunityToolkit.VectorData.AzureAISearch</AssemblyName>
<RootNamespace>$(AssemblyName)</RootNamespace>
<TargetFrameworks>net10.0;net8.0;netstandard2.0;net462</TargetFrameworks>

<Title>Azure AI Search provider for Microsoft.Extensions.VectorData</Title>
<Description>Azure AI Search provider for Microsoft.Extensions.VectorData by Semantic Kernel</Description>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" />
<PackageReference Include="Azure.Search.Documents" />
<PackageReference Include="System.Linq.AsyncEnumerable" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' Or '$(TargetFramework)' == 'net462' ">
<PackageReference Include="System.Text.Json" />
</ItemGroup>

<ItemGroup>
<InternalsVisibleTo Include="CommunityToolkit.VectorData.AzureAISearch.UnitTests" />
<InternalsVisibleTo Include="DynamicProxyGenAssembly2" />
</ItemGroup>
</Project>
Loading
Loading