Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

berrybrew, the Perlbrew for Windows v1.30 released!

by stevieb (Canon)
on Dec 25, 2019 at 21:02 UTC ( #11110617=perlnews: print w/replies, xml ) Need Help??

Merry Christmas and Happy Holidays fellow Monks!

I've released v1.30 of berrybrew as a Christmas gift to our Windows Perlers.

It's a significant release, here's a list of the most noteworthy additions:

  • Added a UI, runs out of the System Tray, allows installing, removing and switching Perls using a button
  • Added new associate command, allowing berrybrew to manage .pl file associations
  • Added berrybrew-refresh command, to be run after switching perls. No more having to re-open command line windows
  • If a newer point release of a major version is introduced, we now seamlessly integrate installed previous point-releases into the Perls available
  • Configuration options are now based in the Windows Registry
  • Added new options command, allows changing configuration options at runtime
  • We now supply a bb command, which is simply a short-hand form for berrybrew
  • Greatly enhanced the self-extracting installer
  • Much more precise handling of the PATH environment variable
  • More graceful handling of exceptions
  • Added info command which displays various internal directory path information
  • Added new hidden/developer commands

Please have a read of my blog post for the full announcement details.

Cheers!,

-stevieb

Replies are listed 'Best First'.
Re: berrybrew, the Perlbrew for Windows v1.30 released!
by Anonymous Monk on Dec 26, 2019 at 00:23 UTC

    Configuration options are now based in the Windows Registry

    Hi

    Why?

      Because it's a centralized repository, and having it in the registry allows much easier management when upgrading.

      It's also a lot less taxing (code and process time) doing quick registry reads than it is opening, reading, parsing, converting from and closing a JSON file on each run in C#.

      It also ensures the configuration is always in a single, specific location, so it can be read and modified without having to figure out where the installation is located (by parsing and then searching each PATH for the berrybrew.exe binary, then loading the file from the data directory).

      Makes testing a whole lot easier as well.

      You can still utilize the config file if you please:

      • Modify a configuration file variable
      • Run berrybrew options-update-force hidden command to reload all options from the file

      It still utilizes the registry though, but the process without using the hidden command to force reload the options, the config file is read only once... upon first run of the software.

      The main reason that made me change my mind from file to registry is that in this version, registry work was required for other features... UI at startup, installer/uninstaller data storage, and the modification of the .pl file association work. Once the registry became involved, migrating the config over was a natural progression.

      The next version is dedicated 100% to drastically increase test coverage. No new features will be added, unless they are a side-effect of finding something while adding these new tests. I plan on adding a minimum 10x the number of tests I have now. This will allow me to find a lot of areas where I can make the code a whole lot better and more efficient, and provide better scoping for error handling. Getting the registry stuff implemented in this most recent version allows all of the new testing to be future proof.

        I see

        It's also a lot less taxing (code and process time) doing quick registry reads than it is opening, reading, parsing, converting from and closing a JSON file on each run in C#.

        Makes testing a whole lot easier as well.

        Hmm, doubtful

        It also ensures the configuration is always in a single, specific location, so it can be read and modified without having to figure out where the installation is located (by parsing and then searching each PATH for the berrybrew.exe binary, then loading the file from the data directory).

        $HOME/.berrybrew is just as specific and doesn't require much figuring out

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlnews [id://11110617]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2020-02-27 16:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What numbers are you going to focus on primarily in 2020?










    Results (120 votes). Check out past polls.

    Notices?