Fody/Costura

Sunset/Obsolete Costura?

SimonCropp opened this issue ยท 25 comments

In dotnet core 3 there are two new features

With these features included in the dotnet tool set, the value proposition of Costura is greatly diminished. With that in mind I think long term Costura should cease to be used as people transition over.

Please comment with any input.

Plan:

  • disable issues
  • PR will still be accepted but only for bug fixes
  • add note to readme
  • add note to nuget description
  • write a warning in MsBuild

Yes Yes Yes!

The design docs for single-file exes mentions Costura a lot, suggesting Microsoft also considers it a Costura killer.

About the only scenarion that Costura supports that single-file doesn't is single-file libraries. But I was never a fan of using Costura for that so ๐Ÿ‘ to sunsetting Costura.

Edit: Oh also, single-file currently only works for net core 3, so older projects would still need Costura I guess.

Yes, for LONG term this is true.
Anyhow there has not been any feature development in the near past, and only very few maintenance, so just leaving it as it is should fit.

I wouldn't mind.

To me it looks like Costura gets more "bad" issues raised on GitHub than all the other Fody addins combined, so I understand why you'd want to obsolete it.

As far as I can see, there is no option to publish a single-file executable containing only the third-party references, but always with the framework references as well, which makes the file very larger. Looking at this angle, I think that Costura still has its benefits.

one more nail in the coffin #454

@Logerfo i suggest you raise that with the MS team.

I am going to pull the trigger on this. plan updated above

@GeertvanHorrik can u confirm that plan. i dont think it should break your use case

If I take over ownership, can it stay alive? I am happy to explain why we need it to stay alive (for lib projects) and to answer all questions.

@GeertvanHorrik are you sure you want to go to that effort?

@SimonCropp As an Open Source maintainer I totally understand your desire to sunset this project. But like @GeertvanHorrik, I'm in a similar boat. I have a fork of this repo that I maintain (heavily edited and customized). I monitor this project for updates / ideas.

I'm currently in the process of migrating "all the things" to .NET Core and it's a much bigger project that I thought. It's not a lift and shift for sure. I think it would be worth someone maintaining just for people not ready to move to newer platforms or that just doesn't have time to.

I guess the point I was trying to make above is that Costura isn't obsolete for full framework. I think it will be needed for many more years. I personally will be moving on to the new framework but could see Costura staying alive in maintenance until the world catches up with .NET Core 3 or .NET 5 (coming 2020).

@GeertvanHorrik are you sure you want to go to that effort?

Basically any request would be closed as "won't fixed" unless it affects the current inner workings and/or embedding libs into libraries. I don't see that as a burden (but I might be underestimating :-) )

@Logerfo

As far as I can see, there is no option to publish a single-file executable containing only the third-party references, but always with the framework references as well, which makes the file very larger.

i think this is what you want https://github.com/SimonCropp/NetCoreConsole#single-exe-and-framework-dependent ?

@GeertvanHorrik happy to add you as a maintainer irrespective of the decision here. (sent you an invite)

Basically any request would be closed as "won't fixed" unless it affects the current inner workings and/or embedding libs into libraries. I don't see that as a burden (but I might be underestimating

That is the plan. but until the project is marked as "being deprecated" people will still use it and demand things be fixed.

If I understand correctly (correct me if I'm wrong!), we'll (as in I, nothing for you to spent hours on) do the following:

  • Add me as maintainer. I will primarily do the maintenance on this weaver so it's out of (all of) your hands
  • Update the readme to explain why this weaver has been put from "active development" to "maintenance" mode. It'll boil down to a list of supported scenarios, and I will add more exceptions to this list when we hit them

Any other things I'm missing out or you'd like to see different?

@SimonCropp yes, thank you. The problem is that even the framework dependent single executable is also platform dependent. See dotnet/coreclr#27528.

I've added the maintenance mode note to the readme. I think we all agree that this package should go into maintenance mode and I will take care of the remaining issues.

Thanks everyone who has contributed to both this discussion and Costura in general. I'll probably forget some important people, but especially @SimonCropp , @distantcam and @tom-englert !

The problem with single-file executable. that it packages the whole .net framework into that file. The whole bloody framework. So if with costura I get 3.5MB executable with .net build-in feature I get 160MB one.

It is unfortunate that the maintainers no longer have the drive to maintain and resolve outstanding issues (VB support, service support, limited cross-platform support, where practical) and focusing on the use case that is probably relevant to them, but unless some one steps up to do that, that's the way it is.

This is just to voice, that costura's features are NOT obsolete, and it DOES provide value over single-file executables. But burn out after many years of maintaining the project is also understandable.

@andrewsav-datacom the feature request you're looking for is being tracked by dotnet/coreclr#27528.

@andrewsav-datacom there is also framework dependent deployments https://github.com/SimonCropp/NetCoreConsole#framework-dependent

@andrewsav-datacom BTW If you are using fody i would have expected to see you in the list of patrons? https://github.com/Fody/Home/blob/master/pages/licensing-patron-faq.md

@SimonCropp yeah until today I was not aware of the "business model". Reading some other issues I now see what happened. In any case it seems moot going forward. Thank you for your responses.

@AndrewSav i suggest you look through the other open source projects u use. a significant number of projects now have funding models to try and cover the significant expense of maintaining open source. one approach you can look at is to use https://backyourstack.com/

Thank you for your suggestion, @SimonCropp.