BaGet
BaGet copied to clipboard
Upgrade to .NET 6
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:
- [X] Update projects to .NET 6 and C# 10
- [X] Update Dockerfile
- [X] Update pipelines
- [X] Bump package dependencies
- [x] Check/adjust tests, if needed
- [x] Add .NET 6 to list of supported frameworks
Test:
- [x] Docker
- [x] MySQL
- [x] Postgres
- [x] SQLite
- [x] SQL Server
Also need to pay attention to:
- [x]
Pomelo.EntityFrameworkCore.MySql v6.0.0
has breaking changes, now MySql version should be specified. Now the feature of version autodetection was used inBaGet.Database.MySql
- [x] ~~
BaGet.Azure
uses very outdated librariesMicrosoft.Azure.Search
&Microsoft.Azure.Storage.Blob
. Last releaseAzure.Search.Documents
&Azure.Storage.Blobs
should be used and project should be rewritten to their API (I think we will extract it to the new issue, but I need to document this founding here)~~ (extracted to #720)
I will continue to test/adjust the project, but help would be appreciated. I think when majority of items would be done, it would be cool to release a new alpha version for mass testing
Succeeded testing with Postgres (PostgreSQL) 14.1 (Debian 14.1-1.pgdg110+1)
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>
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
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
Succeeded testing with MySQL Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
- [X] Using a new DB
- [X] Upgrading an existing DB
@loic-sharma seems like I finished planned jobs.
Could you please:
- Review this PR (I would be right happy to answer the questions if needed)
- Merge & make a beta-build for mass testing
This is a great PR. I hope the maintainer will be able to review and include it.
agree, great PR, already using it ^_^
@loic-sharma any chance this PR will see the world?
@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
@loic-sharma friendly ping
Let's merge, dudes?)
before .net7 is out would be awesome
@loic-sharma that's a friendly reminder from me again. Could we merge it?
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.
Maybe @loic-sharma should add more maintainers to this project, might be too busy with other things
Is there any progress on this PR?
Is there any progress on this PR?
Seems like author has no more time for supporting this project. And no other maintainers
Would someone besides me be interested in creating a maintained fork?
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