xforge 0.3.5 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +34 -0
- data/Rakefile +5 -5
- data/lib/meta_project.rb +6 -0
- data/lib/meta_project/project.rb +4 -0
- data/lib/meta_project/project/base.rb +7 -0
- data/lib/meta_project/project/codehaus.rb +1 -0
- data/lib/meta_project/project/codehaus/codehaus_project_svn.rb +26 -0
- data/lib/meta_project/project/trac.rb +1 -0
- data/lib/meta_project/project/trac/trac_project.rb +26 -0
- data/lib/meta_project/project/xforge.rb +5 -0
- data/lib/meta_project/project/xforge/ruby_forge.rb +46 -0
- data/lib/meta_project/project/xforge/session.rb +162 -0
- data/lib/meta_project/project/xforge/source_forge.rb +46 -0
- data/lib/meta_project/project/xforge/xfile.rb +45 -0
- data/lib/meta_project/project/xforge/xforge_base.rb +76 -0
- data/lib/meta_project/project_analyzer.rb +36 -0
- data/lib/meta_project/scm_web.rb +53 -0
- data/lib/meta_project/tracker.rb +6 -0
- data/lib/meta_project/tracker/base.rb +18 -0
- data/lib/meta_project/tracker/digit_issues.rb +24 -0
- data/lib/meta_project/tracker/issue.rb +11 -0
- data/lib/meta_project/tracker/jira.rb +1 -0
- data/lib/meta_project/tracker/jira/jira_tracker.rb +68 -0
- data/lib/meta_project/tracker/trac.rb +1 -0
- data/lib/meta_project/tracker/trac/trac_tracker.rb +29 -0
- data/lib/meta_project/tracker/xforge.rb +3 -0
- data/lib/meta_project/tracker/xforge/ruby_forge_tracker.rb +17 -0
- data/lib/meta_project/tracker/xforge/source_forge_tracker.rb +17 -0
- data/lib/meta_project/tracker/xforge/xforge_tracker.rb +83 -0
- data/lib/{xforge → meta_project}/version_parser.rb +6 -6
- data/lib/rake/contrib/xforge/base.rb +2 -3
- data/lib/rake/contrib/xforge/news_publisher.rb +1 -5
- data/lib/rake/contrib/xforge/release.rb +3 -7
- data/lib/xforge.rb +0 -1
- metadata +30 -27
- data/lib/scm_web/base.rb +0 -12
- data/lib/scm_web/file_uri.rb +0 -21
- data/lib/scm_web/view_cvs.rb +0 -44
- data/lib/tracker/base.rb +0 -16
- data/lib/tracker/bugzilla/project.rb +0 -8
- data/lib/tracker/digit_issues.rb +0 -22
- data/lib/tracker/fog_bugz/project.rb +0 -8
- data/lib/tracker/issue.rb +0 -9
- data/lib/tracker/jira.rb +0 -2
- data/lib/tracker/jira/host.rb +0 -40
- data/lib/tracker/jira/project.rb +0 -43
- data/lib/tracker/mantis/project.rb +0 -8
- data/lib/tracker/scarab/project.rb +0 -8
- data/lib/tracker/trac.rb +0 -1
- data/lib/tracker/trac/project.rb +0 -35
- data/lib/tracker/xforge.rb +0 -2
- data/lib/tracker/xforge/base.rb +0 -77
- data/lib/tracker/xforge/rubyforge.rb +0 -7
- data/lib/xforge/host.rb +0 -26
- data/lib/xforge/project.rb +0 -87
- data/lib/xforge/rubyforge.rb +0 -50
- data/lib/xforge/session.rb +0 -158
- data/lib/xforge/sourceforge.rb +0 -46
- data/lib/xforge/xfile.rb +0 -41
@@ -1,10 +1,10 @@
|
|
1
|
-
module
|
1
|
+
module MetaProject
|
2
2
|
class VersionParser
|
3
3
|
def parse(changes_file, version)
|
4
4
|
release_notes_first = nil
|
5
5
|
changes_first = nil
|
6
6
|
changes_last = nil
|
7
|
-
|
7
|
+
|
8
8
|
lines = File.open(changes_file).readlines
|
9
9
|
state = nil
|
10
10
|
lines.each_with_index do |line, n|
|
@@ -24,19 +24,19 @@ module XForge
|
|
24
24
|
state = :done
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
release_notes = lines[release_notes_first..changes_first-1].join("")
|
29
29
|
release_changes = lines[changes_first..changes_last].collect{|line| line[2..-1].chomp}
|
30
30
|
Version.new(release_notes, release_changes)
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
class Version
|
35
35
|
attr_reader :release_notes # String
|
36
36
|
attr_reader :release_changes # Array of String
|
37
|
-
|
37
|
+
|
38
38
|
def initialize(release_notes, release_changes)
|
39
39
|
@release_notes, @release_changes = release_notes, release_changes
|
40
40
|
end
|
41
41
|
end
|
42
|
-
end
|
42
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'xforge/version_parser'
|
2
|
-
|
3
1
|
module Rake
|
4
2
|
module XForge
|
5
3
|
|
@@ -27,9 +25,7 @@ module Rake
|
|
27
25
|
end
|
28
26
|
|
29
27
|
def execute
|
30
|
-
|
31
|
-
u = user_name
|
32
|
-
session = project.login(u, password)
|
28
|
+
session = @project.login(user_name, password)
|
33
29
|
session.publish_news(@subject, @details)
|
34
30
|
end
|
35
31
|
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'xforge/version_parser'
|
2
|
-
|
3
1
|
module Rake
|
4
2
|
module XForge
|
5
3
|
|
@@ -27,7 +25,7 @@ module Rake
|
|
27
25
|
# 'CHANGES'
|
28
26
|
# ]
|
29
27
|
#
|
30
|
-
# Rake::XForge::Release.new('xforge') do |xf|
|
28
|
+
# Rake::XForge::Release.new(MetaProject::Project::XForge::RubyForge.new('xforge')) do |xf|
|
31
29
|
# # Never hardcode user name and password in the Rakefile!
|
32
30
|
# xf.user_name = ENV['RUBYFORGE_USER']
|
33
31
|
# xf.password = ENV['RUBYFORGE_PASSWORD']
|
@@ -59,7 +57,7 @@ module Rake
|
|
59
57
|
@release_name = "#{PKG_NAME}-#{PKG_VERSION}" if (defined? PKG_NAME && defined? PKG_VERSION)
|
60
58
|
|
61
59
|
begin
|
62
|
-
vp = ::
|
60
|
+
vp = ::MetaProject::VersionParser.new
|
63
61
|
version = vp.parse("CHANGES", PKG_VERSION)
|
64
62
|
@release_notes = version.release_notes
|
65
63
|
@release_changes = "* " + version.release_changes.join("\n* ")
|
@@ -71,9 +69,7 @@ module Rake
|
|
71
69
|
end
|
72
70
|
|
73
71
|
def execute
|
74
|
-
|
75
|
-
u = user_name
|
76
|
-
session = project.login(u, password)
|
72
|
+
session = @project.login(user_name, password)
|
77
73
|
session.release(@release_name, @files, @release_notes, @release_changes)
|
78
74
|
end
|
79
75
|
|
data/lib/xforge.rb
CHANGED
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.
|
7
|
-
date: 2005-08-
|
6
|
+
version: 0.4.0
|
7
|
+
date: 2005-08-22 00:00:00 -04:00
|
8
8
|
summary: Ruby based make-like utility.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -35,36 +35,39 @@ files:
|
|
35
35
|
- Rakefile
|
36
36
|
- README
|
37
37
|
- TODO
|
38
|
+
- lib/meta_project.rb
|
38
39
|
- lib/xforge.rb
|
40
|
+
- lib/meta_project/project.rb
|
41
|
+
- lib/meta_project/project_analyzer.rb
|
42
|
+
- lib/meta_project/scm_web.rb
|
43
|
+
- lib/meta_project/tracker.rb
|
44
|
+
- lib/meta_project/version_parser.rb
|
45
|
+
- lib/meta_project/project/base.rb
|
46
|
+
- lib/meta_project/project/codehaus.rb
|
47
|
+
- lib/meta_project/project/trac.rb
|
48
|
+
- lib/meta_project/project/xforge.rb
|
49
|
+
- lib/meta_project/project/codehaus/codehaus_project_svn.rb
|
50
|
+
- lib/meta_project/project/trac/trac_project.rb
|
51
|
+
- lib/meta_project/project/xforge/ruby_forge.rb
|
52
|
+
- lib/meta_project/project/xforge/session.rb
|
53
|
+
- lib/meta_project/project/xforge/source_forge.rb
|
54
|
+
- lib/meta_project/project/xforge/xfile.rb
|
55
|
+
- lib/meta_project/project/xforge/xforge_base.rb
|
56
|
+
- lib/meta_project/tracker/base.rb
|
57
|
+
- lib/meta_project/tracker/digit_issues.rb
|
58
|
+
- lib/meta_project/tracker/issue.rb
|
59
|
+
- lib/meta_project/tracker/jira.rb
|
60
|
+
- lib/meta_project/tracker/trac.rb
|
61
|
+
- lib/meta_project/tracker/xforge.rb
|
62
|
+
- lib/meta_project/tracker/jira/jira_tracker.rb
|
63
|
+
- lib/meta_project/tracker/trac/trac_tracker.rb
|
64
|
+
- lib/meta_project/tracker/xforge/ruby_forge_tracker.rb
|
65
|
+
- lib/meta_project/tracker/xforge/source_forge_tracker.rb
|
66
|
+
- lib/meta_project/tracker/xforge/xforge_tracker.rb
|
39
67
|
- lib/rake/contrib/xforge.rb
|
40
68
|
- lib/rake/contrib/xforge/base.rb
|
41
69
|
- lib/rake/contrib/xforge/news_publisher.rb
|
42
70
|
- lib/rake/contrib/xforge/release.rb
|
43
|
-
- lib/scm_web/base.rb
|
44
|
-
- lib/scm_web/file_uri.rb
|
45
|
-
- lib/scm_web/view_cvs.rb
|
46
|
-
- lib/tracker/base.rb
|
47
|
-
- lib/tracker/digit_issues.rb
|
48
|
-
- lib/tracker/issue.rb
|
49
|
-
- lib/tracker/jira.rb
|
50
|
-
- lib/tracker/trac.rb
|
51
|
-
- lib/tracker/xforge.rb
|
52
|
-
- lib/tracker/bugzilla/project.rb
|
53
|
-
- lib/tracker/fog_bugz/project.rb
|
54
|
-
- lib/tracker/jira/host.rb
|
55
|
-
- lib/tracker/jira/project.rb
|
56
|
-
- lib/tracker/mantis/project.rb
|
57
|
-
- lib/tracker/scarab/project.rb
|
58
|
-
- lib/tracker/trac/project.rb
|
59
|
-
- lib/tracker/xforge/base.rb
|
60
|
-
- lib/tracker/xforge/rubyforge.rb
|
61
|
-
- lib/xforge/host.rb
|
62
|
-
- lib/xforge/project.rb
|
63
|
-
- lib/xforge/rubyforge.rb
|
64
|
-
- lib/xforge/session.rb
|
65
|
-
- lib/xforge/sourceforge.rb
|
66
|
-
- lib/xforge/version_parser.rb
|
67
|
-
- lib/xforge/xfile.rb
|
68
71
|
- doc/base_attrs.rdoc
|
69
72
|
test_files: []
|
70
73
|
rdoc_options:
|
data/lib/scm_web/base.rb
DELETED
data/lib/scm_web/file_uri.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module ScmWeb
|
2
|
-
module FileUri
|
3
|
-
# TODO: rename to file_uri to avoid the clash that is currently in Trac
|
4
|
-
# Returns the URI for the file at +path+.
|
5
|
-
# Options are:
|
6
|
-
# :type (can be one of :overview, :raw or :html)
|
7
|
-
# :revision (the revision of the file. must be specified when :type is :raw or :html)
|
8
|
-
def file_uri(path="", options={:type=>"overview"})
|
9
|
-
type = options[:type]
|
10
|
-
raise "No :type specified" unless type
|
11
|
-
uri_spec = uri_specs[type]
|
12
|
-
raise "No uri_spec for #{type}" unless uri_spec
|
13
|
-
|
14
|
-
project_unix_name = @project_unix_name
|
15
|
-
path_prefix = options[:path_prefix]
|
16
|
-
revision = options[:revision]
|
17
|
-
previous_revision = options[:previous_revision]
|
18
|
-
eval("\"#{uri_spec}\"", binding)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/lib/scm_web/view_cvs.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
module ScmWeb
|
2
|
-
class ViewCvs < Base
|
3
|
-
|
4
|
-
attr_accessor :uri_specs, :cvs_host_name, :cvs_server_path, :project_unix_name, :module_regexp
|
5
|
-
|
6
|
-
def initialize(uri_specs={}, cvs_host_name=nil, cvs_server_path=nil, project_unix_name=nil, module_regexp=nil)
|
7
|
-
@uri_specs, @cvs_host_name, @cvs_server_path, @project_unix_name, @module_regexp =
|
8
|
-
uri_specs, cvs_host_name, cvs_server_path, project_unix_name, module_regexp
|
9
|
-
end
|
10
|
-
|
11
|
-
# The variables to use in uri_specs are:
|
12
|
-
#
|
13
|
-
# * path
|
14
|
-
# * revision
|
15
|
-
# * previous_revision
|
16
|
-
#
|
17
|
-
def uri_specs
|
18
|
-
@uri_specs ||= {}
|
19
|
-
end
|
20
|
-
|
21
|
-
def scms
|
22
|
-
unless(@scms)
|
23
|
-
require 'rscm'
|
24
|
-
|
25
|
-
@scms = []
|
26
|
-
cvs_root = open(file_uri) do |data|
|
27
|
-
data.each_line do |line|
|
28
|
-
if line =~ @module_regexp
|
29
|
-
mod = $1
|
30
|
-
unless(mod == "CVSROOT")
|
31
|
-
scm = RSCM::Cvs.new
|
32
|
-
scm.root = ":pserver:anonymous@#{cvs_host_name}:#{cvs_server_path}"
|
33
|
-
scm.mod = mod
|
34
|
-
@scms << scm
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
@scms
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
data/lib/tracker/base.rb
DELETED
@@ -1,16 +0,0 @@
|
|
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::JiraProject,
|
11
|
-
::Tracker::XForge::RubyForgeProject,
|
12
|
-
::Tracker::Trac::TracProject
|
13
|
-
]
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
data/lib/tracker/digit_issues.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module Tracker
|
2
|
-
# This module should be included by trackers that follow a digit-based issue scheme
|
3
|
-
module DigitIssues
|
4
|
-
def identifier_regexp
|
5
|
-
/#(\d+)/
|
6
|
-
end
|
7
|
-
|
8
|
-
def identifier_examples
|
9
|
-
["#1926", "#1446"]
|
10
|
-
end
|
11
|
-
|
12
|
-
# TODO: find a way to extract just the issue summaries so they can be stored in dc as an array
|
13
|
-
# embedded in the revision object. that way we don't alter the original commit message
|
14
|
-
def markup(text)
|
15
|
-
text.gsub(identifier_regexp) do |match|
|
16
|
-
issue_identifier = $1
|
17
|
-
issue = issue(issue_identifier)
|
18
|
-
issue ? "<a href=\"#{issue.uri}\">#{issue.summary}</a>" : "\##{issue_identifier}"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
data/lib/tracker/issue.rb
DELETED
data/lib/tracker/jira.rb
DELETED
data/lib/tracker/jira/host.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'xmlrpc/client'
|
2
|
-
|
3
|
-
module Tracker
|
4
|
-
module Jira
|
5
|
-
class Host
|
6
|
-
JIRA_API = "jira1"
|
7
|
-
|
8
|
-
attr_reader :uri
|
9
|
-
|
10
|
-
def initialize(uri, username, password)
|
11
|
-
@uri, @username, @password = uri, username, password
|
12
|
-
end
|
13
|
-
|
14
|
-
def project(identifier)
|
15
|
-
JiraProject.new(self, identifier)
|
16
|
-
end
|
17
|
-
|
18
|
-
def login
|
19
|
-
client = XMLRPC::Client.new2("#{uri}/rpc/xmlrpc")
|
20
|
-
token = client.call("#{JIRA_API}.login", @username, @password)
|
21
|
-
Session.new(client, token)
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
# This wrapper around XMLRPC::Client that allows simpler method calls
|
27
|
-
# via method_missing and doesn't require to manage the token
|
28
|
-
class Session
|
29
|
-
def initialize(client, token)
|
30
|
-
@client, @token = client, token
|
31
|
-
end
|
32
|
-
|
33
|
-
def method_missing(sym, args, &block)
|
34
|
-
token_args = [@token] << args
|
35
|
-
xmlrpc_method = "#{Host::JIRA_API}.#{sym.to_s}"
|
36
|
-
@client.call(xmlrpc_method, *token_args)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
data/lib/tracker/jira/project.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
module Tracker
|
2
|
-
module Jira
|
3
|
-
class JiraProject < Base
|
4
|
-
attr_accessor :host, :identifier
|
5
|
-
|
6
|
-
def initialize(host=nil, identifier=nil)
|
7
|
-
@host, @identifier = host, identifier
|
8
|
-
end
|
9
|
-
|
10
|
-
def identifier_regexp
|
11
|
-
/([A-Z]+-[\d]+)/
|
12
|
-
end
|
13
|
-
|
14
|
-
def identifier_examples
|
15
|
-
["DC-420", "PICO-12"]
|
16
|
-
end
|
17
|
-
|
18
|
-
def uri
|
19
|
-
"#{@host.uri}/browse/#{@identifier}"
|
20
|
-
end
|
21
|
-
|
22
|
-
def issue(issue_identifier)
|
23
|
-
session = @host.login
|
24
|
-
begin
|
25
|
-
issue = session.getIssue(issue_identifier)
|
26
|
-
Issue.new("#{@host.uri}/browse/#{issue_identifier}", issue["summary"])
|
27
|
-
rescue XMLRPC::FaultException
|
28
|
-
# Probably bad issue number
|
29
|
-
nil
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def markup(text)
|
34
|
-
text.gsub(identifier_regexp) do |match|
|
35
|
-
issue_identifier = $1
|
36
|
-
issue = issue(issue_identifier)
|
37
|
-
issue ? "<a href=\"#{issue.uri}\">#{issue.summary}</a>" : issue_identifier
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/lib/tracker/trac.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'tracker/trac/project'
|