-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deprecate Fusion #476
Comments
Isn't the solution to bring fusion up to date and improve quality rather than "give up"? |
Why was fusion needed at all? Wouldn't it have been easier to maintain the libraries separately? In the case of boost, it was convenient to dump everything into one large library, because C++ has terrible build system. But Nim has no such problem. |
As a staging ground for libraries that might integrate the stdlib. See also: #310 |
Maybe we can move the modules in fusion to their separate repos then make fusion a nimble package that depends on all of them. i.e. # fusion.nimble
requires "matching"
requires "smartptrs"
... Sorry I don't know too much about fusion. |
Sure, making module independent between them allows for more flexibility but that won't solve the issue of fusion being left to perish (when there's some good stuff in there) |
I think modules will have activity as long as people use them. The issue with fusion seems to be largely with visibiliity, or people just don't know how to install it. Does it ship with Nim? Which versions of Nim does it ship with? Do you need to As long as Nim deems modules "official" or "recommended" or advertises them (even if they're not developed by Nim devs) I think they will be used. Ambiguity just makes things worse. |
No one is giving up, we say we need to continue thinking new ways to evolve the stdlib. |
The idea of fusion might not have been executed well but I agree the modules in it are definitely worth preserving with at least the same degree of respect as intended. The situation with |
Just read into the listed issues carefully - this is a textbook example of "nobody gives a shit about the project" - >1 year without commits, unfixed issues, no documentation updates, not enough tests, barely tagged for new versions - this is a dead project, plain and simple. No amount of repository shuffling will make anyone care more.
It was the idea ... about 1.5~2 years go, since then nothing happened, so ...
Still have to install packages, though. The aim was to provide some "extra batteries" out of the box, like pattern matching, ordered associative containers, smart pointers and some other things.
The main issue with fusion is that there is no maintainer, nobody cares about it, so splitting it will just rearrange the problem a bit differently - and most likely only exacerbate them, since they are unrelated to how files/repositories are organized in any way.
It wasn't even a mistake per se, it's just how things are fundamentally managed with fusion - I moved my library into a separate module as the previous quote suggested, and it happily stays there, not bothering anyone [1]. Other modules did not have anyone who cared enough to even handle the transition like this, so they are staying in a dormant state indefinitely. They are either good enough (and for some modules it is the case) and don't need any changes, or there is nobody who would be willing to work on any improvements. [1] I could have continued working on it with the same energy, in theory, but of course after all of this I had a kind of "meh" attitude towards doing this. |
Splitting it allows each module to be maintained differently, by any amount of people. What I see as important is getting the modules used enough that they can be actively maintained. If Nim advertises certain modules, those modules will get used, getting used will make those modules better over time. Installing packages isn't a problem either. Fusion can be a generated collection of specific approved versions of certain packages that comes with some Nim installations. Those modules can get developed and release new versions for people to use, and fusion is still "static" or whatever. The single biggest problem in my opinion isn't the lack of maintenance, it's the lack of advertising. I guarantee >70% of Nim users have never heard of fusion. If people did know about it and used it, maybe it still wouldn't be maintained, but it would be less dead. Edit: Sorry I'm actually not that invested in this, I might be missing context. It just seems like there are really simple solutions to me. |
Lack of advertisement/contributors etc. are effectively symptoms. The bottom line is - if the core team does not care about any of that, you can't make them care, it's as simple as that. If someone wants to fix the issue, the best thing they can do is write an article on the website, or series of tutorials on the library, or something along those lines. Raising awareness about an existing issue is nice, but historical evidence suggests it will amount to nothing. I would be happy to be proven wrong, but at this point I just want to avoid illusions about what can and cannot be done with fusion via RFCs/requests etc. |
See also #431 |
Fwiw I use fusion/astdsl all the time and there is nothing I wish to be added or fixed, it's just done. Is it going to be added in the stdlib? Or moved in a separate package? Please let me know, for the latter I would like to be the maintainer. Also fusion/smartptrs is superseeded by threading/smartptrs. Another repo we need to discuss if it's abandoned or not. |
My stance on fusion is that it should all be separate repositories - I don't mind them being under the |
This is the case for a lot of libraries. As in, this is just something that fusion requires, libraries like this don't necessarily benefit from being in fusion.
I would guess almost definitely not, as stated before being in the stdlib is usually a detriment to productivity.
You should be able to make your own package for it even now. This shouldn't be a problem if fusion is supposed to be "static". In fact I would implore you to do this as you seem to basically be the only author. It can be moved to nim-lang later, but even this doesn't have to be done to ship it with whatever fusion becomes in the future.
I would support this as the main RFC. Separate packages for each module, then maybe ship a collection of handpicked versions of certain packages as a replacement for fusion. |
@planetis-m If you feel that a fusion module (or any other module) is complete, stable, and appropriate enough to add to the standard library, write up an RFC for it. The RFC would need to:
|
Abstract
Deprecate Fusion as "Official" part of stdlib,
remove Fusion from official documentation sidebar,
whatever misc change is needed too.
Motivation
Always open to new ideas about how to evolve the Nim stdlib.
Description
Fusion is abandoned with >1 year without any relevant commits,
Fusion is in the official documentation sidebar for the users,
it is not really maintained, nor improved in any way at all,
it lacks the proper CI and unittests that Nim itself has,
theres open pending abandoned bugs and pull requests since years ago,
it lacks very basic features like a version number since years ago,
it is a very poor first impresion of Nim for new users and companies,
the Nim v2.0 is a good opportunity to deprecate the abandoned stuff,
it failed to gain its own traction and should go the way of the dodo...
Code Examples
No response
Backwards Compatibility
No backwards compatibility problems AFAIK.
The text was updated successfully, but these errors were encountered: