detroit 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.