Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
43ba78ba
Commit
43ba78ba
authored
Jul 08, 2015
by
Ned Batchelder
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #8807 from edx/ned/use-primary-emails
Make the release script use the primary email from people.yaml
parents
375341b8
b7a90d6c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
4 deletions
+25
-4
scripts/release.py
+25
-4
No files found.
scripts/release.py
View file @
43ba78ba
...
@@ -19,9 +19,10 @@ try:
...
@@ -19,9 +19,10 @@ try:
from
git.refs.symbolic
import
SymbolicReference
from
git.refs.symbolic
import
SymbolicReference
from
dateutil.parser
import
parse
as
parse_datestring
from
dateutil.parser
import
parse
as
parse_datestring
import
requests
import
requests
import
yaml
except
ImportError
:
except
ImportError
:
print
(
"Error: missing dependencies! Please run this command to install them:"
)
print
(
"Error: missing dependencies! Please run this command to install them:"
)
print
(
"pip install path.py requests python-dateutil GitPython==0.3.2.RC1"
)
print
(
"pip install path.py requests python-dateutil GitPython==0.3.2.RC1
PyYAML
"
)
sys
.
exit
(
1
)
sys
.
exit
(
1
)
try
:
try
:
...
@@ -35,6 +36,7 @@ PROJECT_ROOT = path(__file__).abspath().dirname()
...
@@ -35,6 +36,7 @@ PROJECT_ROOT = path(__file__).abspath().dirname()
repo
=
Repo
(
PROJECT_ROOT
)
repo
=
Repo
(
PROJECT_ROOT
)
git
=
repo
.
git
git
=
repo
.
git
PEOPLE_YAML
=
"https://raw.githubusercontent.com/edx/repo-tools/master/people.yaml"
class
memoized
(
object
):
class
memoized
(
object
):
"""
"""
...
@@ -359,6 +361,24 @@ def prs_by_email(start_ref, end_ref):
...
@@ -359,6 +361,24 @@ def prs_by_email(start_ref, end_ref):
The dictionary is alphabetically ordered by email address
The dictionary is alphabetically ordered by email address
The pull request list is ordered by merge date
The pull request list is ordered by merge date
"""
"""
# `emails` maps from other_emails to primary email, based on people.yaml.
emails
=
{}
try
:
people_resp
=
requests
.
get
(
PEOPLE_YAML
)
people_resp
.
raise_for_status
()
people
=
yaml
.
safe_load
(
people_resp
.
text
)
except
requests
.
exceptions
.
RequestException
as
e
:
# Hmm, muddle through without canonicalized emails...
message
=
(
"Warning: could not fetch people.yaml: {message}"
.
format
(
message
=
e
.
message
)
)
print
(
colorize
(
"red"
,
message
),
file
=
sys
.
stderr
)
else
:
for
person
in
people
.
itervalues
():
if
'other_emails'
in
person
:
for
other_email
in
person
[
'other_emails'
]:
emails
[
other_email
]
=
person
[
'email'
]
unordered_data
=
collections
.
defaultdict
(
set
)
unordered_data
=
collections
.
defaultdict
(
set
)
for
pr_num
in
get_merged_prs
(
start_ref
,
end_ref
):
for
pr_num
in
get_merged_prs
(
start_ref
,
end_ref
):
ref
=
"refs/remotes/edx/pr/{num}"
.
format
(
num
=
pr_num
)
ref
=
"refs/remotes/edx/pr/{num}"
.
format
(
num
=
pr_num
)
...
@@ -368,7 +388,8 @@ def prs_by_email(start_ref, end_ref):
...
@@ -368,7 +388,8 @@ def prs_by_email(start_ref, end_ref):
except
DoesNotExist
:
except
DoesNotExist
:
pass
# this commit will be included in the commits_without_prs table
pass
# this commit will be included in the commits_without_prs table
else
:
else
:
unordered_data
[
merge
.
author
.
email
]
.
add
((
pr_num
,
merge
))
email
=
emails
.
get
(
merge
.
author
.
email
,
merge
.
author
.
email
)
unordered_data
[
email
]
.
add
((
pr_num
,
merge
))
ordered_data
=
collections
.
OrderedDict
()
ordered_data
=
collections
.
OrderedDict
()
for
email
in
sorted
(
unordered_data
.
keys
()):
for
email
in
sorted
(
unordered_data
.
keys
()):
...
@@ -379,7 +400,7 @@ def prs_by_email(start_ref, end_ref):
...
@@ -379,7 +400,7 @@ def prs_by_email(start_ref, end_ref):
def
generate_pr_table
(
start_ref
,
end_ref
):
def
generate_pr_table
(
start_ref
,
end_ref
):
"""
"""
Return a
string corresponding to a pull request table to embed in Confluence
Return a
UTF-8 string corresponding to a pull request table to embed in Confluence.
"""
"""
header
=
"|| Merged By || Author || Title || PR || JIRA || Verified? ||"
header
=
"|| Merged By || Author || Title || PR || JIRA || Verified? ||"
pr_link
=
"[#{num}|https://github.com/edx/edx-platform/pull/{num}]"
pr_link
=
"[#{num}|https://github.com/edx/edx-platform/pull/{num}]"
...
@@ -410,7 +431,7 @@ def generate_pr_table(start_ref, end_ref):
...
@@ -410,7 +431,7 @@ def generate_pr_table(start_ref, end_ref):
jira
=
", "
.
join
(
parse_ticket_references
(
body
)),
jira
=
", "
.
join
(
parse_ticket_references
(
body
)),
verified
=
""
,
verified
=
""
,
))
))
return
"
\n
"
.
join
(
rows
)
return
"
\n
"
.
join
(
rows
)
.
encode
(
"utf8"
)
@memoized
@memoized
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment