tadzik / rakudobrew

Perl 6 installation manager
MIT License
185 stars 42 forks source link

'rakudobrew build moar' requires all libraries to be reinstalled. #81

Closed cchaynie closed 8 years ago

cchaynie commented 8 years ago

I'm new to Perl 6, but not Perl. I noticed that when upgrading Perl 6 with rakudobrew, I get a new installation, and then have to reinstall all the libraries I was using. This poses some problems for use in production:

1) If Perl 6 is used extensively in projects, then dozens of libraries will be used, over time. Having to reinstall these libraries every time the compiler is updated, is problematic. It could take hours, or days, to do so.

2) If a library is deprecated from the repository, then the upgrade may become untenable. I may have to find a way to manually move the old library to the new location, or alter the production code to use another method which the library was providing. This would put an unexpected delay into my schedule.

3) If all goes well, and all the libraries are updated, some of the libraries may be updated upon reinstall, without my intention to upgrade those libraries.

I like the idea of keeping different versions of Perl 6 in different locations. Upgrading software always has the potential to cause problems, and being able to restore to an older version is a great idea, and rakudobrew allows this easily. However, the libraries should be maintained in a separate location, and allow the user to update those at his discretion. This would make a production project much more manageable.

Due to these reasons, I think Perl 6 is not yet ready for a production environment.

tadzik commented 8 years ago

Some of these are valid points (some I don't think are still the case as of now), but there's an important think to note: rakudobrew is not, and was never meant to be an installation to for a production environment. It is there to help you maintain multiple installations in your home directory, for your own use.

Installing another version aside from the ones installed previously will not nuke your module installations either; the only case when that happens is when you ask rakudobrew to install you the "bleeding-edge" version again, in which case it will indeed nuke your previous installation for that purpose, but installing a bleeding-edge rakudo is not something you want to do in your production either.