soenneker / soenneker.utils.autobogus

The .NET Autogenerator
https://soenneker.com
MIT License
38 stars 4 forks source link

Drop in replacement? #98

Closed 304NotModified closed 8 months ago

304NotModified commented 9 months ago

Hi,

Thanks for creating this fork and awesome that soms issues has been solved.

From: https://github.com/nickdodd79/AutoBogus/issues/108

Due to the performance issues and missing types etc I've decided to build an updated version of AutoBogus: soenneker.utils.autobogus

It aims to be a drop in replacement.

Is this really a drop in replacement?

Also, I'm not sure if the copyright is correct as most of the code is from AutoBogus image from: https://www.nuget.org/packages/Soenneker.Utils.AutoBogus

Last but not least, I'm not sure if the name of the forked package will help in making this package a succes. (it contains a username)

PS: there was already a fork (https://www.nuget.org/packages/AutoBogusLifesupport), but the repo's seems to be removed

soenneker commented 8 months ago

Hi @304NotModified, thanks for your interest, and your analysis.

Is this really a drop in replacement?

No, it no longer is - I removed that initial statement from the readme about a week into the project after I realized the serious amount of surgery it required. I have updated the comment I made on your issue.

I would expect that the version number would start with 2.14 (or 2.13.2), as the latest Bogus version is 2.13.1

It's a different library... not sure why the versioning would matter compared to the old one? It's not a fork neither. Maybe I'm missing something.

There are many new dependencies in this package. Is that really needed? Sure we need the cache. But why the extensions, the smartenums etc. It would make it very hard to port the fixes to AutoBogus back when it's alive again

SmartEnum is a nice alternative to standard enums that I prefer to work with... but it could indeed be pulled out, and it'd most likely increase the speed too. Other than that there's just some very lightweight extension libraries? I'm not seeing the validity of the criticism.

It would make it very hard to port the fixes to AutoBogus back when it's alive again

You're making an assumption that it becomes alive again. I sat around for years waiting for AutoBogus to be fixed, so I decided to do something about the serious issues it had. I am not building this library with a goal of porting back to the original repository if the author decides to pick it back up.

If we need breaking changes, is this possible? As it won't be a drop in replacement

I don't think I understand your question.

Why did we move from .NET Standard to .NET 6? Also, why is the package multi-target package (compiled to .NET 6, 7 and 8)? Are there any code changes between .NET 6/7/8?

There are types that I wanted to support in .NET 6+ that are not available in .NET Standard 2.1. Some work could go towards making it .NET Standard 2.1 compatible but I figured it's worth the reduction in complexity to make it support only what Microsoft supports (LTS). If you feel like this actually impacts your usage, feel free to make your case.

Last but not least, I'm not sure if the name of the forked package will help in making this package a succes. (it contains a username)

This isn't a fork. I like the naming convention. The 'success' of this package isn't all that important to me. If people like it, great! If they don't, that's OK too.

Thanks

soenneker commented 8 months ago

@304NotModified FYI I have removed SmartEnum dependency, and removed the other extension lib that wasn't being used. Thank you

304NotModified commented 8 months ago

Thanks for the answers and improving the dependencies:)

304NotModified commented 2 months ago

I know I was a bit critical in my post, but I'm glad to see these packages are being maintained properly :)