module Hoe::Package

def define_package_tasks

def define_package_tasks
  prerelease_version
  Gem::PackageTask.new spec do |pkg|
    pkg.need_tar = @need_tar
    pkg.need_zip = @need_zip
  end
  task(:gem).prerequisites.prepend :clean
  desc "Install the package as a gem. (opt. NOSUDO=1)"
  task :install_gem => [:clean, :package, :check_extra_deps] do
    install_gem Dir["pkg/*.gem"].first
  end
  desc "Package and upload; Requires VERSION=x.y.z (optional PRE=a.1)"
  task :release => [:prerelease, :release_to, :postrelease]
  # no doco, invisible hook
  task :prerelease do
    abort "Fix your version before you release" if spec.version.to_s =~ /borked/
  end
  # no doco, invisible hook
  task :release_to
  # no doco, invisible hook
  task :postrelease
  desc "Sanity checks for release"
  task :release_sanity do
    v = ENV["VERSION"] or abort "Must supply VERSION=x.y.z"
    pre = ENV["PRERELEASE"] || ENV["PRE"]
    v += ".#{pre}" if pre
    c = changes[/\d\S+/]
    abort "Versions don't match: %s vs %s" % [v, version] if v != version
    abort "Versions don't match %s: %s vs %s" % [history_file, v, c] if v != c
  end
end