| During the implementation of version ranges for apt, yum, pip and gem providers, a couple of improvement ideas were raised. This ticket will most likely need to be split, based on any feedback received from the community and after deciding which of these topics can actually be achieved:
- whenever a version that satisfies the given range couldn't be found, the installation method shouldn't forward the input to the provider to handle the error, but instead puppet should stop there by raising the problem (execution time should improve, by avoiding double checking, and code complexity should also reduce for some providers, such as pip where there would be less translations through this improvement)
- range objects should become generic so that they can be created for any provider version (each provider version class should accept comparing version object to string, which the inside is parsed into a proper version object, so that range object creation doesn't require to know what type of versions will be compared), only once (instead of creating once for insync and then for installation also) and a lot sooner than inside the specific provider (somewhere in `lib/puppet/type/package.rb` was originally targeted but this needs to be further researched)
- through above implementation, checking if a string is a valid range can be reconsidered to remove all the error raisings caught in each provider
...
- other missed ideas can be further added
|