xforge 0.3.1 → 0.3.2
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/CHANGES +8 -0
- data/Rakefile +2 -2
- data/lib/scm_web/base.rb +10 -0
- data/lib/scm_web/view_cvs.rb +14 -8
- data/lib/tracker/base.rb +16 -0
- data/lib/tracker/bugzilla/project.rb +8 -0
- data/lib/tracker/digit_issues.rb +12 -0
- data/lib/tracker/fog_bugz/project.rb +8 -0
- data/lib/tracker/jira/project.rb +4 -2
- data/lib/tracker/mantis/project.rb +8 -0
- data/lib/tracker/scarab/project.rb +8 -0
- data/lib/tracker/trac/project.rb +25 -10
- data/lib/tracker/xforge/base.rb +4 -11
- data/lib/xforge.rb +6 -1
- data/lib/xforge/rubyforge.rb +8 -2
- data/lib/xforge/sourceforge.rb +8 -2
- metadata +9 -2
data/CHANGES
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
= XForge Changelog
|
2
2
|
|
3
|
+
== Version 0.3.2
|
4
|
+
|
5
|
+
This release adds more support for other issue trackers ans scm browsers.
|
6
|
+
|
7
|
+
* Fixed #2242
|
8
|
+
* Added a lot of tracker and scm_web classes (factored out from DamageControl)
|
9
|
+
* Decoupled view_cvs from rubyforge/sourceforge
|
10
|
+
|
3
11
|
== Version 0.3.1
|
4
12
|
|
5
13
|
This XForge release adds initial support for Trac and JIRA.
|
data/Rakefile
CHANGED
@@ -22,9 +22,9 @@ require 'rake/rdoctask'
|
|
22
22
|
# PATCH is bumped for every API addition and/or bugfix (ideally for every commit)
|
23
23
|
# Later DamageControl can bump PATCH automatically.
|
24
24
|
#
|
25
|
-
# REMEMBER TO KEEP PKG_VERSION IN SYNC WITH
|
25
|
+
# REMEMBER TO KEEP PKG_VERSION IN SYNC WITH THE CHANGES FILE!
|
26
26
|
PKG_NAME = "xforge"
|
27
|
-
PKG_VERSION = "0.3.
|
27
|
+
PKG_VERSION = "0.3.2"
|
28
28
|
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
29
29
|
PKG_FILES = FileList[
|
30
30
|
'[A-Z]*',
|
data/lib/scm_web/base.rb
ADDED
data/lib/scm_web/view_cvs.rb
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
module ScmWeb
|
2
|
-
#
|
3
|
-
|
2
|
+
# The variables to use in uri_specs are:
|
3
|
+
#
|
4
|
+
# * project_unix_name
|
5
|
+
# * revision
|
6
|
+
# * previous_revision
|
7
|
+
#
|
8
|
+
class ViewCvs < Base
|
4
9
|
|
5
|
-
|
10
|
+
attr_accessor :uri_specs, :cvs_host_name, :cvs_server_path, :project_unix_name, :module_regexp
|
6
11
|
|
7
|
-
def initialize(uri_specs,
|
8
|
-
@uri_specs, @
|
12
|
+
def initialize(uri_specs=nil, cvs_host_name=nil, cvs_server_path=nil, project_unix_name=nil, module_regexp=nil)
|
13
|
+
@uri_specs, @cvs_host_name, @cvs_server_path, @project_unix_name, @module_regexp =
|
14
|
+
uri_specs, cvs_host_name, cvs_server_path, project_unix_name, module_regexp
|
9
15
|
end
|
10
16
|
|
11
17
|
def scms
|
@@ -19,8 +25,8 @@ module ScmWeb
|
|
19
25
|
mod = $1
|
20
26
|
unless(mod == "CVSROOT")
|
21
27
|
scm = RSCM::Cvs.new
|
22
|
-
scm.root = ":pserver:anonymous@#{
|
23
|
-
scm.mod =
|
28
|
+
scm.root = ":pserver:anonymous@#{cvs_host_name}:#{cvs_server_path}/#{mod}" #TODO: is this right?
|
29
|
+
scm.mod = mod
|
24
30
|
@scms << scm
|
25
31
|
end
|
26
32
|
end
|
@@ -40,7 +46,7 @@ module ScmWeb
|
|
40
46
|
uri_spec = @uri_specs[type]
|
41
47
|
raise "No uri_spec for #{type}" unless uri_spec
|
42
48
|
|
43
|
-
project_unix_name =
|
49
|
+
project_unix_name = @project_unix_name
|
44
50
|
revision = options[:revision]
|
45
51
|
previous_revision = options[:previous_revision]
|
46
52
|
eval("\"#{uri_spec}\"", binding)
|
data/lib/tracker/base.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module Tracker
|
2
|
+
|
3
|
+
# Tracker objects are responsible for interacting with issue trackers (bug trackers).
|
4
|
+
# They know how to recognise issue identifiers in strings (typically from SCM commit
|
5
|
+
# messages) and turn these into HTML links that point to the associated issue on an
|
6
|
+
# issue tracker installation running somewhere else.
|
7
|
+
class Base
|
8
|
+
def self.classes
|
9
|
+
[
|
10
|
+
::Tracker::Jira::Project,
|
11
|
+
::Tracker::XForge::RubyForge,
|
12
|
+
::Tracker::Trac::Project
|
13
|
+
]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/tracker/jira/project.rb
CHANGED
data/lib/tracker/trac/project.rb
CHANGED
@@ -1,16 +1,11 @@
|
|
1
1
|
module Tracker
|
2
2
|
module Trac
|
3
|
-
class Project
|
4
|
-
|
5
|
-
@uri = uri
|
6
|
-
end
|
7
|
-
|
8
|
-
def identifier_regexp
|
9
|
-
/#(\d+)/
|
10
|
-
end
|
3
|
+
class Project < Base
|
4
|
+
include DigitIssues
|
11
5
|
|
12
|
-
|
13
|
-
|
6
|
+
attr_reader :uri, :svn
|
7
|
+
def initialize(uri=nil, svn=nil)
|
8
|
+
@uri, @svn = uri, svn
|
14
9
|
end
|
15
10
|
|
16
11
|
def issue(issue_identifier)
|
@@ -31,6 +26,26 @@ module Tracker
|
|
31
26
|
issue ? "<a href=\"#{issue.uri}\">#{issue.summary}</a>" : "\##{issue_identifier}"
|
32
27
|
end
|
33
28
|
end
|
29
|
+
|
30
|
+
OVERVIEW = "\#{@uri}/log/\#{@svn.path}/\#{path}"
|
31
|
+
HTML = "\#{@uri}/file/\#{@svn.path}/\#{path}?rev=\#{revision}"
|
32
|
+
RAW = "#{HTML}&format=txt"
|
33
|
+
DIFF = "\#{@uri}/changeset/\#{revision}"
|
34
|
+
URI_SPECS = {:overview => OVERVIEW, :raw => RAW, :html => HTML, :diff => DIFF}
|
35
|
+
|
36
|
+
# This method can mean two things, since this class both implements the ScmWeb and Tracker API
|
37
|
+
# If called with no arguments, returns the uri of the project page, otherwise the uri of a file
|
38
|
+
# in the scm
|
39
|
+
def uri(path=nil, options={:type => :overview})
|
40
|
+
return @uri unless path
|
41
|
+
|
42
|
+
type = options[:type]
|
43
|
+
uri_spec = URI_SPECS[type]
|
44
|
+
|
45
|
+
revision = options[:revision]
|
46
|
+
previous_revision = options[:previous_revision]
|
47
|
+
eval("\"#{uri_spec}\"", binding)
|
48
|
+
end
|
34
49
|
|
35
50
|
end
|
36
51
|
end
|
data/lib/tracker/xforge/base.rb
CHANGED
@@ -1,19 +1,12 @@
|
|
1
1
|
module Tracker
|
2
2
|
module XForge
|
3
3
|
# TODO: rename to Project
|
4
|
-
class Base
|
5
|
-
|
4
|
+
class Base < ::Tracker::Base
|
5
|
+
include DigitIssues
|
6
6
|
|
7
|
-
|
8
|
-
/#(\d+)/
|
9
|
-
end
|
10
|
-
|
11
|
-
# Examples of what will be recognised as issue identifiers in #markup
|
12
|
-
def identifier_examples
|
13
|
-
["#1462", "#872"]
|
14
|
-
end
|
7
|
+
attr_accessor :uri, :project
|
15
8
|
|
16
|
-
def initialize(uri, project)
|
9
|
+
def initialize(uri=nil, project=nil)
|
17
10
|
@uri, @project = uri, project
|
18
11
|
end
|
19
12
|
|
data/lib/xforge.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'scm_web/base'
|
2
|
+
require 'scm_web/view_cvs'
|
3
|
+
|
1
4
|
require 'xforge/version_parser'
|
2
5
|
require 'xforge/host'
|
3
6
|
require 'xforge/rubyforge'
|
@@ -5,8 +8,10 @@ require 'xforge/sourceforge'
|
|
5
8
|
require 'xforge/project'
|
6
9
|
require 'xforge/session'
|
7
10
|
require 'xforge/xfile'
|
8
|
-
|
11
|
+
|
12
|
+
require 'tracker/digit_issues'
|
9
13
|
require 'tracker/issue'
|
14
|
+
require 'tracker/base'
|
10
15
|
require 'tracker/xforge'
|
11
16
|
require 'tracker/jira'
|
12
17
|
require 'tracker/trac'
|
data/lib/xforge/rubyforge.rb
CHANGED
@@ -18,7 +18,7 @@ module XForge
|
|
18
18
|
80
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
21
|
+
def cvs_server_path
|
22
22
|
"/var/cvs"
|
23
23
|
end
|
24
24
|
|
@@ -28,7 +28,13 @@ module XForge
|
|
28
28
|
|
29
29
|
def scm_web(project)
|
30
30
|
module_regexp = /href=\"(\w+)\/\?cvsroot=#{project.unix_name}/
|
31
|
-
::ScmWeb::ViewCvs.new(
|
31
|
+
::ScmWeb::ViewCvs.new(
|
32
|
+
{:overview => OVERVIEW, :raw => RAW, :html => HTML, :diff => DIFF},
|
33
|
+
cvs_host_name,
|
34
|
+
cvs_server_path,
|
35
|
+
project.unix_name,
|
36
|
+
module_regexp
|
37
|
+
)
|
32
38
|
end
|
33
39
|
|
34
40
|
# Regexp used to find projects' home page
|
data/lib/xforge/sourceforge.rb
CHANGED
@@ -17,7 +17,7 @@ module XForge
|
|
17
17
|
443
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
20
|
+
def cvs_server_path
|
21
21
|
"/cvsroot"
|
22
22
|
end
|
23
23
|
|
@@ -27,7 +27,13 @@ module XForge
|
|
27
27
|
|
28
28
|
def scm_web(project)
|
29
29
|
module_regexp = /viewcvs\.py\/#{project.unix_name}\/(\w+)\//
|
30
|
-
::ScmWeb::ViewCvs.new(
|
30
|
+
::ScmWeb::ViewCvs.new(
|
31
|
+
{:overview => OVERVIEW, :raw => RAW, :html => HTML, :diff => DIFF},
|
32
|
+
cvs_host_name,
|
33
|
+
cvs_server_path,
|
34
|
+
project.unix_name,
|
35
|
+
module_regexp
|
36
|
+
)
|
31
37
|
end
|
32
38
|
|
33
39
|
# Regexp used to find projects' home page
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: xforge
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.3.
|
7
|
-
date: 2005-08-
|
6
|
+
version: 0.3.2
|
7
|
+
date: 2005-08-16 00:00:00 -04:00
|
8
8
|
summary: Ruby based make-like utility.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -40,13 +40,20 @@ files:
|
|
40
40
|
- lib/rake/contrib/xforge/base.rb
|
41
41
|
- lib/rake/contrib/xforge/news_publisher.rb
|
42
42
|
- lib/rake/contrib/xforge/release.rb
|
43
|
+
- lib/scm_web/base.rb
|
43
44
|
- lib/scm_web/view_cvs.rb
|
45
|
+
- lib/tracker/base.rb
|
46
|
+
- lib/tracker/digit_issues.rb
|
44
47
|
- lib/tracker/issue.rb
|
45
48
|
- lib/tracker/jira.rb
|
46
49
|
- lib/tracker/trac.rb
|
47
50
|
- lib/tracker/xforge.rb
|
51
|
+
- lib/tracker/bugzilla/project.rb
|
52
|
+
- lib/tracker/fog_bugz/project.rb
|
48
53
|
- lib/tracker/jira/host.rb
|
49
54
|
- lib/tracker/jira/project.rb
|
55
|
+
- lib/tracker/mantis/project.rb
|
56
|
+
- lib/tracker/scarab/project.rb
|
50
57
|
- lib/tracker/trac/project.rb
|
51
58
|
- lib/tracker/xforge/base.rb
|
52
59
|
- lib/tracker/xforge/rubyforge.rb
|