diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100755
index 0000000..121cb7d
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,12 @@
+{
+  "version": 1,
+  "isRoot": true,
+  "tools": {
+    "versionize": {
+      "version": "1.15.2",
+      "commands": [
+        "versionize"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 38dc244..88cc537 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -14,10 +14,7 @@ jobs:
       - uses: actions/checkout@v2
       - uses: actions/setup-dotnet@v1
         with:
-          dotnet-version: ${{ matrix.dotnet-version }}
-          source-url: https://nuget.pkg.github.com/kyleratti/index.json
-        env:
-          NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          dotnet-version: "6.0.x"
       - name: Install dependencies
         run: dotnet restore
       - name: Build
diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml
new file mode 100755
index 0000000..8ba9769
--- /dev/null
+++ b/.github/workflows/publish-release.yml
@@ -0,0 +1,47 @@
+name: "Publish Release"
+
+on:
+  workflow_dispatch
+
+# Allow one run of this workflow per branch and cancel existing runs if triggered again
+concurrency:
+  group: fruityfoundation-publish-${{ github.ref }}
+  cancel-in-progress: true
+
+permissions:
+  contents: write # Needed to push tags
+
+jobs:
+  release:
+    runs-on: ubuntu-latest
+    environment: Publish
+    steps:
+      - uses: actions/checkout@v3
+        with:
+          fetch-depth: '0' # Load entire history
+      - uses: actions/setup-dotnet@v3
+        with:
+          dotnet-version: '6.x'
+      - run: dotnet tool restore
+      - name: Generate Version
+        id: generate-version
+        run: |
+          git config user.name "github-actions[bot]"
+          git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
+          dotnet tool run versionize
+          cd ./Base/
+          echo "RELEASE_VERSION_NUMBER=$(dotnet tool run versionize inspect)" >> $GITHUB_OUTPUT
+          git push --follow-tags
+          git fetch --tags origin
+      - run: dotnet restore
+      - run: dotnet build --no-restore -c Release -p:Version=${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}
+      - run: dotnet pack --no-build --no-restore --nologo --output=dist -c Release
+      - run: gh release create "v${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}" --notes-file CHANGELOG.md "dist/FruityFoundation.Base.${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}.nupkg" "dist/FruityFoundation.Db.${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}.nupkg" "dist/FruityFoundation.FsBase.${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}.nupkg"
+        env:
+          GH_TOKEN: ${{ github.token }}
+      - name: Publish to NuGet
+        run: |
+          cd ./dist/
+          dotnet nuget push "FruityFoundation.Base.${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}.nupkg" --api-key=${{ secrets.NUGET_API_KEY }} --source=https://api.nuget.org/v3/index.json --skip-duplicate
+          dotnet nuget push "FruityFoundation.FsBase.${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}.nupkg" --api-key=${{ secrets.NUGET_API_KEY }} --source=https://api.nuget.org/v3/index.json --skip-duplicate
+          dotnet nuget push "FruityFoundation.Db.${{ steps.generate-version.outputs.RELEASE_VERSION_NUMBER }}.nupkg" --api-key=${{ secrets.NUGET_API_KEY }} --source=https://api.nuget.org/v3/index.json --skip-duplicate
diff --git a/.versionize b/.versionize
new file mode 100755
index 0000000..285fa09
--- /dev/null
+++ b/.versionize
@@ -0,0 +1,22 @@
+{
+  "changelog": {
+    "header": "Changelog",
+    "sections": [
+      {
+        "type": "feat",
+        "section": "✨ Features",
+        "hidden": false
+      },
+      {
+        "type": "fix",
+        "section": "🐛 Bug Fixes",
+        "hidden": false
+      },
+      {
+        "type": "perf",
+        "section": "🚀 Performance",
+        "hidden": true
+      }
+    ]
+  }
+}
diff --git a/Base.Tests/Base.Tests.csproj b/Base.Tests/Base.Tests.csproj
old mode 100644
new mode 100755
diff --git a/Base/Base.csproj b/Base/Base.csproj
old mode 100644
new mode 100755
index b18def3..83a9041
--- a/Base/Base.csproj
+++ b/Base/Base.csproj
@@ -1,17 +1,22 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <TargetFramework>net6.0</TargetFramework>
-        <ImplicitUsings>enable</ImplicitUsings>
-        <Nullable>enable</Nullable>
-        <RootNamespace>FruityFoundation.Base</RootNamespace>
-        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
-        <PackageId>FruityFoundation.Base</PackageId>
-        <Authors>Kyle Ratti</Authors>
-        <Company />
-        <Product>FruityFoundation.Base</Product>
-        <RepositoryUrl>https://github.com/kyleratti/FruityFoundation</RepositoryUrl>
-        <PackageVersion>1.1.1</PackageVersion>
-    </PropertyGroup>
+  <PropertyGroup>
+      <TargetFramework>net6.0</TargetFramework>
+      <ImplicitUsings>enable</ImplicitUsings>
+      <Nullable>enable</Nullable>
+      <RootNamespace>FruityFoundation.Base</RootNamespace>
+      <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
+      <PackageId>FruityFoundation.Base</PackageId>
+      <Authors>Kyle Ratti</Authors>
+      <Company />
+      <Product>FruityFoundation.Base</Product>
+      <RepositoryUrl>https://github.com/kyleratti/FruityFoundation</RepositoryUrl>
+      <Version>1.1.2</Version>
+      <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
+      <PackageLicenseFile>LICENSE</PackageLicenseFile>
+  </PropertyGroup>
 
+  <ItemGroup>
+    <None Include="..\LICENSE" Pack="true" PackagePath="" />
+  </ItemGroup>
 </Project>
diff --git a/Db/Db.fsproj b/Db/Db.fsproj
old mode 100644
new mode 100755
index 4b34d54..a6b3caa
--- a/Db/Db.fsproj
+++ b/Db/Db.fsproj
@@ -1,21 +1,27 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-    <PropertyGroup>
-        <TargetFramework>net6.0</TargetFramework>
-        <GenerateDocumentationFile>true</GenerateDocumentationFile>
-        <RootNamespace>FruityFoundation.Db</RootNamespace>
-        <LangVersion>6.0</LangVersion>
-        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
-        <PackageId>FruityFoundation.Db</PackageId>
-        <Authors>Kyle Ratti</Authors>
-        <Company />
-        <Product>FruityFoudnation.Db</Product>
-        <RepositoryUrl>https://github.com/kyleratti/FruityFoundation</RepositoryUrl>
-        <PackageVersion>1.0.5</PackageVersion>
-    </PropertyGroup>
+  <PropertyGroup>
+      <TargetFramework>net6.0</TargetFramework>
+      <GenerateDocumentationFile>true</GenerateDocumentationFile>
+      <RootNamespace>FruityFoundation.Db</RootNamespace>
+      <LangVersion>6.0</LangVersion>
+      <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
+      <PackageId>FruityFoundation.Db</PackageId>
+      <Authors>Kyle Ratti</Authors>
+      <Company />
+      <Product>FruityFoudnation.Db</Product>
+      <RepositoryUrl>https://github.com/kyleratti/FruityFoundation</RepositoryUrl>
+      <Version>1.1.2</Version>
+      <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
+      <PackageLicenseFile>LICENSE</PackageLicenseFile>
+  </PropertyGroup>
 
-    <ItemGroup>
-        <Compile Include="Db.fs" />
-    </ItemGroup>
+  <ItemGroup>
+    <None Include="..\LICENSE" Pack="true" PackagePath="" />
+  </ItemGroup>
+
+  <ItemGroup>
+      <Compile Include="Db.fs" />
+  </ItemGroup>
 
 </Project>
diff --git a/FsBase/FsBase.fsproj b/FsBase/FsBase.fsproj
old mode 100644
new mode 100755
index a45672e..ce8d69d
--- a/FsBase/FsBase.fsproj
+++ b/FsBase/FsBase.fsproj
@@ -7,8 +7,15 @@
         <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
         <PackageId>FruityFoundation.FsBase</PackageId>
         <Authors>Kyle Ratti</Authors>
+        <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
+        <Version>1.1.2</Version>
+        <PackageLicenseFile>LICENSE</PackageLicenseFile>
     </PropertyGroup>
 
+  <ItemGroup>
+    <None Include="..\LICENSE" Pack="true" PackagePath="" />
+  </ItemGroup>
+
     <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
       <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
     </PropertyGroup>
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..08debbb
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Kyle
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.