setup 5.1.0 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,21 @@
1
1
  = RELEASE HISTORY
2
2
 
3
+ == 5.2.0 / 2012-12-20
4
+
5
+ This release makes a couple of important changes. First the `.ruby` file
6
+ is no longer the supported metadata file. While the format is basically
7
+ the same, the file is now called `.index`. See the {Indexer}[http://github.com/rubyworks/indexer]
8
+ project for more details. One can still use `.setup/name`, `.setup/version`
9
+ and `.setup/loadpath` files instead. In addition, `.setup/testrc.rb` has been
10
+ renamed to `.setup/test.rb`, and for shell-based command use `.setup/test.sh`.
11
+
12
+ Changes:
13
+
14
+ * Use .index instead of .ruby for metadata.
15
+ * Testing is handled by either .setup/test.rb or .setup/test.sh.
16
+ * Automatic RI documentation generation is deprecated for good.
17
+
18
+
3
19
  == 5.1.0 / 2012-03-20
4
20
 
5
21
  With this release `bin/setup.rb` is now the all-in-one bundled script.
@@ -10,15 +26,10 @@ more descriptive of it's purpose for the general user.
10
26
 
11
27
  Changes:
12
28
 
13
- * Major Enhancements
14
-
15
- * Rename `make` phase to `compile`.
16
- * So called "MetaConfig" is handled via `.setup/metaconfig.rb`.
17
- * The `bin/setup.rb` script is now the full-on bundled script.
18
-
19
- * Bug Fixes
20
-
21
- * The `--prefix` option works with `all` command.
29
+ * Rename `make` phase to `compile`.
30
+ * So called "MetaConfig" is handled via `.setup/metaconfig.rb`.
31
+ * The `bin/setup.rb` script is now the full-on bundled script.
32
+ * The `--prefix` option works with `all` command.
22
33
 
23
34
 
24
35
  == 5.0.1 / 2010-02-07
@@ -28,13 +39,8 @@ and makes some minor adjusemnt to exit error messages.
28
39
 
29
40
  Changes:
30
41
 
31
- * 1 Bug Fix
32
-
33
- * Fixed parsing of ruby install parameters on systems with custom configurations.
34
-
35
- * 1 Minor Enhancement
36
-
37
- * Use 'abort $!.message' instead of 'exit 1' when exiting on error.
42
+ * Fixed parsing of ruby install parameters on systems with custom configurations.
43
+ * Use 'abort $!.message' instead of 'exit 1' when exiting on error.
38
44
 
39
45
 
40
46
  == 5.0.0 / 2010-01-12
@@ -50,19 +56,14 @@ through them performing the required action.
50
56
 
51
57
  Changes:
52
58
 
53
- * 5 Major Changes
54
-
55
- * Split script into distinct classes, one for each setup phase.
56
- * Testing is handled by optional script/test or .setup/testrc.rb file.
57
- * Renamed 'setup' phase to 'make' phase.
58
- * Deprecated MetaConfig API; support singleton extensions instead.
59
- * Deprecated support for Ruby versions older than v1.6.2.
60
-
61
- * 3 Minor Changes
62
-
63
- * Returned to using InstalledFiles for record installation and improved.
64
- * Use SetupConfig instead of .cache/setup/config to store system configuration.
65
- * Improved configuration options (eg. can use --type instead of --installdirs)
59
+ * Split script into distinct classes, one for each setup phase.
60
+ * Testing is handled by optional script/test or .setup/testrc.rb file.
61
+ * Renamed 'setup' phase to 'make' phase.
62
+ * Deprecated MetaConfig API; support singleton extensions instead.
63
+ * Deprecated support for Ruby versions older than v1.6.2.
64
+ * Returned to using InstalledFiles for record installation and improved.
65
+ * Use SetupConfig instead of .cache/setup/config to store system configuration.
66
+ * Improved configuration options (eg. can use --type instead of --installdirs)
66
67
 
67
68
 
68
69
  == 4.2.1 / 2009-08-26
@@ -73,9 +74,7 @@ in Facets to install both lib/more and lib/core.
73
74
 
74
75
  Changes:
75
76
 
76
- * 1 Major Enhancement
77
-
78
- * meta/loadpath is now supported if you have multiple paths to install.
77
+ * meta/loadpath is now supported if you have multiple paths to install.
79
78
 
80
79
 
81
80
  == 4.2.0 / 2009-08-26
@@ -89,19 +88,14 @@ below for more details.
89
88
 
90
89
  Changes:
91
90
 
92
- * 7 Major Enhancements
93
-
94
- * relocated all user configuration files to meta/ and meta/setup
95
- * meta/package must exist for doc to be installed.
96
- * meta/setup/test.rb must be provided to run tests.
97
- * meta/setup/doc.rb can be provided as alternate for generating docs.
98
- * meta/setup/metaconfig.rb is now where meta-configuration goes.
99
- * documentation is installed to <system-doc-dir>/ruby-<package>/.
100
- * documentation generation shells out (for now, b/c of issues with using API)
101
-
102
- * 1 Minor Addition
103
-
104
- * Notice the setup.rb file in the project repo. Guess what that is! ;)
91
+ * relocated all user configuration files to meta/ and meta/setup
92
+ * meta/package must exist for doc to be installed.
93
+ * meta/setup/test.rb must be provided to run tests.
94
+ * meta/setup/doc.rb can be provided as alternate for generating docs.
95
+ * meta/setup/metaconfig.rb is now where meta-configuration goes.
96
+ * documentation is installed to <system-doc-dir>/ruby-<package>/.
97
+ * documentation generation shells out (for now, b/c of issues with using API)
98
+ * Notice the setup.rb file in the project repo. Guess what that is! ;)
105
99
 
106
100
 
107
101
  == 4.1.0 / 2008-11-16
@@ -126,21 +120,16 @@ Please report any problems so I can fix them ASAP. Thanks.
126
120
 
127
121
  Changes:
128
122
 
129
- * 5 Major Enhancements
130
-
131
- * testing only runs if a test script if provided
132
- * cache files are now stored in .cache/setup/
133
- * Renamed binary from rubysetup to setup.rb.
134
- * Hoping that the use of a dot in the name is not a problem on Windows.
135
- * By using setup.rb for the binary, it matches exactly the name of the old script.
136
- * Other developers could do likewise, eg. setup.py; akin to mkfs.ext3 and friends.
137
- * Added script/install as a bootstrap installer.
138
- * restored metaconfig
139
-
140
- * 2 Minor Enhancements
141
-
142
- * added test from original (needs work)
143
- * removed test/suite.rb option from testing
123
+ * Testing only runs if a test script if provided
124
+ * Cache files are now stored in .cache/setup/
125
+ * Renamed binary from rubysetup to setup.rb.
126
+ * Hoping that the use of a dot in the name is not a problem on Windows.
127
+ * By using setup.rb for the binary, it matches exactly the name of the old script.
128
+ * Other developers could do likewise, eg. setup.py; akin to mkfs.ext3 and friends.
129
+ * Added script/install as a bootstrap installer.
130
+ * Restored metaconfig
131
+ * Added test from original (needs work)
132
+ * Removed test/suite.rb option from testing
144
133
 
145
134
 
146
135
  == 4.0.0 / 2008-08-15
@@ -1,13 +1,13 @@
1
1
  = Ruby Setup
2
2
 
3
3
  {Website}[http://rubyworks.github.com/setup] /
4
+ {Guide}[https://github.com/rubyworks/setup/wiki] /
4
5
  {Issues}[http://github.com/rubyworks/setup/issues] /
5
6
  {Source}[http://github.com/rubyworks/setup]
7
+ ( {<img src="https://secure.travis-ci.org/rubyworks/setup.png" />}[http://travis-ci.org/rubyworks/setup] )
6
8
 
7
- {<img src="https://secure.travis-ci.org/rubyworks/setup.png" />}[http://travis-ci.org/rubyworks/setup]
8
9
 
9
-
10
- == INTRODUCTION
10
+ == Introduction
11
11
 
12
12
  Every well practiced Rubyist is aware of Minero Aoki's ever +setup.rb+
13
13
  script. It's how most of us used to install our Ruby programs before RubyGems
@@ -21,7 +21,7 @@ from there. As long as a project is setup.rb compliant, as most are,
21
21
  then there is little to nothing it's developer must do.
22
22
 
23
23
 
24
- === IMPORTANT
24
+ === Important
25
25
 
26
26
  There a couple very important difference between the old 3.4.1 verison
27
27
  of the setup.rb and Ruby Setup.
@@ -33,7 +33,7 @@ of the setup.rb and Ruby Setup.
33
33
  * The +setup+ phase has been renamed to the +compile+ phase.
34
34
 
35
35
 
36
- == INSTALLATION
36
+ == Installation
37
37
 
38
38
  The easy way to install is via RubyGems.
39
39
 
@@ -45,11 +45,11 @@ and from the decompressed package directory run:
45
45
  $ ruby script/setup
46
46
 
47
47
 
48
- == HOW TO USE
48
+ == Instruction
49
49
 
50
50
  To use setup.rb, a project must conform to the setup.rb standard layout.
51
51
  Please see the documentation on the website if you need to know more about
52
- what this entails. Most project already follow the standard since it was
52
+ what this entails. Most projects already follow the standard since it was
53
53
  setup.rb that originally popularized most of the current layout conventions.
54
54
  (Note that the on-line documentation is slightly out of sync with the latest
55
55
  release.)
@@ -70,25 +70,34 @@ And is equivalent to running the two main phases in sequence.
70
70
  Where +compile+ compiles any extensions and +install+ copies project
71
71
  files to the appropriate places on your system.
72
72
 
73
+ For setup.rb to install a project's documentation and library files
74
+ properly it is best to supply it was basic information about the project.
75
+ In particular, the +name+, +version+ and +loadpath+ (if not the default `lib`).
76
+ This can be done either by creating a `.index` file for the project
77
+ (see {Indexer}[http://github.com/rubyworks/indexer]), or by adding
78
+ <tt>.setup/name</tt>, <tt>.setup/version</tt> and <tt>.setup/loadpath</tt>
79
+ to the project.
80
+
73
81
  Setup.rb also supports two optional phases, +config+ and +test+.
74
82
 
75
83
  $ setup config
76
84
 
77
85
  Configuration must be run before any other phase in order to be of
78
- use. Running `config` creates a `SetupConfig` file which you can then
86
+ used. Running `config` creates a `SetupConfig` file which you can then
79
87
  edit to make any adjustments neccessary to the installation. When finished
80
88
  editing this file, use setup.rb as before and your custom configuration
81
- will be used in place of the standard defaults.
89
+ will be used instead of the standard defaults.
82
90
 
83
91
  $ setup.rb test
84
92
 
85
- This will run tests if a test script is provided. If should be run after
93
+ This will run tests if a test script is provided. It must be run after
86
94
  +compile+, but before +install+. Because there are now a deverse selection
87
95
  of testing tools available for Ruby, testing only happens if the developer
88
- has provided a test run command script (eg. <tt>.setup/testrc.rb</tt>).
89
- Keep in mind that testing may require support libraries such as RSpec,
90
- Lemon, Bacon, QED or Cucumber. When using the +all+ command, you can
91
- activate testing via the <tt>--test</tt> or <tt>-t</tt> option.
96
+ has provided a test runner script, either. <tt>.setup/test.rb</tt> or
97
+ <tt>.setup/test.sh</tt>. Keep in mind that testing may require support
98
+ libraries such as RSpec, Lemon, Bacon, QED or Cucumber. When using the
99
+ +all+ command, you can activate testing via the <tt>--test</tt> or
100
+ <tt>-t</tt> option.
92
101
 
93
102
  If you later decide you want to remove a program from your system, use
94
103
  +uninstall+.
@@ -98,10 +107,10 @@ If you later decide you want to remove a program from your system, use
98
107
  This will remove all files previously installed via the setup.rb command.
99
108
  Uninstalling is made possible by the 'SetupReceipt' file that is
100
109
  generated by the install process. If that file is deleted than you
101
- will not be able to uninstall. (You can get around this be reinstalling
102
- first though).
110
+ will not be able to uninstall. (You can usually get around this be
111
+ reinstalling first though).
103
112
 
104
- During the make phase, by-product files are generally created.
113
+ During the make phase, by-product files are typically created.
105
114
  You can clean up any of these by-products with:
106
115
 
107
116
  $ setup.rb clean
@@ -111,26 +120,20 @@ And restore them to their absolute pristine state with:
111
120
  $ setup.rb distclean
112
121
 
113
122
  For further details on using +setup.rb+, or developing a project that can
114
- take advantage of setup.rb's special features, please see the website.
115
-
116
-
117
- == COPYRIGHTS
118
-
119
- Copyright (c) 2008,2009 Thomas Sawyer
123
+ take advantage of setup.rb's special features, please see the website
124
+ and associated wiki.
120
125
 
121
- BSD-2-Clause License.
122
126
 
123
- 7trans
124
- transfire@gmail.com
125
- http://rubyworks.github.com
127
+ == Copyrights
126
128
 
129
+ Setup.rb is copyrighted open source software.
127
130
 
128
- Copyright (c) 2002,2005 Minero Aoki
131
+ Copyright (c) 2008 Rubyworks (BSD-2-Clause)
129
132
 
130
- GNU LGPL, Lesser General Public License version 2.1+.
133
+ It can be modified and redistributed in accordance with the **BSD-2-Clause** license.
131
134
 
132
- Minero Aoki
133
- aamine@loveruby.net
134
- http://i.loveruby.net
135
+ Setup.rb is a rewrite of the original setup.rb script by {Minero Aoki}[http://i.loveruby.net].
135
136
 
137
+ Copyright (c) 2002 Minero Aoki (GNU LGPL 2.1+)
136
138
 
139
+ See LICENSE.txt and NOTICE.rdoc for details.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # Setup.rb v5.1.0
2
+ # Setup.rb v5.2.0
3
3
  #
4
4
  # This is a stand-alone bundle of the setup.rb application.
5
5
  # You can place it in your projects script/ directory, or
@@ -16,20 +16,7 @@
16
16
  # without issue and without needing to install it for each.
17
17
  require 'yaml'
18
18
  module Setup
19
- DIRECTORY = File.dirname(__FILE__) + '/setup'
20
- PROFILE = YAML.load(File.new(DIRECTORY + '/profile.yml'))
21
- verfile = YAML.load(File.new(DIRECTORY + '/version.yml'))
22
- VERSION = verfile.values_at('major','minor','patch','state','build').compact.join('.')
23
- def self.const_missing(name)
24
- key = name.to_s.downcase
25
- if verfile.key?(key)
26
- verfile[key]
27
- elsif profile.key?(key)
28
- PROFILE[key]
29
- else
30
- super(name)
31
- end
32
- end
19
+ VERSION = '5.2.0' #:erb: VERSION = '<%= version %>'
33
20
  end
34
21
  class << File #:nodoc: all
35
22
  unless respond_to?(:read) # Ruby 1.6 and less
@@ -55,17 +42,17 @@ module Setup
55
42
  end
56
43
  module Setup
57
44
  class Project
58
- ROOT_MARKER = '{.ruby,setup.rb,.setup,lib/}'
45
+ ROOT_MARKER = '{.index,setup.rb,.setup,lib/}'
59
46
  def initialize
60
- @dotruby_file = find('.ruby')
61
- @dotruby = YAML.load_file(@dotruby_file) if @dotruby_file
47
+ @dotindex_file = find('.index')
48
+ @dotindex = YAML.load_file(@dotindex_file) if @dotindex_file
62
49
  @name = nil
63
50
  @version = nil
64
51
  @loadpath = ['lib']
65
- if @dotruby
66
- @name = @dotruby['name']
67
- @version = @dotruby['version']
68
- @loadpath = @dotruby['load_path']
52
+ if @dotindex
53
+ @name = @dotindex['name']
54
+ @version = @dotindex['version']
55
+ @loadpath = (@dotindex['paths'] || {})['load']
69
56
  else
70
57
  if file = find('.setup/name')
71
58
  @name = File.read(file).strip
@@ -78,7 +65,7 @@ module Setup
78
65
  end
79
66
  end
80
67
  end
81
- attr :dotruby
68
+ attr :dotindex
82
69
  attr :name
83
70
  attr :version
84
71
  attr :loadpath
@@ -365,7 +352,7 @@ require 'yaml'
365
352
  require 'shellwords'
366
353
  module Setup
367
354
  class Configuration
368
- RBCONFIG = ::Config::CONFIG
355
+ RBCONFIG = ::RbConfig::CONFIG
369
356
  META_CONFIG_FILE = META_EXTENSION_DIR + '/metaconfig.rb'
370
357
  def self.options
371
358
  @@options ||= []
@@ -402,12 +389,12 @@ module Setup
402
389
  option :root , :path, 'install to alternate root location'
403
390
  option :installdirs , :pick, 'install location mode (site,std,home)' #, local)
404
391
  option :type , :pick, 'install location mode (site,std,home)'
405
- ::Config::CONFIG.each do |key,val|
392
+ ::RbConfig::CONFIG.each do |key,val|
406
393
  next if key == "configure_args"
407
394
  name = key.to_s.downcase
408
395
  define_method(name){ val }
409
396
  end
410
- config_args = Shellwords.shellwords(::Config::CONFIG["configure_args"])
397
+ config_args = Shellwords.shellwords(::RbConfig::CONFIG["configure_args"])
411
398
  config_args.each do |ent|
412
399
  if ent.index("=")
413
400
  key, val = *ent.split("=")
@@ -705,8 +692,9 @@ module Setup
705
692
  end
706
693
  def save_config
707
694
  out = to_yaml
708
- if not File.exist?(File.dirname(CONFIG_FILE))
709
- FileUtils.mkdir_p(File.dirname(CONFIG_FILE))
695
+ dir = File.dirname(CONFIG_FILE)
696
+ unless File.exist?(dir)
697
+ FileUtils.mkdir_p(dir)
710
698
  end
711
699
  if File.exist?(CONFIG_FILE)
712
700
  txt = File.read(CONFIG_FILE)
@@ -895,7 +883,7 @@ module Setup
895
883
  File.extname(file) == ".#{dllext}"
896
884
  end
897
885
  if ents.empty? && !files.empty?
898
- raise Error, "ruby extention not compiled: 'setup.rb make' first"
886
+ raise Error, "ruby extention not compiled: 'setup.rb compile' first"
899
887
  end
900
888
  ents
901
889
  end
@@ -1056,20 +1044,26 @@ module Setup
1056
1044
  end
1057
1045
  module Setup
1058
1046
  class Tester < Base
1059
- RUBYSCRIPT = META_EXTENSION_DIR + '/testrc.rb'
1060
- SHELLSCRIPT = 'script/test'
1047
+ RUBYSCRIPT = META_EXTENSION_DIR + '/test.rb'
1048
+ SHELLSCRIPT = META_EXTENSION_DIR + '/test.sh'
1049
+ DEPRECATED_RUBYSCRIPT = META_EXTENSION_DIR + '/testrc.rb'
1061
1050
  def testable?
1051
+ if File.exist?(DEPRECATED_RUBYSCRIPT)
1052
+ warn "Must use `.setup/test.rb' instead or `.setup/testrc.rb' to support testing."
1053
+ end
1062
1054
  return false if config.no_test
1063
1055
  return true if File.exist?(RUBYSCRIPT)
1064
1056
  return true if File.exist?(SHELLSCRIPT)
1065
1057
  false
1066
1058
  end
1067
1059
  def test
1068
- return true if !testable?
1060
+ return true unless testable?
1069
1061
  if File.exist?(RUBYSCRIPT)
1070
1062
  test_rubyscript
1071
1063
  elsif File.exist?(SHELLSCRIPT)
1072
1064
  test_shellscript
1065
+ else
1066
+ true
1073
1067
  end
1074
1068
  end
1075
1069
  def test_shellscript
@@ -13,7 +13,7 @@ module Setup
13
13
  class Configuration
14
14
 
15
15
  # Ruby System Configuration
16
- RBCONFIG = ::Config::CONFIG
16
+ RBCONFIG = ::RbConfig::CONFIG
17
17
 
18
18
  ## Confgiuration file
19
19
  #CONFIG_FILE = 'SetupConfig' # '.cache/setup/config'
@@ -26,7 +26,9 @@ module Setup
26
26
  @@options ||= []
27
27
  end
28
28
 
29
+ #
29
30
  # TODO: better methods for path type
31
+ #
30
32
  def self.option(name, *args) #type, description)
31
33
  options << [name.to_s, *args] #type, description]
32
34
  attr_accessor(name)
@@ -76,7 +78,7 @@ module Setup
76
78
 
77
79
  # Turn all of CONFIG into methods.
78
80
 
79
- ::Config::CONFIG.each do |key,val|
81
+ ::RbConfig::CONFIG.each do |key,val|
80
82
  next if key == "configure_args"
81
83
  name = key.to_s.downcase
82
84
  #name = name.sub(/^--/,'')
@@ -85,7 +87,7 @@ module Setup
85
87
  end
86
88
 
87
89
  # Turn all of CONFIG["configure_args"] into methods.
88
- config_args = Shellwords.shellwords(::Config::CONFIG["configure_args"])
90
+ config_args = Shellwords.shellwords(::RbConfig::CONFIG["configure_args"])
89
91
  config_args.each do |ent|
90
92
  if ent.index("=")
91
93
  key, val = *ent.split("=")
@@ -593,8 +595,9 @@ module Setup
593
595
  # Save configuration.
594
596
  def save_config
595
597
  out = to_yaml
596
- if not File.exist?(File.dirname(CONFIG_FILE))
597
- FileUtils.mkdir_p(File.dirname(CONFIG_FILE))
598
+ dir = File.dirname(CONFIG_FILE)
599
+ unless File.exist?(dir)
600
+ FileUtils.mkdir_p(dir)
598
601
  end
599
602
  if File.exist?(CONFIG_FILE)
600
603
  txt = File.read(CONFIG_FILE)