tnelson / Forge

Forge: A Tool and Language for Teaching Formal Methods
https://forge-fm.org/
MIT License
67 stars 8 forks source link

forge: invalid version declaration #204

Closed Bogdanp closed 1 year ago

Bogdanp commented 1 year ago

Hi!

I've recently changed raco setup to report invalid package versions (according to this spec) and I'm slowly going through all published packages that have version issues to fix them in anticipation of that change being released in 8.9. I would've normally sent a PR with a fix, but I see you have a GitHub action that manages the version numbers and I didn't want to mess that up.

Even though there's no warning being reported in the current version of Racket, if a package were to set a dependency with a version constraint on the forge package (eg. ["forge" #:version "2.7"]), that would raise an error, because "2.7.0" (declared in forge/info.rkt) is not a valid version number.

$ cat /example/info.rkt
#lang info

(define collection "example")
(define deps '("base" ["forge" #:version "2.7"]))

$ raco pkg install --auto example/
Resolving "forge" via https://download.racket-lang.org/releases/8.8/catalog/
Resolving "forge" via https://pkg-build.racket-lang.org/server/built/catalog/
...
pkg: bad version specification for forge: "2.7.0"
raco pkg install: version mismatch for dependency
  for package: example/
  mismatch packages:
   forge (have 0.0, need 2.7)