Update dependencies; properly use ~> according to semver.