detroit 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.index +59 -0
  3. data/EXAMPLE.md +66 -64
  4. data/{HISTORY.rdoc → HISTORY.md} +32 -5
  5. data/{COPYING.rdoc → LICENSE.txt} +0 -0
  6. data/README.md +142 -0
  7. data/bin/detroit +1 -1
  8. data/lib/detroit.rb +112 -40
  9. data/lib/detroit.yml +44 -29
  10. data/lib/detroit/assembly.rb +49 -193
  11. data/lib/detroit/basic_tool.rb +200 -0
  12. data/lib/detroit/basic_utils.rb +66 -0
  13. data/lib/detroit/core_ext.rb +2 -136
  14. data/lib/detroit/{tool/core_ext → core_ext}/facets.rb +3 -0
  15. data/lib/detroit/{tool/core_ext → core_ext}/filetest.rb +0 -0
  16. data/lib/detroit/{tool/core_ext → core_ext}/shell_extensions.rb +0 -0
  17. data/lib/detroit/{tool/core_ext → core_ext}/to_actual_filename.rb +0 -0
  18. data/lib/detroit/{tool/core_ext → core_ext}/to_console.rb +1 -0
  19. data/lib/detroit/{tool/core_ext → core_ext}/to_list.rb +0 -0
  20. data/lib/detroit/{tool/core_ext → core_ext}/to_yamlfrag.rb +0 -0
  21. data/lib/detroit/{tool/core_ext → core_ext}/unfold_paragraphs.rb +0 -0
  22. data/lib/detroit/{tool/email_utils.rb → email_utils.rb} +3 -1
  23. data/lib/detroit/exec.rb +55 -0
  24. data/lib/detroit/project.rb +134 -0
  25. data/lib/detroit/ruby_utils.rb +29 -0
  26. data/lib/detroit/{tool/shell_utils.rb → shell_utils.rb} +10 -5
  27. data/lib/detroit/toolchain.rb +6 -0
  28. data/lib/detroit/toolchain/cli.rb +320 -0
  29. data/lib/detroit/toolchain/config.rb +223 -0
  30. data/lib/detroit/toolchain/runner.rb +678 -0
  31. data/lib/detroit/toolchain/script.rb +248 -0
  32. data/lib/detroit/toolchain/worker.rb +84 -0
  33. data/man/detroit.1 +116 -0
  34. data/man/detroit.1.html +171 -0
  35. data/man/detroit.1.ronn +99 -0
  36. metadata +90 -51
  37. data/.ruby +0 -44
  38. data/README.rdoc +0 -132
  39. data/lib/detroit/application.rb +0 -463
  40. data/lib/detroit/assembly_system.rb +0 -80
  41. data/lib/detroit/config.rb +0 -203
  42. data/lib/detroit/control.rb +0 -129
  43. data/lib/detroit/custom.rb +0 -102
  44. data/lib/detroit/dsl.rb +0 -55
  45. data/lib/detroit/service.rb +0 -78
  46. data/lib/detroit/standard_assembly.rb +0 -51
  47. data/lib/detroit/tool.rb +0 -295
  48. data/lib/detroit/tool/core_ext.rb +0 -3
  49. data/lib/detroit/tool/project_utils.rb +0 -41
@@ -0,0 +1,99 @@
1
+ detroit(1) - a life-cycle build tool
2
+ ====================================
3
+
4
+ ## DESCRIPTION
5
+
6
+ Detroit is a software production management aid. Detroit utilizes a
7
+ life-cycle methodology to help developers prepare and release software
8
+ in a clear, repeatable, linear fashion. While programmed in and well
9
+ suited to Ruby projects, Detroit can utilized for any build requirements.
10
+
11
+
12
+ ## USAGE
13
+
14
+ To utilize Detroit add a `Toolchain` file to your project's root directory.
15
+ In this file add instantiation of tools, configured to your projects build
16
+ requirements. Toolchain files can be written in YAML or Ruby.
17
+
18
+ For example to generate RDoc's for a project, a tool might be defined:
19
+
20
+ rdoc:
21
+ tool: rdoc
22
+ files:
23
+ - lib
24
+ - '[A-Z]*.*'
25
+ main: README.md
26
+
27
+ See the online [User Guide](http://wiki.rubyworks.github.com/detroit) for
28
+ more details on creating toolchain files.
29
+
30
+ Once a toolchain file is in place, the `detroit` command line tool can be used
31
+ to invoke the tools. For example, to generate documentation:
32
+
33
+ $ detroit document
34
+
35
+ This will run through all standard stations up to and including `document`.
36
+ Since the RDoc tool we configured above defines a document job, it would be
37
+ run in due course.
38
+
39
+
40
+ ## OPTIONS
41
+
42
+ These are the available options for the `detroit` command line tool.
43
+
44
+ * `-m`, `--multitask`
45
+ Run work elements in parallel.
46
+
47
+ * `-S`, `--skip=SERVICE`
48
+ Skip a service.
49
+
50
+ * `-s`, `--system=NAME`
51
+ Select assembly system. Default is 'standard'.
52
+
53
+ * `-t`, `--toolchain=FILE`
54
+ Use specific toolchain file(s).
55
+
56
+ * `-F`, `--force`
57
+ Force operations.
58
+
59
+ * `--trace`
60
+ Run in TRACE mode.
61
+
62
+ * `--trial`
63
+ Run in TRIAL mode (no disk writes).
64
+
65
+ * `--verbose`
66
+ Provide extra output.
67
+
68
+ * `-q`, `--quiet`
69
+ Run silently.
70
+
71
+ * `-I=PATH`
72
+ Add directory to $LOAD_PATH
73
+
74
+ * `--debug`
75
+ Run with $DEBUG set to true.
76
+
77
+ * `--warn`
78
+ Run with $VERBOSE set to true.
79
+
80
+ * `--help [TOOL]`
81
+ Display this help message.
82
+
83
+ * `-c`, `--config=TOOL`
84
+ Produce a configuration template.
85
+
86
+
87
+ ## RESOURCES
88
+
89
+ * [Homepage](http://rubyworks.github.com/detroit)
90
+ * [Development](http://github.com/rubyworks/detroit)
91
+ * [Mailing List](http://googlegroups.com/group/rubyworks-mailinglist)
92
+
93
+
94
+ ## COPYRIGHT
95
+
96
+ Copyright (c) 2011 Rubyworks
97
+
98
+ Detroit is distributable in accordance with the terms of the GPL v3 license.
99
+
metadata CHANGED
@@ -1,49 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: detroit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
5
- prerelease:
4
+ version: 0.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Trans
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-04-02 00:00:00.000000000 Z
11
+ date: 2014-01-13 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: facets
16
- requirement: &19752120 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *19752120
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
- name: pom
27
- requirement: &19751560 !ruby/object:Gem::Requirement
28
- none: false
28
+ name: indexer
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *19751560
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: qed
38
- requirement: &19751040 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - '>='
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *19751040
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: detroit-yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: detroit-gem
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
47
83
  description: Detroit is an advanced lifecycle build system. With Detroit, build tasks
48
84
  are user defined service instances tied to stops along a track. Whenever the detroit
49
85
  console command is run, a track is followed from beginning to designated destination.
@@ -53,65 +89,68 @@ executables:
53
89
  - detroit
54
90
  extensions: []
55
91
  extra_rdoc_files:
56
- - HISTORY.rdoc
57
- - README.rdoc
58
- - COPYING.rdoc
92
+ - LICENSE.txt
59
93
  - EXAMPLE.md
94
+ - README.md
95
+ - HISTORY.md
60
96
  files:
61
- - .ruby
97
+ - .index
62
98
  - bin/detroit
63
- - lib/detroit/application.rb
64
99
  - lib/detroit/assembly.rb
65
- - lib/detroit/assembly_system.rb
66
- - lib/detroit/config.rb
67
- - lib/detroit/control.rb
100
+ - lib/detroit/basic_tool.rb
101
+ - lib/detroit/basic_utils.rb
102
+ - lib/detroit/core_ext/facets.rb
103
+ - lib/detroit/core_ext/filetest.rb
104
+ - lib/detroit/core_ext/shell_extensions.rb
105
+ - lib/detroit/core_ext/to_actual_filename.rb
106
+ - lib/detroit/core_ext/to_console.rb
107
+ - lib/detroit/core_ext/to_list.rb
108
+ - lib/detroit/core_ext/to_yamlfrag.rb
109
+ - lib/detroit/core_ext/unfold_paragraphs.rb
68
110
  - lib/detroit/core_ext.rb
69
- - lib/detroit/custom.rb
70
- - lib/detroit/dsl.rb
71
- - lib/detroit/service.rb
72
- - lib/detroit/standard_assembly.rb
73
- - lib/detroit/tool/core_ext/facets.rb
74
- - lib/detroit/tool/core_ext/filetest.rb
75
- - lib/detroit/tool/core_ext/shell_extensions.rb
76
- - lib/detroit/tool/core_ext/to_actual_filename.rb
77
- - lib/detroit/tool/core_ext/to_console.rb
78
- - lib/detroit/tool/core_ext/to_list.rb
79
- - lib/detroit/tool/core_ext/to_yamlfrag.rb
80
- - lib/detroit/tool/core_ext/unfold_paragraphs.rb
81
- - lib/detroit/tool/core_ext.rb
82
- - lib/detroit/tool/email_utils.rb
83
- - lib/detroit/tool/project_utils.rb
84
- - lib/detroit/tool/shell_utils.rb
85
- - lib/detroit/tool.rb
111
+ - lib/detroit/email_utils.rb
112
+ - lib/detroit/exec.rb
113
+ - lib/detroit/project.rb
114
+ - lib/detroit/ruby_utils.rb
115
+ - lib/detroit/shell_utils.rb
116
+ - lib/detroit/toolchain/cli.rb
117
+ - lib/detroit/toolchain/config.rb
118
+ - lib/detroit/toolchain/runner.rb
119
+ - lib/detroit/toolchain/script.rb
120
+ - lib/detroit/toolchain/worker.rb
121
+ - lib/detroit/toolchain.rb
86
122
  - lib/detroit.rb
87
123
  - lib/detroit.yml
88
- - HISTORY.rdoc
89
- - README.rdoc
90
- - COPYING.rdoc
124
+ - man/detroit.1
125
+ - man/detroit.1.html
126
+ - man/detroit.1.ronn
91
127
  - EXAMPLE.md
128
+ - README.md
129
+ - HISTORY.md
130
+ - LICENSE.txt
92
131
  homepage: http://rubyworks.github.com/detroit
93
132
  licenses:
94
- - GPL3
133
+ - GPL-3.0
134
+ metadata: {}
95
135
  post_install_message:
96
136
  rdoc_options: []
97
137
  require_paths:
98
138
  - lib
99
139
  required_ruby_version: !ruby/object:Gem::Requirement
100
- none: false
101
140
  requirements:
102
- - - ! '>='
141
+ - - '>='
103
142
  - !ruby/object:Gem::Version
104
143
  version: '0'
105
144
  required_rubygems_version: !ruby/object:Gem::Requirement
106
- none: false
107
145
  requirements:
108
- - - ! '>='
146
+ - - '>='
109
147
  - !ruby/object:Gem::Version
110
148
  version: '0'
111
149
  requirements: []
112
150
  rubyforge_project:
113
- rubygems_version: 1.8.11
151
+ rubygems_version: 2.0.3
114
152
  signing_key:
115
- specification_version: 3
153
+ specification_version: 4
116
154
  summary: Software Production Mangement
117
155
  test_files: []
156
+ has_rdoc:
data/.ruby DELETED
@@ -1,44 +0,0 @@
1
- ---
2
- source:
3
- - PROFILE
4
- - meta
5
- authors:
6
- - name: Trans
7
- email: transfire@gmail.com
8
- copyrights:
9
- - holder: Thomas Sawyer
10
- year: '2007'
11
- license: GPL3
12
- requirements:
13
- - name: facets
14
- - name: pom
15
- - name: qed
16
- groups:
17
- - test
18
- development: true
19
- dependencies: []
20
- alternatives: []
21
- conflicts: []
22
- repositories:
23
- - uri: http://github.com/proutils/detroit.git
24
- scm: git
25
- name: upstream
26
- resources:
27
- home: http://rubyworks.github.com/detroit
28
- code: http://github.com/rubyworks/detroit
29
- mail: http://groups.google.com/rubyworks-mailinglist
30
- extra: {}
31
- load_path:
32
- - lib
33
- revision: 0
34
- created: '2007-10-10'
35
- summary: Software Production Mangement
36
- title: Detroit
37
- version: 0.3.0
38
- name: detroit
39
- suite: detroit
40
- description: Detroit is an advanced lifecycle build system. With Detroit, build tasks
41
- are user defined service instances tied to stops along a track. Whenever the detroit
42
- console command is run, a track is followed from beginning to designated destination.
43
- organization: rubyworks
44
- date: '2012-04-01'
@@ -1,132 +0,0 @@
1
- = Detroit
2
-
3
- {Homepage}[http://rubyworks.github.com/detroit] /
4
- {Development}[http://github.com/rubyworks/detroit] /
5
- {Mailing List}[http://googlegroups.com/group/rubyworks-mailinglist]
6
-
7
-
8
- == DESCRIPTION
9
-
10
- Detroit is a software production management aid for Ruby developers.
11
- Detroit utilizes a life-cycle methodology to help developers prepare and
12
- release Ruby software in a clear, repeatable, linear fashion.
13
-
14
-
15
- == HOW IT WORKS
16
-
17
- Detroit defines development processions which consist of a set of named
18
- production _lines_, or _tracks_, each with a series of named _stations_,
19
- or _stops_. Developers attach work elements to stations by configuring
20
- service instances in a project's Schedule or *.schedule files. Schedules
21
- are written in either YAML or a Ruby DSL.
22
-
23
- For example, a RubyForge service can be defined:
24
-
25
- rubyforge:
26
- service: Rubyforge
27
- sitemap:
28
- site: <%= name %>
29
- active: true
30
-
31
- As this example demonstrates, service configurations can draw on project
32
- metadata via ERB embedded tags. Detroit gathers this information using
33
- {.ruby}[http://dotruby.github.com/dotruby], but the data source can be
34
- easily customized to meet the needs of different projects.
35
-
36
- With service configuration and metadata in place, using Detroit is simply
37
- a matter of passing a line name and stop to the +detroit+ command line
38
- tool. For example,
39
-
40
- $ detroit main:document
41
-
42
- The track name and its stop are separated by a colon. This command
43
- would run every stop on the +main+ track, in order, until it completes
44
- the +document+ stop. Since +main+ is the default track, we can acheive
45
- the same effect without specifying it.
46
-
47
- $ detroit document
48
-
49
- The use of tracks may seem constrictive to users of tools like Rake, but
50
- there is a benefit to this approach. It helps ensure a project is
51
- always up-to-date and in-sync --that no necessary steps are missed.
52
- Detroit includes three tracks out of the box. The most significant of
53
- which is +main+ which entails a route with ordred stops:
54
-
55
- prepare # prepare services and ensure requirements
56
- generate # code generation
57
- compile # compile source code
58
- test # run tests and/or specifications
59
- analyze # run code analysis
60
- document # generate documentation
61
- package # create packages
62
- verify # post package verification (eg. integration tests)
63
- install # install package locally
64
- publish # publish website/documentation
65
- release # release packages
66
- deploy # deply system to servers
67
- promote # tell the world about you awesome work
68
-
69
- All tracks also have a maintainence subtrack which consits of three stops:
70
-
71
- reset # mark build files as out-of-date
72
- clean # remove minor build files
73
- purge # remove all build files
74
-
75
- Where reset marks generated files out-of-date, clean removes temporary
76
- products and purge removes all generated prodcuts.
77
-
78
- In additon to +main+, Detroit includes +site+ and +attn+ tracks which are used
79
- to generate and publish a project's website, and make project announcements
80
- respectively. They are simply useful subsets of the +main+ track.
81
-
82
- Please see http://rubyworks.github.com/detroit for more details on how to
83
- use Detroit, including the creation of custom tracks, stops and service plugins.
84
- Also try the <tt>--help</tt> option to see the detroit command's help
85
- information.
86
-
87
-
88
- == INSTALLATION
89
-
90
- Detroit can, of course, be installed via RubyGems:
91
-
92
- $ gem install detroit
93
-
94
- We no longer recommend it, but Detroit can also be installed the
95
- old-fashion way by downloading the .tar.gz package and using
96
- Ruby Setup (See http://setup.rubyforge.org).
97
-
98
- $ tar -xvzf detroit-1.0.0.tar.gz
99
- $ cd detroit-1.0.0
100
- $ sudo setup.rb
101
-
102
- Ruby Setup is stand-alone version of the original setup.rb script.
103
-
104
-
105
- == ISSUES
106
-
107
- All in all, Detroit works well. There are some rough edges with regards
108
- to the built-in service plugins, so from time to time you might run into
109
- an odd error. Ususally it just means a service confirguraiton needs
110
- adjustment.
111
-
112
- Please note, Windows support has not been considered at all. While I do
113
- not see any specific reason it should not work, there may well be issues
114
- I have not considered since I do not use Windows. If you are Windows user
115
- and give Detroit a try please let us know of any issues you encounter.
116
-
117
-
118
- == HISTORY
119
-
120
- Detroit is actaully the offspring of Reap v10, and was called Syckle for
121
- a number of years as it matured. It represents many years of design considerations
122
- (and reconsiderations) that evolved Reap from its simple Rake extension origins,
123
- which pre-dated Hoe, to the life-cycle system it is today.
124
-
125
-
126
- == COPYRIGHT & LICENSE
127
-
128
- (GPL v3 License)
129
-
130
- Copyright (c) 2007 Thomas Sawyer
131
-
132
- See COPYING.rdoc and GPL3.txt for details.