ditz-str 0.0.1
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.
- data/.document +5 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +24 -0
- data/LICENSE +674 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/README.txt +143 -0
- data/Rakefile +55 -0
- data/VERSION +1 -0
- data/bin/ditz-str +189 -0
- data/bugs/issue-02615b8c3dd0382c92f350ce2158ecfe94d11ef8.yaml +22 -0
- data/bugs/issue-06a3bbf35a60c4da2d8ea0fdc86164263126d6b2.yaml +22 -0
- data/bugs/issue-0c00c1d7fdffaad304e62d79d9b3d5e92547055b.yaml +38 -0
- data/bugs/issue-20dad4b4533d6d76d496fe5970098f1eb8efd561.yaml +26 -0
- data/bugs/issue-360ae6529dbc66358fde6b532cbea79ece37a670.yaml +22 -0
- data/bugs/issue-5177d61bf3c2783f71ef63e6e2c5e720247ef699.yaml +18 -0
- data/bugs/issue-695b564c210da1965a2bb38eef782178aead6952.yaml +26 -0
- data/bugs/issue-7d0ce6429a9fb5fa09ce3376a8921a5ecb7ecfe5.yaml +34 -0
- data/bugs/issue-a04462fa22ab6e1b02cfdd052d1f6c6f491f08f5.yaml +22 -0
- data/bugs/issue-bca54ca5107eabc3b281701041cc36ea0641cbdd.yaml +26 -0
- data/bugs/issue-d0c7d04b014d705c5fd865e4d487b5e5b6983c33.yaml +26 -0
- data/bugs/issue-f94b879842aa0274aa74fc2833252d4a06ec65cc.yaml +22 -0
- data/bugs/project.yaml +18 -0
- data/data/ditz-str/blue-check.png +0 -0
- data/data/ditz-str/close.rhtml +39 -0
- data/data/ditz-str/component.rhtml +38 -0
- data/data/ditz-str/dropdown.css +11 -0
- data/data/ditz-str/dropdown.js +58 -0
- data/data/ditz-str/edit_issue.rhtml +53 -0
- data/data/ditz-str/green-bar.png +0 -0
- data/data/ditz-str/green-check.png +0 -0
- data/data/ditz-str/header.gif +0 -0
- data/data/ditz-str/header_over.gif +0 -0
- data/data/ditz-str/index.rhtml +148 -0
- data/data/ditz-str/issue.rhtml +152 -0
- data/data/ditz-str/issue_table.rhtml +28 -0
- data/data/ditz-str/new_component.rhtml +28 -0
- data/data/ditz-str/new_issue.rhtml +57 -0
- data/data/ditz-str/new_release.rhtml +29 -0
- data/data/ditz-str/plugins/git-sync.rb +83 -0
- data/data/ditz-str/plugins/git.rb +153 -0
- data/data/ditz-str/plugins/issue-claiming.rb +174 -0
- data/data/ditz-str/red-check.png +0 -0
- data/data/ditz-str/release.rhtml +111 -0
- data/data/ditz-str/style.css +236 -0
- data/data/ditz-str/unassigned.rhtml +37 -0
- data/data/ditz-str/yellow-bar.png +0 -0
- data/ditz-str.gemspec +121 -0
- data/lib/ditzstr/brick.rb +251 -0
- data/lib/ditzstr/file-storage.rb +54 -0
- data/lib/ditzstr/hook.rb +67 -0
- data/lib/ditzstr/html.rb +104 -0
- data/lib/ditzstr/lowline.rb +201 -0
- data/lib/ditzstr/model-objects.rb +346 -0
- data/lib/ditzstr/model.rb +265 -0
- data/lib/ditzstr/operator.rb +593 -0
- data/lib/ditzstr/trollop.rb +614 -0
- data/lib/ditzstr/util.rb +61 -0
- data/lib/ditzstr/view.rb +16 -0
- data/lib/ditzstr/views.rb +157 -0
- data/lib/ditzstr.rb +69 -0
- data/man/ditz.1 +38 -0
- data/test/helper.rb +18 -0
- data/test/test_ditz-str.rb +7 -0
- metadata +219 -0
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Nils F. Sandell
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
= ditz-str
|
2
|
+
|
3
|
+
Description goes here.
|
4
|
+
|
5
|
+
== Contributing to ditz-str
|
6
|
+
|
7
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
8
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
9
|
+
* Fork the project
|
10
|
+
* Start a feature/bugfix branch
|
11
|
+
* Commit and push until you are happy with your contribution
|
12
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
13
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
14
|
+
|
15
|
+
== Copyright
|
16
|
+
|
17
|
+
Copyright (c) 2011 Nils F. Sandell. See LICENSE.txt for
|
18
|
+
further details.
|
19
|
+
|
data/README.txt
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
== ditz-str
|
2
|
+
|
3
|
+
by William Morgan <wmorgan-ditz at the masanjin dot nets>
|
4
|
+
|
5
|
+
modified by Nils F. Sandell <nils.sandell at systemstechnologyresearch dot com>
|
6
|
+
|
7
|
+
== DESCRIPTION
|
8
|
+
|
9
|
+
Ditz is a simple, light-weight distributed issue tracker designed to work with
|
10
|
+
distributed version control systems like git, darcs, Mercurial, and Bazaar. It
|
11
|
+
can also be used with centralized systems like SVN.
|
12
|
+
|
13
|
+
Ditz maintains an issue database directory on disk, with files written in a
|
14
|
+
line-based and human-editable format. This directory can be kept under version
|
15
|
+
control, alongside project code.
|
16
|
+
|
17
|
+
Ditz provides a simple, console-based interface for creating and updating the
|
18
|
+
issue database files, and some basic static HTML generation capabilities for
|
19
|
+
producing world-readable status pages (for a demo, see the ditz ditz page).
|
20
|
+
|
21
|
+
Ditz includes a robust plugin system for adding commands, model fields, and
|
22
|
+
modifying output. See PLUGINS.txt for documentation on the pre-shipped plugins.
|
23
|
+
|
24
|
+
Ditz currently offers no central public method of bug submission.
|
25
|
+
|
26
|
+
== USING DITZ
|
27
|
+
|
28
|
+
There are several different ways to use Ditz:
|
29
|
+
|
30
|
+
1. Treat issue change the same as code change: include it as part of commits,
|
31
|
+
and merge it with changes from other developers, resolving conflicts in the
|
32
|
+
usual manner.
|
33
|
+
2. Keep the issue database in the repository but in a separate branch. Issue
|
34
|
+
changes can be managed by your VCS, but is not tied directly to code
|
35
|
+
commits.
|
36
|
+
3. Keep the issue database separate and not under VCS at all.
|
37
|
+
|
38
|
+
All of these options are supported; the choice of which to use depends on your
|
39
|
+
workflow.
|
40
|
+
|
41
|
+
Option #1 is probably most appropriate for the unsynchronized, distributed
|
42
|
+
development, since it allows individual developers to modify issue state with a
|
43
|
+
minimum of hassle. Option #2 is most suitable for synchronized development, as
|
44
|
+
issue state change can be transmitted independently of code change (see also
|
45
|
+
the git-sync plugin) and can act as a sychronization mechanism. Option #3 is
|
46
|
+
only useful with some other distribution mechanism, like a central web
|
47
|
+
interface.
|
48
|
+
|
49
|
+
== COMMANDLINE SYNOPSIS
|
50
|
+
|
51
|
+
# set up project. creates the bugs.yaml file.
|
52
|
+
1. ditz init
|
53
|
+
2. ditz add-release
|
54
|
+
|
55
|
+
# add an issue
|
56
|
+
3. ditz add
|
57
|
+
|
58
|
+
# where am i?
|
59
|
+
4. ditz status
|
60
|
+
5. ditz todo (or simply "ditz")
|
61
|
+
|
62
|
+
# do work
|
63
|
+
6. write code
|
64
|
+
7. ditz close <issue-id>
|
65
|
+
8. commit
|
66
|
+
9. goto 3
|
67
|
+
|
68
|
+
# finished!
|
69
|
+
10. ditz release <release-name>
|
70
|
+
|
71
|
+
== THE DITZ DATA MODEL
|
72
|
+
|
73
|
+
By default, Ditz includes the bare minimum set of features necessary for
|
74
|
+
open-source development. Features like time spent, priority, assignment of
|
75
|
+
tasks to developers, due dates, etc. are purposely relegated to the plugin
|
76
|
+
system.
|
77
|
+
|
78
|
+
A Ditz project consists of issues, releases and components.
|
79
|
+
|
80
|
+
Issues:
|
81
|
+
Issues are the fundamental currency of issue tracking. A Ditz issue is either
|
82
|
+
a feature or a bug, but this distinction currently doesn't affect anything
|
83
|
+
other than how they're displayed.
|
84
|
+
|
85
|
+
Each issue belongs to exactly one component, and is part of zero or one
|
86
|
+
releases.
|
87
|
+
|
88
|
+
Each issues has an exportable id, in the form of 40 random hex characters.
|
89
|
+
This id is "guaranteed" to be unique across all possible issues and
|
90
|
+
developers, present and future. Issue ids are typically not exposed to the
|
91
|
+
user.
|
92
|
+
|
93
|
+
Issues also have a non-global, non-exportable name, which is short and
|
94
|
+
human-readable. All Ditz commands use issue names in addition to issue ids.
|
95
|
+
Issue names (but not issue ids) may change in certain circumstances, e.g.
|
96
|
+
after a "ditz drop" command.
|
97
|
+
|
98
|
+
Issue names can be specified in comments, titles and descriptions, and Ditz
|
99
|
+
will automatically rewrite them as necessary when they change.
|
100
|
+
|
101
|
+
Components:
|
102
|
+
There is always one "general" component, named after the project itself. In
|
103
|
+
the simplest case, this is the only component, and the user is never bothered
|
104
|
+
with the question of which component to assign an issue to.
|
105
|
+
|
106
|
+
Components simply provide a way of organizing issues, and have no real
|
107
|
+
functionality. Issues names are derived from the component they're assigned
|
108
|
+
to.
|
109
|
+
|
110
|
+
Releases:
|
111
|
+
A release is the primary grouping mechanism for issues. Status commands like
|
112
|
+
"ditz status" and "ditz todo" always group issues by release. When a release
|
113
|
+
is 100% complete, it can be marked as released, and its issues will cease
|
114
|
+
appearing in Ditz status and todo messages.
|
115
|
+
|
116
|
+
== LEARNING MORE
|
117
|
+
|
118
|
+
* ditz help
|
119
|
+
* find $DITZ_INSTALL_DIR -type f | xargs cat
|
120
|
+
|
121
|
+
== REQUIREMENTS
|
122
|
+
|
123
|
+
* trollop >= 1.8.2, if running via RubyGems.
|
124
|
+
|
125
|
+
== INSTALLATION
|
126
|
+
|
127
|
+
Download tarballs from http://rubyforge.org/projects/ditz/, or command your
|
128
|
+
computer to "gem install ditz".
|
129
|
+
|
130
|
+
== LICENSE
|
131
|
+
|
132
|
+
Copyright (c) 2008 William Morgan.
|
133
|
+
|
134
|
+
This program is free software: you can redistribute it and/or modify
|
135
|
+
it under the terms of the GNU General Public License as published by
|
136
|
+
the Free Software Foundation, either version 3 of the License, or
|
137
|
+
(at your option) any later version.
|
138
|
+
|
139
|
+
This program is distributed in the hope that it will be useful,
|
140
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
141
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
142
|
+
GNU General Public License for more details.
|
143
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "ditz-str"
|
18
|
+
gem.homepage = "http://github.com/nsandell/ditz-str"
|
19
|
+
gem.license = "GPL"
|
20
|
+
gem.summary = "Customized STR version of ditz issue tracking system (original by William Morgan)."
|
21
|
+
gem.description = "Modification of the ditz issue tracking originally created by William Morgan. First new feature is a portable web server for interacting with the issue system."
|
22
|
+
gem.email = "nils.sandell@systemstechnologyresearch.com"
|
23
|
+
gem.authors = ["Nils F. Sandell"]
|
24
|
+
gem.files.exclude 'bugs'
|
25
|
+
gem.add_dependency 'trollop', '>= 1.9'
|
26
|
+
# dependencies defined in Gemfile
|
27
|
+
end
|
28
|
+
Jeweler::RubygemsDotOrgTasks.new
|
29
|
+
|
30
|
+
require 'rake/testtask'
|
31
|
+
Rake::TestTask.new(:test) do |test|
|
32
|
+
test.libs << 'lib' << 'test'
|
33
|
+
test.pattern = 'test/**/test_*.rb'
|
34
|
+
test.verbose = true
|
35
|
+
end
|
36
|
+
|
37
|
+
require 'rcov/rcovtask'
|
38
|
+
Rcov::RcovTask.new do |test|
|
39
|
+
test.libs << 'test'
|
40
|
+
test.pattern = 'test/**/test_*.rb'
|
41
|
+
test.verbose = true
|
42
|
+
test.rcov_opts << '--exclude "gems/*"'
|
43
|
+
end
|
44
|
+
|
45
|
+
task :default => :test
|
46
|
+
|
47
|
+
require 'rdoc/task'
|
48
|
+
Rake::RDocTask.new do |rdoc|
|
49
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
50
|
+
|
51
|
+
rdoc.rdoc_dir = 'rdoc'
|
52
|
+
rdoc.title = "ditz-str #{version}"
|
53
|
+
rdoc.rdoc_files.include('README*')
|
54
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
55
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.1
|
data/bin/ditz-str
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
#!/usr/bin/ruby1.8
|
2
|
+
|
3
|
+
## requires are split in two for efficiency reasons: ditz should be really
|
4
|
+
## fast when using it for completion.
|
5
|
+
require 'ditzstr/operator'
|
6
|
+
op = DitzStr::Operator.new
|
7
|
+
|
8
|
+
## a secret option for shell completion
|
9
|
+
if ARGV.include? '--commands'
|
10
|
+
puts op.class.operations.map { |name, _| name }
|
11
|
+
exit 0
|
12
|
+
end
|
13
|
+
|
14
|
+
begin
|
15
|
+
require 'rubygems'
|
16
|
+
rescue LoadError
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'fileutils'
|
20
|
+
require 'pathname'
|
21
|
+
require 'ditzstr/trollop'; include Trollop
|
22
|
+
require "ditzstr"
|
23
|
+
|
24
|
+
CONFIG_FN = ".ditz-config"
|
25
|
+
PLUGIN_FN = ".ditz-plugins"
|
26
|
+
|
27
|
+
config_dir = DitzStr::find_dir_containing CONFIG_FN
|
28
|
+
plugin_dir = DitzStr::find_dir_containing PLUGIN_FN
|
29
|
+
|
30
|
+
$opts = options do
|
31
|
+
version "ditz #{DitzStr::VERSION}"
|
32
|
+
opt :issue_dir, "Issue database dir", :default => "bugs"
|
33
|
+
opt :config_file, "Configuration file", :default => File.join(config_dir || ".", CONFIG_FN)
|
34
|
+
opt :plugins_file, "Plugins file", :default => File.join(plugin_dir || ".", PLUGIN_FN)
|
35
|
+
opt :verbose, "Verbose output", :default => false
|
36
|
+
opt :list_hooks, "List all hooks and descriptions, and quit.", :short => 'l', :default => false
|
37
|
+
stop_on_unknown
|
38
|
+
end
|
39
|
+
$verbose = true if $opts[:verbose]
|
40
|
+
|
41
|
+
DitzStr::HookManager.register :startup, <<EOS
|
42
|
+
Executes at startup
|
43
|
+
|
44
|
+
Variables: project, config
|
45
|
+
No return value.
|
46
|
+
EOS
|
47
|
+
|
48
|
+
DitzStr::HookManager.register :after_add, <<EOS
|
49
|
+
Executes before terminating if new issue files has been created.
|
50
|
+
Basically you want to instruct your SCM that these files has
|
51
|
+
been added.
|
52
|
+
|
53
|
+
Variables: project, config, issues
|
54
|
+
No return value.
|
55
|
+
EOS
|
56
|
+
|
57
|
+
DitzStr::HookManager.register :after_delete, <<EOS
|
58
|
+
Executes before terminating if new issue files has been deleted.
|
59
|
+
Basically you want to instruct your SCM that these files has
|
60
|
+
been deleted.
|
61
|
+
|
62
|
+
Variables: project, config, issues
|
63
|
+
No return value.
|
64
|
+
EOS
|
65
|
+
|
66
|
+
DitzStr::HookManager.register :after_update, <<EOS
|
67
|
+
Executes before terminating if new issue files has been updated.
|
68
|
+
You may want to instruct your SCM about these changes.
|
69
|
+
Note that new issues are not considered updated.
|
70
|
+
|
71
|
+
Variables: project, config, issues
|
72
|
+
No return value.
|
73
|
+
EOS
|
74
|
+
|
75
|
+
if $opts[:list_hooks]
|
76
|
+
DitzStr::HookManager.print_hooks
|
77
|
+
exit 0
|
78
|
+
end
|
79
|
+
|
80
|
+
begin
|
81
|
+
DitzStr::load_plugins $opts[:plugins_file]
|
82
|
+
rescue SystemCallError => e
|
83
|
+
DitzStr::debug "can't load plugins file: #{e.message}"
|
84
|
+
end
|
85
|
+
|
86
|
+
config = begin
|
87
|
+
DitzStr::debug "loading config from #{$opts[:config_file]}"
|
88
|
+
DitzStr::Config.from $opts[:config_file]
|
89
|
+
rescue SystemCallError => e
|
90
|
+
if ARGV.member? "<options>"
|
91
|
+
## special case here. if we're asking for tab completion, and the config
|
92
|
+
## file doesn't exist, don't do the interactive building. just make a
|
93
|
+
## fake empty one and carry on.
|
94
|
+
DitzStr::Config.new
|
95
|
+
else
|
96
|
+
puts <<EOS
|
97
|
+
I wasn't able to find a configuration file #{$opts[:config_file]}.
|
98
|
+
We'll set it up right now.
|
99
|
+
EOS
|
100
|
+
DitzStr::Config.create_interactively.save! $opts[:config_file]
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
issue_dir = Pathname.new(config.issue_dir || $opts[:issue_dir])
|
105
|
+
cmd = ARGV.shift || "todo"
|
106
|
+
unless op.has_operation? cmd
|
107
|
+
die "no such command: #{cmd}"
|
108
|
+
end
|
109
|
+
|
110
|
+
case cmd # some special commands not handled by Ditz::Operator
|
111
|
+
when "init"
|
112
|
+
die "#{issue_dir} directory already exists" if issue_dir.exist?
|
113
|
+
issue_dir.mkdir
|
114
|
+
fn = issue_dir + DitzStr::FileStorage::PROJECT_FN
|
115
|
+
project = op.init
|
116
|
+
project.save! fn
|
117
|
+
puts "Ok, #{issue_dir} directory created successfully."
|
118
|
+
exit
|
119
|
+
when "help"
|
120
|
+
op.do "help", nil, nil, ARGV
|
121
|
+
exit
|
122
|
+
end
|
123
|
+
|
124
|
+
$project_root = DitzStr::find_dir_containing(issue_dir + DitzStr::FileStorage::PROJECT_FN)
|
125
|
+
die "No #{issue_dir} directory---use 'ditz init' to initialize" unless $project_root
|
126
|
+
$project_root += issue_dir
|
127
|
+
|
128
|
+
storage = DitzStr::FileStorage.new $project_root
|
129
|
+
project = begin
|
130
|
+
storage.load
|
131
|
+
rescue SystemCallError, DitzStr::Project::Error => e
|
132
|
+
die "#{e.message} (use 'init' to initialize)"
|
133
|
+
end
|
134
|
+
|
135
|
+
DitzStr::HookManager.run :startup, project, config
|
136
|
+
|
137
|
+
DitzStr::debug "executing command #{cmd}"
|
138
|
+
begin
|
139
|
+
op.do cmd, project, config, ARGV
|
140
|
+
rescue DitzStr::Operator::Error, DitzStr::Release::Error, DitzStr::Project::Error, DitzStr::Issue::Error => e
|
141
|
+
$stderr.puts "Error: #{e.message}"
|
142
|
+
exit(-1)
|
143
|
+
rescue Errno::EPIPE, Interrupt
|
144
|
+
puts
|
145
|
+
exit 1
|
146
|
+
end
|
147
|
+
|
148
|
+
changed_issues = project.issues.select { |i| i.changed? }
|
149
|
+
changed_not_added_issues = changed_issues - project.added_issues
|
150
|
+
|
151
|
+
storage.save project
|
152
|
+
|
153
|
+
## at this point, for compatibility with older hook stuff, we set the pathname
|
154
|
+
## directly on the issues.
|
155
|
+
|
156
|
+
project.issues.each { |i| i.pathname = storage.filename_for_issue(i) }
|
157
|
+
unless project.added_issues.empty?
|
158
|
+
unless DitzStr::HookManager.run :after_add, project, config, project.added_issues
|
159
|
+
puts "You may have to inform your SCM that the following files have been added:"
|
160
|
+
project.added_issues.each { |i| puts " " + storage.filename_for_issue(i) }
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
unless project.deleted_issues.empty?
|
165
|
+
unless DitzStr::HookManager.run :after_delete, project, config, project.deleted_issues
|
166
|
+
puts "You may have to inform your SCM that the following files have been deleted:"
|
167
|
+
project.deleted_issues.each { |i| puts " " + storage.filename_for_issue(i) }
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
unless changed_not_added_issues.empty?
|
172
|
+
unless DitzStr::HookManager.run :after_update, project, config, changed_not_added_issues
|
173
|
+
puts "You may have to inform your SCM that the following files have been modified:"
|
174
|
+
changed_not_added_issues.each { |i| puts " " + storage.filename_for_issue(i) }
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
## hack upon a hack
|
179
|
+
if project.changed?
|
180
|
+
project.pathname = storage.filename_for_project
|
181
|
+
unless DitzStr::HookManager.run :after_update, project, config, [project]
|
182
|
+
puts "You may have to inform your SCM that the following files have been modified:"
|
183
|
+
puts " " + storage.filename_for_project
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
config.save! $opts[:config_file] if config.changed?
|
188
|
+
|
189
|
+
# vim: syntax=ruby
|
@@ -0,0 +1,22 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: Drop Issues.
|
3
|
+
desc: Add the ability to drop issues.
|
4
|
+
type: :feature
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :unstarted
|
9
|
+
disposition:
|
10
|
+
creation_time: 2011-11-10 04:45:04.254348 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: 02615b8c3dd0382c92f350ce2158ecfe94d11ef8
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-10 04:45:05.262005 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
19
|
+
- - 2011-11-10 04:54:19.142719 Z
|
20
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
21
|
+
- assigned to release Version 0.1 from unassigned
|
22
|
+
- ""
|
@@ -0,0 +1,22 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: Set component.
|
3
|
+
desc: Set a component for an issue.
|
4
|
+
type: :feature
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :unstarted
|
9
|
+
disposition:
|
10
|
+
creation_time: 2011-11-10 04:50:04.352971 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: 06a3bbf35a60c4da2d8ea0fdc86164263126d6b2
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-10 04:50:04.840674 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
19
|
+
- - 2011-11-10 04:54:28.390552 Z
|
20
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
21
|
+
- assigned to release Version 0.1 from unassigned
|
22
|
+
- ""
|
@@ -0,0 +1,38 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: !str:WEBrick::HTTPUtils::FormData Create unassigned issue page
|
3
|
+
desc: !str:WEBrick::HTTPUtils::FormData Needs to be an unassigned issue page to list them.
|
4
|
+
type: !str:WEBrick::HTTPUtils::FormData
|
5
|
+
str: feature
|
6
|
+
"@filename":
|
7
|
+
"@header": &id001 {}
|
8
|
+
|
9
|
+
"@name": type
|
10
|
+
"@next_data":
|
11
|
+
"@raw_header": &id002 []
|
12
|
+
|
13
|
+
component: !str:WEBrick::HTTPUtils::FormData
|
14
|
+
str: WEBrick interface
|
15
|
+
"@filename":
|
16
|
+
"@header": *id001
|
17
|
+
"@name": component
|
18
|
+
"@next_data":
|
19
|
+
"@raw_header": *id002
|
20
|
+
release: !str:WEBrick::HTTPUtils::FormData
|
21
|
+
str: Version 0.1
|
22
|
+
"@filename":
|
23
|
+
"@header": *id001
|
24
|
+
"@name": release
|
25
|
+
"@next_data":
|
26
|
+
"@raw_header": *id002
|
27
|
+
reporter: poop
|
28
|
+
status: :unstarted
|
29
|
+
disposition:
|
30
|
+
creation_time: 2011-12-02 04:59:45.828646 Z
|
31
|
+
references: []
|
32
|
+
|
33
|
+
id: 0c00c1d7fdffaad304e62d79d9b3d5e92547055b
|
34
|
+
log_events:
|
35
|
+
- - 2011-12-02 04:59:45.828744 Z
|
36
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
37
|
+
- created
|
38
|
+
- !str:WEBrick::HTTPUtils::FormData
|
@@ -0,0 +1,26 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: Comment on issues.
|
3
|
+
desc: Add the ability to comment on issues.
|
4
|
+
type: :feature
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :closed
|
9
|
+
disposition: :fixed
|
10
|
+
creation_time: 2011-11-10 04:44:22.986138 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: 20dad4b4533d6d76d496fe5970098f1eb8efd561
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-10 04:44:23.570076 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
19
|
+
- - 2011-11-10 04:54:38.526098 Z
|
20
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
21
|
+
- assigned to release Version 0.1 from unassigned
|
22
|
+
- ""
|
23
|
+
- - 2011-11-16 03:33:45.086156 Z
|
24
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
25
|
+
- closed with disposition fixed
|
26
|
+
- ""
|
@@ -0,0 +1,22 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: Edit issues.
|
3
|
+
desc: Add the ability to edit issues.
|
4
|
+
type: :feature
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :unstarted
|
9
|
+
disposition:
|
10
|
+
creation_time: 2011-11-10 04:48:34.189709 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: 360ae6529dbc66358fde6b532cbea79ece37a670
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-10 04:48:34.733561 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
19
|
+
- - 2011-11-10 04:54:47.037943 Z
|
20
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
21
|
+
- assigned to release Version 0.1 from unassigned
|
22
|
+
- ""
|
@@ -0,0 +1,18 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: New issue creator field doesn't work.
|
3
|
+
desc: When creating a new issue the creator field is ignored and the default user is used.
|
4
|
+
type: :bugfix
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :unstarted
|
9
|
+
disposition:
|
10
|
+
creation_time: 2011-11-27 20:39:40.831393 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: 5177d61bf3c2783f71ef63e6e2c5e720247ef699
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-27 20:39:41.839042 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
@@ -0,0 +1,26 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: Component creation.
|
3
|
+
desc: Ability to add components from index page.
|
4
|
+
type: :feature
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :closed
|
9
|
+
disposition: :fixed
|
10
|
+
creation_time: 2011-11-10 04:41:51.226658 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: 695b564c210da1965a2bb38eef782178aead6952
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-10 04:41:52.201494 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
19
|
+
- - 2011-11-10 04:54:56.397576 Z
|
20
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
21
|
+
- assigned to release Version 0.1 from unassigned
|
22
|
+
- ""
|
23
|
+
- - 2011-11-10 04:58:39.784361 Z
|
24
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
25
|
+
- closed with disposition fixed
|
26
|
+
- ""
|
@@ -0,0 +1,34 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: Issue closing.
|
3
|
+
desc: Ability to close issues.
|
4
|
+
type: :feature
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :closed
|
9
|
+
disposition: :fixed
|
10
|
+
creation_time: 2011-11-10 04:44:00.002322 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: 7d0ce6429a9fb5fa09ce3376a8921a5ecb7ecfe5
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-10 04:44:01.202706 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
19
|
+
- - 2011-11-10 04:55:09.053249 Z
|
20
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
21
|
+
- assigned to release Version 0.1 from unassigned
|
22
|
+
- ""
|
23
|
+
- - 2011-11-28 03:55:28.097516 Z
|
24
|
+
- !str:WEBrick::HTTPUtils::FormData
|
25
|
+
str: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
26
|
+
"@filename":
|
27
|
+
"@header": {}
|
28
|
+
|
29
|
+
"@name": closer
|
30
|
+
"@next_data":
|
31
|
+
"@raw_header": []
|
32
|
+
|
33
|
+
- closed with disposition fixed
|
34
|
+
- !str:WEBrick::HTTPUtils::FormData Can now close issues, also menus look great now!
|
@@ -0,0 +1,22 @@
|
|
1
|
+
--- !ditz.rubyforge.org,2008-03-06/issue
|
2
|
+
title: HTML rendering conflicts with new RHTML files
|
3
|
+
desc: The current rhtml was designed without html rendering in mind, which is now broken.
|
4
|
+
type: :bugfix
|
5
|
+
component: WEBrick interface
|
6
|
+
release: Version 0.1
|
7
|
+
reporter: Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
8
|
+
status: :closed
|
9
|
+
disposition: :fixed
|
10
|
+
creation_time: 2011-11-27 18:14:16.963597 Z
|
11
|
+
references: []
|
12
|
+
|
13
|
+
id: a04462fa22ab6e1b02cfdd052d1f6c6f491f08f5
|
14
|
+
log_events:
|
15
|
+
- - 2011-11-27 18:14:18.179495 Z
|
16
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
17
|
+
- created
|
18
|
+
- ""
|
19
|
+
- - 2011-11-27 18:14:49.974722 Z
|
20
|
+
- Nils Sandell <nils.sandell@systemstechnologyresearch.com>
|
21
|
+
- closed with disposition fixed
|
22
|
+
- Reorganized all brick arguments into one hash which is empty for simple html generation.
|