No more need to actively manage multiple directories, or worry about corrupting any of your working or system language installations. Did something go wrong? You can simply rollback to a previously working environment configuration with a single command. Switching between environments is as simple as typing the name of the project. With a single command, you can create a virtual environment and download the appropriate environment for each project you work on. While there are a number of tools that can help you resolve these conflicts after they occur, there are very few that help prevent them from arising in the first place.ĪctiveState will manage dependency conflicts for multiple operating systems for you (no more having to learn multiple tool sets per OS), and even track native dependencies to ensure that your environment “just works.” Managing Virtual vs Global Installations:Īs our developer survey showed, despite the fact that plenv and perlbrew have been around for years, most developers continue to work with a single, global language installation rather than following best practices to create a virtual environment for each project.įor ActiveState, package management includes not only dependency management but also environment management. If you’ve experienced it, you know how frustrating and time consuming resolving these kinds of errors can be. “Dependency Hell” has become a significant problem, typified by the use case where Module A requires Version 1 of Dependency X, but Module B requires Version 2 and won’t work with Version 1. But as CPAN’s library of third party modules has grown, the chance for dependency conflicts arising as a result of that addition/update has also increased. Originally, it was enough to just be able to add or update one or more dependencies in an environment, and automatically compile any linked libraries on the fly. But to illustrate how package management has evolved, consider how Perl environment management has changed: Managing Environments vs Dependencies: ActiveState is taking a similar approach with our new package management solution, which is based on the ActiveState platform and it’s Command Line Interface (CLI), the State Tool. Modernizing Perl & Package ManagementĪs the recent announcement of Perl 7 highlighted, open source language technology from past decades is often hamstrung by backward compatibility requirements that prevent it from easily fitting into modern development conventions. We still have numerous requests from developers that have had their CPAN installation fail, and have tried to turn to PPM to solve their issue. However, the original PPM use case remains valid. Eventually, we made the decision to remove PPM from our ActivePerl 5.28 release as the vast majority of packages were failing to build. The underlying technology has not aged well, with the result that fewer and fewer Perl packages can be successfully built on more recent releases of Perl. PPM became a staple for many Perl developers, but its efficacy has decreased over time. As a result, there was no need to maintain a build environment on your development system. PPM greatly simplified adding CPAN modules with linked C libraries to your runtime environment by automatically compiling them for you. Veteran Perl developers will likely remember ActiveState’s Perl Package Manager (PPM), which was originally released in 2006 alongside ActiveState’s version of Perl 5.8, called ActivePerl 5.8.
0 Comments
Leave a Reply. |