loic-sharma / BaGet

A lightweight NuGet and symbol server
https://loic-sharma.github.io/BaGet/
MIT License
2.58k stars 644 forks source link

Upgrade to .NET 6 #717

Open mishamyte opened 2 years ago

mishamyte commented 2 years ago

Hi @loic-sharma,

Thank you for awesome project (hope it is alive). Wanna contribute and make some new feature extensions, but first of all, the code base of BaGet should be updated to the new stack. So I have decided to start from update PR.


This closes #707 and #618 (as outdated). Also it helps us to use the latest features/libraries and performance of .NET 6


Next work should be done:

Test:

Also need to pay attention to:

mishamyte commented 2 years ago

Succeeded testing with Postgres (PostgreSQL) 14.1 (Debian 14.1-1.pgdg110+1)

mishamyte commented 2 years ago

Succeeded testing with Microsoft SQL Server 2019 (RTM-CU14) (KB5007182) - 15.0.4188.2 (X64) Nov 3 2021 19:19:51 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Linux (Ubuntu 20.04.3 LTS) <X64>

mishamyte commented 2 years ago

Failed testing with MySQL Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL). Error while executing migration. Additional investigation will be done

mishamyte commented 2 years ago

OK, I'm stuck a little.

But seems like Pomelo.EntityFrameworkCore.MySql have change some generation strategy from v5.0 and now we are receiving an error

MySqlConnector.MySqlException (0x80004005): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

Cause now migrations (existing one) generates next script

CREATE TABLE `Packages` (
    `Key` int NOT NULL AUTO_INCREMENT,
    `Id` varchar(128) NOT NULL,
    `Authors` varchar(4000) NULL,
    `Description` varchar(4000) NULL,
    `Downloads` bigint NOT NULL,
    `HasReadme` tinyint(1) NOT NULL,
    `Language` varchar(20) NULL,
    `Listed` tinyint(1) NOT NULL,
    `MinClientVersion` varchar(44) NULL,
    `Published` datetime(6) NOT NULL,
    `RequireLicenseAcceptance` tinyint(1) NOT NULL,
    `Summary` varchar(4000) NULL,
    `Title` varchar(256) NULL,
    `IconUrl` varchar(4000) NULL,
    `LicenseUrl` varchar(4000) NULL,
    `ProjectUrl` varchar(4000) NULL,
    `RepositoryUrl` varchar(4000) NULL,
    `RepositoryType` varchar(100) NULL,
    `Tags` varchar(4000) NULL,
    `RowVersion` datetime(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
    `Version` varchar(64) NOT NULL,
    CONSTRAINT `PK_Packages` PRIMARY KEY (`Key`)
);

Instead of using longtext for big columns. Now I dunno how to fix it.

If someone has an ideas - I would appreciate it

UPD. Has asked in PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#1606

mishamyte commented 2 years ago

Succeeded testing with MySQL Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)

mishamyte commented 2 years ago

@loic-sharma seems like I finished planned jobs.

Could you please:

AndrewTriesToCode commented 2 years ago

This is a great PR. I hope the maintainer will be able to review and include it.

cenit commented 2 years ago

agree, great PR, already using it ^_^

mishamyte commented 2 years ago

@loic-sharma any chance this PR will see the world?

mishamyte commented 2 years ago

@loic-sharma should we separate DB provider-related package versions from the variable $(MicrosoftEntityFrameworkCorePackageVersion), like it is done in MySQL & PostgreSQL packages. This allows us to deploy a fix-versions of packages more easily.

For now there is a possibility to upgrade next deps:

» BaGet.Azure (related to separate issue)
...

» BaGet.Tests
  [net6.0]
  Microsoft.AspNetCore.Mvc.Testing  6.0.1 -> 6.0.2

» BaGet.Core
  [net6.0]
  Microsoft.EntityFrameworkCore.Relational  6.0.1 -> 6.0.2

» BaGet.Database.Sqlite
  [net6.0]
  Microsoft.EntityFrameworkCore.Sqlite  6.0.1 -> 6.0.2

» BaGet.Database.SqlServer
  [net6.0]
  Microsoft.EntityFrameworkCore.SqlServer  6.0.1 -> 6.0.2

» BaGet
  [net6.0]
  Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation  6.0.1 -> 6.0.2
  Microsoft.EntityFrameworkCore.Design               6.0.1 -> 6.0.2
mishamyte commented 2 years ago

@loic-sharma friendly ping

mishamyte commented 2 years ago

Let's merge, dudes?)

cenit commented 2 years ago

before .net7 is out would be awesome

mishamyte commented 2 years ago

@loic-sharma that's a friendly reminder from me again. Could we merge it?

Sewer56 commented 1 year ago

I don't usually like to write comments with no real purpose or structure; but I do personally support the PR and would be in favour of having it merged.

Typiqally commented 1 year ago

Maybe @loic-sharma should add more maintainers to this project, might be too busy with other things

joestr commented 1 year ago

Is there any progress on this PR?

mishamyte commented 1 year ago

Is there any progress on this PR?

Seems like author has no more time for supporting this project. And no other maintainers

joestr commented 1 year ago

Would someone besides me be interested in creating a maintained fork?

JamieMagee commented 1 year ago

Would someone besides me be interested in creating a maintained fork?

The most active fork appears to be @pieroviano's. See https://github.com/pieroviano/BaGet or #754