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

Update nopt dependency to 2.1.1 #748

Closed
wants to merge 2 commits into from
Closed

Conversation

jrolfs
Copy link

@jrolfs jrolfs commented Apr 2, 2013

Included update to tests that illustrates the reason for updating nopt.

jrolfs added 2 commits March 15, 2013 19:55
* master:
  quote version number for travis
  add node 0.10 to travis
  Bumping version to 0.4.1 and publishing to npm.
  Fix path.join thrown errors with expandMapping rename. Closes gruntjsgh-725.
  Update copyright date to 2013. Closes gruntjsgh-660.
  Remove some side effects from manually requiring Grunt. Closes gruntjsgh-605.
  grunt.log: add formatting support and implicitly cast msg to a string. Closes gruntjsgh-703.
  Update js-yaml to version 2. Closes gruntjsgh-683.
  The grunt.util.spawn method now falls back to stdout when the `grunt` option is set. Closes gruntjsgh-691.
  Making --verbose "Files:" warnings less scary. Closes gruntjsgh-657.
  Fixing typo: the grunt.fatal method now defaults to FATAL_ERROR. Closes gruntjsgh-656, gruntjsgh-707.
  Removed a duplicate line. Closes gruntjsgh-702.
  Gruntfile name should no longer be case sensitive. Closes gruntjsgh-685.
  The grunt.file.delete method warns and returns false if file doesn't exist. Closes gruntjsgh-635, gruntjsgh-714.
  The grunt.package property is now resolved via require(). Closes gruntjsgh-704.
  The grunt.util.spawn method no longer breaks on multibyte stdio. Closes gruntjsgh-710.
  Fix "path.join arguments must be strings" error in file.expand/recurse when options.cwd is not set. Closes gruntjsgh-722.
  Adding a fairly relevant keyword to package.json.
  Bumping version for development.
@danielyule
Copy link

Just dropping in to say I'd appreciate this change. I've already updated my local copy of grunt to match it.

@cowboy
Copy link
Member

cowboy commented Sep 11, 2013

Ok, I found a possible regression in the latest nopt that will definitely prevent its use here npm/nopt#23.

@vladikoff
Copy link
Member

An issue created re: nopt for 0.5.0 #908

TL;DR: We recommend that you include the dependency you'd like to use directly in your project's package.json file and require it like you would any standard node module. In a future version of Grunt, grunt.util._ and grunt.util.async will either be deprecated or removed entirely.

The long version: We just can't make this change right now.

The Grunt unit tests only cover build-in Grunt functionality as it pertains to any exposed, included dependency (eg. async, lodash, nopt). As such, we can only guarantee that upgrading a dependency will not break Grunt itself.

Grunt plugins or Gruntfiles that depend on an exposed, included dependency might use a feature that isn't used in Grunt, and because that feature may change without any Grunt tests breaking, it's entirely possible that we could release a version that breaks backwards compatibility.

Basically, we'd have to go from Grunt 0.4.1 to 0.5.0, instead of 0.4.2 like we're planning. We'll set an issue to deal with this, tentatively set for 0.5.0, but since it has become clear that exposing included dependencies was a serious design error, these dependencies will either be deprecated or removed entirely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants