I use atlas to install apckages. I'm trying to install Happyx using atlas use happyx, but Atlas selects an older version.
atlas use happyx
[Notice] (atlas:resolved) [ ] (happyx, 2.5.1@d580ce10) [Notice] (atlas:resolved) [x] (happyx, 2.6.1@9ce225f3) [Notice] (atlas:resolved) [ ] (happyx, 2.9.1@87b5c209) [Notice] (atlas:resolved) [ ] (happyx, 0.3.0@e0ee858b) [Notice] (atlas:resolved) [ ] (happyx, 4.7.4@6298ad77)
I have a somewhat unconventional setup for my workflow, but this should work. Nowhere in any dependencies, .nimble files, or anywhere else am I requiring version 2.6.1. On the contrary, I can't install happyx-ui because it requires Happyx version 3.x.x, which conflicts with that old version of Happyx.
Ok, here's what looks to be the issue:
[Warn] (happyx) no versions matched requirements for the dependency: regex
[Warn] (happyx) all requirements needed for nimble release: 4.7.4@6298ad77 were not able to be satisfied: checksums >= 0.1.0; cligen >= 1.6.14; illwill #2fe96f5c5a6e216e84554d92090ce3d47460667a; regex #head; httpx >= 0.3.7; microasynchttpserver >= 0.11.0; httpbeast >= 0.4.2; nimja 0.8.7; websocket >= 0.5.2; websocketx >= 0.1.2; nimcrypto >= 0.3.9
Looks like requires "regex#head" incorrectly filters the versions of the regex dep. Handling #head is an odd one since it's non-deterministic. I'll get a fix up for this.
Okay, simple fix to handle #head properly: https://github.com/nim-lang/atlas/pull/164
After the fix you also need to include requires "httpbeast#head" in your Nimble file. I made a blog post to explain why: https://blog.elcritch.net/debugging-atlas-installs
TLDR: httpbeast version 0.4.2 isn't tagged so it's not included as a version. By using #head (or better #75008aab) Atlas will add that commit as an "explicit version".