haltcase / glob

Pure Nim library for matching file paths against Unix style glob patterns.
https://glob.bolingen.me
MIT License
61 stars 5 forks source link

Regex pinned to 0.17.x prevented playground from building #55

Closed PMunch closed 3 years ago

PMunch commented 3 years ago

The Nim playground has a list of packages it installs (based on the important packages list that Nim itself is tested against). This package is one of the ones that are installed, but because of the pinning to regex 0.17.x it prevented the playground from building as it couldn't have both 0.18.0 and 0.17.x versions. Please consider updating to support the newest version of regex, in the meantime the package will be removed from the playground.

haltcase commented 3 years ago

This should be an easy fix to change pinning from 0.17.x to 0.18.x. nim-regex's changelog suggests the only breaking change is the removal of a dependency but the real one seems to be the privatization of a previously exported func that we don't use.

Thanks for the heads up @PMunch. Would it be possible some day to support multiple versions of a package in the playground? The point of pinning is to keep things stable and I'm concerned about the maintenance burden. While the Nim playground can tolerate a major version upgrade on our dependencies, we can't (we ran into breaking changes with 0.17.x already).

PMunch commented 3 years ago

Yeah it should be pretty easy to support that on the playground as well. The reason why it's a problem now is because it has a mock .nimble file with all the packages to install as dependencies and it simply tries to install that package which pulls in all of them. But a single Nim package can't have multiple versions of a dependency, so that's why all of them have to be the same. That being said it would limit which other packages you could be used together with on the playground, and since you can't control you compile-time flags there it wouldn't be possible for the user to specify that they wanted to use an older version of regex for example.

haltcase commented 3 years ago

The regex dependency has been updated to 0.19.x which may solve this in the short term, but I'm going to consider this out of scope as it can't really be handled within this project (glob would be subjected to breaking changes).