xforge 0.3.5 → 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.
- 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'
|