Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use serde and semver instead of hand-written logic #31

Closed
22 tasks done
dherman opened this issue Feb 6, 2018 · 0 comments
Closed
22 tasks done

use serde and semver instead of hand-written logic #31

dherman opened this issue Feb 6, 2018 · 0 comments

Comments

@dherman
Copy link
Collaborator

dherman commented Feb 6, 2018

Path to eliminating the hand-written logic for version data structures and for serialization of various data structures:

  • config should use serde (with an IR if necessary)
  • config should match the structure of RFC1 — just one hook for now
  • catalog should store versions as an ordered, sorted collection
  • catalog should support a resolve method that finds an available version that matches a spec
  • move most Tool logic to Node, for now tailored to specifically being the Node launcher
  • create a new top level Node launcher separate from launchbin/launchscript
  • rename notion/main.rs to notion/notion.rs
  • Node::new() should call session.node(&mut self) and get back the Version, instead of session.node_version()
  • session.node() should check for project and if so get a VersionReq, otherwise use the current catalog Version
  • when session.node() gets a VersionReq, try to find one already in catalog and return that
  • when session.node() gets a VersionReq and there’s none in catalog, either use resolution plugin or default resolution logic
  • config should have an IR for serialization
  • default resolution logic should consult https://nodejs.org/dist/index.json but for now can hard-code a few versions
  • plugin resolution logic should call the executable
  • manifest should parse using serde
  • manifest should just return the VersionReq
  • remove the logic of installing from Manifest
  • kill the lockfile module entirely
  • kill the untoml module entirely
  • kill the version module entirely
  • session.install_node() should ask the catalog to do the fetching if it has a VersionReq
  • catalog should initiate the plugin’s resolution protocol if it needs to resolve a VersionReq
@dherman dherman added this to the Minimum Viable Product milestone Feb 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant