Having Bach readily available as a Nuget package would be helpful! Let me know if I can help.
I've reviewed a few music libraries recently, and I like how you correctly model things. I certainly appreciate the work that has gone into Bach. Back on-topic
Few suggestions:
Optional Icon - you may want to tackle #10 first.
Remove JetBrains.Annotations dependency to reduce transitive dependencies on users.
Add Description, PackageIcon, PackageTags, PackageReadmeFile and PackageProjectUrl properties to Bach.Model project.
Something like?:
<Description>Bach - .NET Music Theory Library</Description>
<PackageIcon>icon.png</PackageIcon>
<PackageTags>music, music theory, music library</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageProjectUrl>https://github.com/eddievelasquez/bach</PackageProjectUrl>
Bach.Model.Library.json
The Bach.Model.Library.json dependency seems embedded in the generated nupkg okay.
This is the first time I've experienced a dependent configuration like this in a Nuget package. I'm sure it's okay, but have you considered moving this into code? From reviewing this library, I know that you want to support allowing users to define their configurations easily. I noticed you also have a version system in there, and I had a fleeting thought that users may have issues with this approach. You could you make a code version extendable, too?
Having Bach readily available as a Nuget package would be helpful! Let me know if I can help.
I've reviewed a few music libraries recently, and I like how you correctly model things. I certainly appreciate the work that has gone into Bach. Back on-topic
Few suggestions:
JetBrains.Annotations
dependency to reduce transitive dependencies on users.Description
,PackageIcon
,PackageTags
,PackageReadmeFile
andPackageProjectUrl
properties toBach.Model
project.Something like?:
Bach.Model.Library.json
The
Bach.Model.Library.json
dependency seems embedded in the generated nupkg okay.This is the first time I've experienced a dependent configuration like this in a Nuget package. I'm sure it's okay, but have you considered moving this into code? From reviewing this library, I know that you want to support allowing users to define their configurations easily. I noticed you also have a version system in there, and I had a fleeting thought that users may have issues with this approach. You could you make a code version extendable, too?