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
9a52a17a
Commit
9a52a17a
authored
May 21, 2013
by
Vik Paruchuri
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master' into feature/vik/oe-editor
parents
fd6da08a
747dec07
Hide whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
255 additions
and
54 deletions
+255
-54
cms/envs/acceptance.py
+5
-0
cms/envs/aws.py
+5
-0
cms/envs/common.py
+4
-0
cms/envs/dev.py
+4
-0
cms/envs/dev_ike.py
+4
-0
cms/envs/dev_with_worker.py
+4
-0
cms/envs/jasmine.py
+4
-0
cms/envs/test.py
+5
-0
cms/static/sass/_mixins-inherited.scss
+6
-0
cms/static/sass/elements/_typography.scss
+18
-18
common/lib/capa/capa/safe_exec/tests/test_lazymod.py
+6
-3
common/static/sass/_mixins.scss
+1
-1
lms/djangoapps/django_comment_client/forum/views.py
+3
-0
lms/djangoapps/notes/migrations/0001_initial.py
+2
-2
lms/djangoapps/notes/models.py
+1
-1
lms/envs/acceptance.py
+5
-0
lms/envs/aws.py
+5
-0
lms/envs/cms/acceptance.py
+5
-0
lms/envs/cms/aws.py
+4
-0
lms/envs/cms/dev.py
+4
-0
lms/envs/cms/preview_dev.py
+4
-0
lms/envs/common.py
+5
-0
lms/envs/content.py
+5
-0
lms/envs/dev.py
+5
-0
lms/envs/dev_edx4edx.py
+4
-0
lms/envs/dev_ike.py
+5
-0
lms/envs/dev_int.py
+5
-0
lms/envs/dev_mongo.py
+5
-0
lms/envs/dev_with_worker.py
+4
-0
lms/envs/devgroups/courses.py
+5
-0
lms/envs/devgroups/h_cs50.py
+5
-0
lms/envs/devgroups/m_6002.py
+5
-0
lms/envs/devgroups/portal.py
+5
-0
lms/envs/devplus.py
+5
-0
lms/envs/discussionsettings.py
+4
-0
lms/envs/edx4edx_aws.py
+4
-0
lms/envs/jasmine.py
+4
-0
lms/envs/static.py
+5
-0
lms/envs/test.py
+5
-0
lms/envs/test_ike.py
+5
-0
lms/lib/comment_client/utils.py
+7
-0
lms/templates/discussion/maintenance.html
+3
-0
pylintrc
+0
-0
rakefiles/helpers.rb
+20
-5
rakefiles/prereqs.rake
+6
-6
rakefiles/quality.rake
+28
-13
requirements/edx/base.txt
+1
-4
requirements/edx/github.txt
+1
-1
No files found.
cms/envs/acceptance.py
View file @
9a52a17a
...
...
@@ -2,6 +2,11 @@
This config file extends the test environment configuration
so that we can run the lettuce acceptance tests.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.test
import
*
# You need to start the server in debug mode,
...
...
cms/envs/aws.py
View file @
9a52a17a
"""
This is the default template for our main set of AWS servers.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
import
json
from
.common
import
*
...
...
cms/envs/common.py
View file @
9a52a17a
...
...
@@ -19,6 +19,10 @@ Longer TODO:
multiple sites, but we do need a way to map their data assets.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
import
sys
import
lms.envs.common
from
path
import
path
...
...
cms/envs/dev.py
View file @
9a52a17a
"""
This config file runs the simplest dev environment"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.common
import
*
from
logsettings
import
get_logger_config
...
...
cms/envs/dev_ike.py
View file @
9a52a17a
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
# dev environment for ichuang/mit
# FORCE_SCRIPT_NAME = '/cms'
...
...
cms/envs/dev_with_worker.py
View file @
9a52a17a
...
...
@@ -8,6 +8,10 @@ The worker can be executed using:
django_admin.py celery worker
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
dev
import
*
################################# CELERY ######################################
...
...
cms/envs/jasmine.py
View file @
9a52a17a
...
...
@@ -2,6 +2,10 @@
This configuration is used for running jasmine tests
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.test
import
*
from
logsettings
import
get_logger_config
...
...
cms/envs/test.py
View file @
9a52a17a
...
...
@@ -7,6 +7,11 @@ sessions. Assumes structure:
/mitx # The location of this repo
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.common
import
*
import
os
from
path
import
path
...
...
cms/static/sass/_mixins-inherited.scss
View file @
9a52a17a
...
...
@@ -5,6 +5,12 @@
// talbs: we need to slowly ween ourselves off of these
// ====================
// line-height (old way)
@function
lh
(
$amount
:
1
)
{
@return
$body-line-height
*
$amount
;
}
// inherited - vertical and horizontal centering
@mixin
vertically-and-horizontally-centered
(
$height
,
$width
)
{
left
:
50%
;
...
...
cms/static/sass/elements/_typography.scss
View file @
9a52a17a
...
...
@@ -11,54 +11,54 @@
.t-title1
{
@extend
.t-title
;
@include
font-size
(
60
);
@include
l
h
(
60
);
@include
l
ine-height
(
60
);
}
.t-title2
{
@extend
.t-title
;
@include
font-size
(
48
);
@include
l
h
(
48
);
@include
l
ine-height
(
48
);
}
.t-title3
{
@include
font-size
(
36
);
@include
l
h
(
36
);
@include
l
ine-height
(
36
);
}
.t-title4
{
@extend
.t-title
;
@include
font-size
(
24
);
@include
l
h
(
24
);
@include
l
ine-height
(
24
);
}
.t-title5
{
@extend
.t-title
;
@include
font-size
(
18
);
@include
l
h
(
18
);
@include
l
ine-height
(
18
);
}
.t-title6
{
@extend
.t-title
;
@include
font-size
(
16
);
@include
l
h
(
16
);
@include
l
ine-height
(
16
);
}
.t-title7
{
@extend
.t-title
;
@include
font-size
(
14
);
@include
l
h
(
14
);
@include
l
ine-height
(
14
);
}
.t-title8
{
@extend
.t-title
;
@include
font-size
(
12
);
@include
l
h
(
12
);
@include
l
ine-height
(
12
);
}
.t-title9
{
@extend
.t-title
;
@include
font-size
(
11
);
@include
l
h
(
11
);
@include
l
ine-height
(
11
);
}
// ====================
...
...
@@ -71,31 +71,31 @@
.t-copy-base
{
@extend
.t-copy
;
@include
font-size
(
16
);
@include
l
h
(
16
);
@include
l
ine-height
(
16
);
}
.t-copy-lead1
{
@extend
.t-copy
;
@include
font-size
(
18
);
@include
l
h
(
18
);
@include
l
ine-height
(
18
);
}
.t-copy-lead2
{
@extend
.t-copy
;
@include
font-size
(
24
);
@include
l
h
(
24
);
@include
l
ine-height
(
24
);
}
.t-copy-sub1
{
@extend
.t-copy
;
@include
font-size
(
14
);
@include
l
h
(
14
);
@include
l
ine-height
(
14
);
}
.t-copy-sub2
{
@extend
.t-copy
;
@include
font-size
(
12
);
@include
l
h
(
12
);
@include
l
ine-height
(
12
);
}
// ====================
...
...
@@ -103,22 +103,22 @@
// actions/labels
.t-action1
{
@include
font-size
(
18
);
@include
l
h
(
18
);
@include
l
ine-height
(
18
);
}
.t-action2
{
@include
font-size
(
16
);
@include
l
h
(
16
);
@include
l
ine-height
(
16
);
}
.t-action3
{
@include
font-size
(
14
);
@include
l
h
(
14
);
@include
l
ine-height
(
14
);
}
.t-action4
{
@include
font-size
(
12
);
@include
l
h
(
12
);
@include
l
ine-height
(
12
);
}
...
...
common/lib/capa/capa/safe_exec/tests/test_lazymod.py
View file @
9a52a17a
...
...
@@ -39,6 +39,9 @@ class TestLazyMod(unittest.TestCase):
self
.
assertEqual
(
hsv
[
0
],
0.25
)
def
test_dotted
(
self
):
self
.
assertNotIn
(
"email.utils"
,
sys
.
modules
)
email_utils
=
LazyModule
(
"email.utils"
)
self
.
assertEqual
(
email_utils
.
quote
(
'"hi"'
),
r'\"hi\"'
)
# wsgiref is a module with submodules that is not already imported.
# Any similar module would do. This test demonstrates that the module
# is not already im
self
.
assertNotIn
(
"wsgiref.util"
,
sys
.
modules
)
wsgiref_util
=
LazyModule
(
"wsgiref.util"
)
self
.
assertEqual
(
wsgiref_util
.
guess_scheme
({}),
"http"
)
common/static/sass/_mixins.scss
View file @
9a52a17a
...
...
@@ -8,7 +8,7 @@
}
// mixins - line height
@mixin
l
h
(
$fontSize
:
auto
){
@mixin
l
ine-height
(
$fontSize
:
auto
){
line-height
:
(
$fontSize
*
1
.48
)
+
px
;
line-height
:
((
$fontSize
/
10
)
*
1
.48
)
+
rem
;
}
...
...
lms/djangoapps/django_comment_client/forum/views.py
View file @
9a52a17a
...
...
@@ -174,6 +174,9 @@ def forum_form_discussion(request, course_id):
try
:
unsafethreads
,
query_params
=
get_threads
(
request
,
course_id
)
# This might process a search query
threads
=
[
utils
.
safe_content
(
thread
)
for
thread
in
unsafethreads
]
except
(
cc
.
utils
.
CommentClientMaintenanceError
)
as
err
:
log
.
warning
(
"Forum is in maintenance mode"
)
return
render_to_response
(
'discussion/maintenance.html'
,
{})
except
(
cc
.
utils
.
CommentClientError
,
cc
.
utils
.
CommentClientUnknownError
)
as
err
:
log
.
error
(
"Error loading forum discussion threads:
%
s"
%
str
(
err
))
raise
Http404
...
...
lms/djangoapps/notes/migrations/0001_initial.py
View file @
9a52a17a
...
...
@@ -13,7 +13,7 @@ class Migration(SchemaMigration):
(
'id'
,
self
.
gf
(
'django.db.models.fields.AutoField'
)(
primary_key
=
True
)),
(
'user'
,
self
.
gf
(
'django.db.models.fields.related.ForeignKey'
)(
to
=
orm
[
'auth.User'
])),
(
'course_id'
,
self
.
gf
(
'django.db.models.fields.CharField'
)(
max_length
=
255
,
db_index
=
True
)),
(
'uri'
,
self
.
gf
(
'django.db.models.fields.CharField'
)(
max_length
=
512
,
db_index
=
True
)),
(
'uri'
,
self
.
gf
(
'django.db.models.fields.CharField'
)(
max_length
=
255
,
db_index
=
True
)),
(
'text'
,
self
.
gf
(
'django.db.models.fields.TextField'
)(
default
=
''
)),
(
'quote'
,
self
.
gf
(
'django.db.models.fields.TextField'
)(
default
=
''
)),
(
'range_start'
,
self
.
gf
(
'django.db.models.fields.CharField'
)(
max_length
=
2048
)),
...
...
@@ -82,7 +82,7 @@ class Migration(SchemaMigration):
'tags'
:
(
'django.db.models.fields.TextField'
,
[],
{
'default'
:
"''"
}),
'text'
:
(
'django.db.models.fields.TextField'
,
[],
{
'default'
:
"''"
}),
'updated'
:
(
'django.db.models.fields.DateTimeField'
,
[],
{
'auto_now'
:
'True'
,
'db_index'
:
'True'
,
'blank'
:
'True'
}),
'uri'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'
512
'
,
'db_index'
:
'True'
}),
'uri'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'
255
'
,
'db_index'
:
'True'
}),
'user'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'to'
:
"orm['auth.User']"
})
}
}
...
...
lms/djangoapps/notes/models.py
View file @
9a52a17a
...
...
@@ -9,7 +9,7 @@ import json
class
Note
(
models
.
Model
):
user
=
models
.
ForeignKey
(
User
,
db_index
=
True
)
course_id
=
models
.
CharField
(
max_length
=
255
,
db_index
=
True
)
uri
=
models
.
CharField
(
max_length
=
512
,
db_index
=
True
)
uri
=
models
.
CharField
(
max_length
=
255
,
db_index
=
True
)
text
=
models
.
TextField
(
default
=
""
)
quote
=
models
.
TextField
(
default
=
""
)
range_start
=
models
.
CharField
(
max_length
=
2048
)
# xpath string
...
...
lms/envs/acceptance.py
View file @
9a52a17a
...
...
@@ -2,6 +2,11 @@
This config file extends the test environment configuration
so that we can run the lettuce acceptance tests.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.test
import
*
# You need to start the server in debug mode,
...
...
lms/envs/aws.py
View file @
9a52a17a
...
...
@@ -6,6 +6,11 @@ Common traits:
* Use memcached, and cache-backed sessions
* Use a MySQL 5.1 database
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
import
json
from
.common
import
*
...
...
lms/envs/cms/acceptance.py
View file @
9a52a17a
...
...
@@ -3,6 +3,11 @@ This config file is a copy of dev environment without the Debug
Toolbar. I it suitable to run against acceptance tests.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.dev
import
*
# REMOVE DEBUG TOOLBAR
...
...
lms/envs/cms/aws.py
View file @
9a52a17a
...
...
@@ -2,6 +2,10 @@
Settings for the LMS that runs alongside the CMS on AWS
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
..aws
import
*
with
open
(
ENV_ROOT
/
"cms.auth.json"
)
as
auth_file
:
...
...
lms/envs/cms/dev.py
View file @
9a52a17a
...
...
@@ -2,6 +2,10 @@
Settings for the LMS that runs alongside the CMS on AWS
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
..dev
import
*
MITX_FEATURES
[
'AUTH_USE_MIT_CERTIFICATES'
]
=
False
...
...
lms/envs/cms/preview_dev.py
View file @
9a52a17a
...
...
@@ -2,6 +2,10 @@
Settings for the LMS that runs alongside the CMS on AWS
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.dev
import
*
MODULESTORE
=
{
...
...
lms/envs/common.py
View file @
9a52a17a
...
...
@@ -18,6 +18,11 @@ Longer TODO:
3. We need to handle configuration for multiple courses. This could be as
multiple sites, but we do need a way to map their data assets.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
import
sys
import
os
...
...
lms/envs/content.py
View file @
9a52a17a
...
...
@@ -2,6 +2,11 @@
These are debug machines used for content creators, so they're kind of a cross
between dev machines and AWS machines.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.aws
import
*
DEBUG
=
True
...
...
lms/envs/dev.py
View file @
9a52a17a
...
...
@@ -7,6 +7,11 @@ sessions. Assumes structure:
/mitx # The location of this repo
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.common
import
*
from
logsettings
import
get_logger_config
...
...
lms/envs/dev_edx4edx.py
View file @
9a52a17a
...
...
@@ -8,6 +8,10 @@ sessions. Assumes structure:
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
import
socket
if
'eecs1'
in
socket
.
gethostname
():
...
...
lms/envs/dev_ike.py
View file @
9a52a17a
...
...
@@ -7,6 +7,11 @@ sessions. Assumes structure:
/mitx # The location of this repo
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.common
import
*
from
logsettings
import
get_logger_config
from
.dev
import
*
...
...
lms/envs/dev_int.py
View file @
9a52a17a
...
...
@@ -9,6 +9,11 @@ following domains to 127.0.0.1 in your /etc/hosts file:
Note that OS X has a bug where using *.local domains is excruciatingly slow, so
use *.dev domains instead for local testing.
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.dev
import
*
MITX_FEATURES
[
'SUBDOMAIN_COURSE_LISTINGS'
]
=
True
...
...
lms/envs/dev_mongo.py
View file @
9a52a17a
"""
This config file runs the dev environment, but with mongo as the datastore
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.dev
import
*
GITHUB_REPO_ROOT
=
ENV_ROOT
/
"data"
...
...
lms/envs/dev_with_worker.py
View file @
9a52a17a
...
...
@@ -8,6 +8,10 @@ The worker can be executed using:
django_admin.py celery worker
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
dev
import
*
################################# CELERY ######################################
...
...
lms/envs/devgroups/courses.py
View file @
9a52a17a
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
..dev
import
*
CLASSES_TO_DBS
=
{
...
...
lms/envs/devgroups/h_cs50.py
View file @
9a52a17a
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.courses
import
*
DATABASES
=
course_db_for
(
'HarvardX/CS50x/2012'
)
lms/envs/devgroups/m_6002.py
View file @
9a52a17a
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.courses
import
*
DATABASES
=
course_db_for
(
'MITx/6.002x/2012_Fall'
)
lms/envs/devgroups/portal.py
View file @
9a52a17a
...
...
@@ -2,6 +2,11 @@
Note that for this to work at all, you must have memcached running (or you won't
get shared sessions)
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
courses
import
*
# Move this to a shared file later:
...
...
lms/envs/devplus.py
View file @
9a52a17a
...
...
@@ -13,6 +13,11 @@ Dir structure:
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.dev
import
*
WIKI_ENABLED
=
True
...
...
lms/envs/discussionsettings.py
View file @
9a52a17a
# We intentionally define variables that aren't used
# pylint: disable=W0614
DISCUSSION_ALLOWED_UPLOAD_FILE_TYPES
=
(
'.jpg'
,
'.jpeg'
,
'.gif'
,
'.bmp'
,
'.png'
,
'.tiff'
)
lms/envs/edx4edx_aws.py
View file @
9a52a17a
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
# Settings for edx4edx production instance
from
.aws
import
*
COURSE_NAME
=
"edx4edx"
...
...
lms/envs/jasmine.py
View file @
9a52a17a
...
...
@@ -2,6 +2,10 @@
This configuration is used for running jasmine tests
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.test
import
*
from
logsettings
import
get_logger_config
...
...
lms/envs/static.py
View file @
9a52a17a
...
...
@@ -7,6 +7,11 @@ sessions. Assumes structure:
/mitx # The location of this repo
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.common
import
*
from
logsettings
import
get_logger_config
...
...
lms/envs/test.py
View file @
9a52a17a
...
...
@@ -7,6 +7,11 @@ sessions. Assumes structure:
/mitx # The location of this repo
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.common
import
*
import
os
from
path
import
path
...
...
lms/envs/test_ike.py
View file @
9a52a17a
...
...
@@ -7,6 +7,11 @@ sessions. Assumes structure:
/mitx # The location of this repo
/log # Where we're going to write log files
"""
# We intentionally define lots of variables that aren't used, and
# want to import all variables from base settings files
# pylint: disable=W0401, W0614
from
.common
import
*
from
logsettings
import
get_logger_config
import
os
...
...
lms/lib/comment_client/utils.py
View file @
9a52a17a
...
...
@@ -55,6 +55,9 @@ def perform_request(method, url, data_or_params=None, *args, **kwargs):
if
200
<
response
.
status_code
<
500
:
raise
CommentClientError
(
response
.
text
)
# Heroku returns a 503 when an application is in maintenance mode
elif
response
.
status_code
==
503
:
raise
CommentClientMaintenanceError
(
response
.
text
)
elif
response
.
status_code
==
500
:
raise
CommentClientUnknownError
(
response
.
text
)
else
:
...
...
@@ -72,5 +75,9 @@ class CommentClientError(Exception):
return
repr
(
self
.
message
)
class
CommentClientMaintenanceError
(
CommentClientError
):
pass
class
CommentClientUnknownError
(
CommentClientError
):
pass
lms/templates/discussion/maintenance.html
0 → 100644
View file @
9a52a17a
<
%
inherit
file=
"../main.html"
/>
<h1>
We're sorry
</h1>
<p>
The forums are currently undergoing maintenance. We'll have them back up shortly!
</p>
.
pylintrc
→
pylintrc
View file @
9a52a17a
File moved
rakefiles/helpers.rb
View file @
9a52a17a
...
...
@@ -14,16 +14,31 @@ def report_dir_path(dir)
return
File
.
join
(
REPORT_DIR
,
dir
.
to_s
)
end
def
when_changed
(
unchanged_message
,
*
files
)
Rake
::
Task
[
PREREQS_MD5_DIR
].
invoke
cache_file
=
File
.
join
(
PREREQS_MD5_DIR
,
files
.
join
(
'-'
).
gsub
(
/\W+/
,
'-'
))
+
'.md5'
def
compute_fingerprint
(
files
,
dirs
)
digest
=
Digest
::
MD5
.
new
()
# Digest the contents of all the files.
Dir
[
*
files
].
select
{
|
file
|
File
.
file?
(
file
)}.
each
do
|
file
|
digest
.
file
(
file
)
end
if
!
File
.
exists?
(
cache_file
)
or
digest
.
hexdigest
!=
File
.
read
(
cache_file
)
# Digest the names of the files in all the dirs.
dirs
.
each
do
|
dir
|
file_names
=
Dir
.
entries
(
dir
).
sort
.
join
(
" "
)
digest
.
update
(
file_names
)
end
digest
.
hexdigest
end
# Hash the contents of all the files, and the names of files in the dirs.
# Run the block if they've changed.
def
when_changed
(
unchanged_message
,
files
,
dirs
=
[])
Rake
::
Task
[
PREREQS_MD5_DIR
].
invoke
cache_file
=
File
.
join
(
PREREQS_MD5_DIR
,
files
[
0
].
gsub
(
/\W+/
,
'-'
).
sub
(
/-+$/
,
''
))
+
'.md5'
if
!
File
.
exists?
(
cache_file
)
or
compute_fingerprint
(
files
,
dirs
)
!=
File
.
read
(
cache_file
)
yield
File
.
write
(
cache_file
,
digest
.
hexdigest
)
File
.
write
(
cache_file
,
compute_fingerprint
(
files
,
dirs
)
)
elsif
!
unchanged_message
.
empty?
puts
unchanged_message
end
...
...
rakefiles/prereqs.rake
View file @
9a52a17a
require
'./rakefiles/helpers.rb'
PREREQS_MD5_DIR
=
ENV
[
"PREREQ_CACHE_DIR"
]
||
File
.
join
(
REPO_ROOT
,
'.prereqs_cache'
)
CLOBBER
.
include
(
PREREQS_MD5_DIR
)
...
...
@@ -13,7 +12,7 @@ task :install_prereqs => [:install_node_prereqs, :install_ruby_prereqs, :install
desc
"Install all node prerequisites for the lms and cms"
task
:install_node_prereqs
=>
"ws:migrate"
do
unchanged
=
'Node requirements unchanged, nothing to install'
when_changed
(
unchanged
,
'package.json'
)
do
when_changed
(
unchanged
,
[
'package.json'
]
)
do
sh
(
'npm install'
)
end
unless
ENV
[
'NO_PREREQ_INSTALL'
]
end
...
...
@@ -21,20 +20,21 @@ end
desc
"Install all ruby prerequisites for the lms and cms"
task
:install_ruby_prereqs
=>
"ws:migrate"
do
unchanged
=
'Ruby requirements unchanged, nothing to install'
when_changed
(
unchanged
,
'Gemfile'
)
do
when_changed
(
unchanged
,
[
'Gemfile'
]
)
do
sh
(
'bundle install'
)
end
unless
ENV
[
'NO_PREREQ_INSTALL'
]
end
desc
"Install all python prerequisites for the lms and cms"
task
:install_python_prereqs
=>
"ws:migrate"
do
site_packages_dir
=
`python -c 'import os; import distutils.sysconfig as dusc; print dusc.get_python_lib()'`
.
chomp
unchanged
=
'Python requirements unchanged, nothing to install'
when_changed
(
unchanged
,
'requirements/**/*'
)
do
when_changed
(
unchanged
,
[
'requirements/**/*'
],
[
site_packages_dir
]
)
do
ENV
[
'PIP_DOWNLOAD_CACHE'
]
||=
'.pip_download_cache'
sh
(
'pip install --exists-action w -r requirements/edx/base.txt'
)
sh
(
'pip install --exists-action w -r requirements/edx/post.txt'
)
#
Check for private-requirements.txt: used to install our libs as working dirs,
# or personal-use tools.
#
requirements/private.txt is used to install our libs as
#
working dirs, or f
or personal-use tools.
if
File
.
file?
(
"requirements/private.txt"
)
sh
(
'pip install -r requirements/private.txt'
)
end
...
...
rakefiles/quality.rake
View file @
9a52a17a
def
run_pylint
(
system
,
report_dir
,
flags
=
''
)
apps
=
Dir
[
"
#{
system
}
"
,
"
#{
system
}
/djangoapps/*"
,
"
#{
system
}
/lib/*"
].
map
do
|
app
|
File
.
basename
(
app
)
end
.
select
do
|
app
|
app
!=~
/.pyc$/
end
.
map
do
|
app
|
if
app
=~
/.py$/
app
.
gsub
(
'.py'
,
''
)
else
app
end
end
pythonpath_prefix
=
"PYTHONPATH=
#{
system
}
:
#{
system
}
/djangoapps:
#{
system
}
/lib:common/djangoapps:common/lib"
sh
(
"
#{
pythonpath_prefix
}
pylint
#{
flags
}
-f parseable
#{
apps
.
join
(
' '
)
}
| tee
#{
report_dir
}
/pylint.report"
)
end
[
:lms
,
:cms
,
:common
].
each
do
|
system
|
report_dir
=
report_dir_path
(
system
)
...
...
@@ -11,21 +28,18 @@
desc
"Run pylint on all
#{
system
}
code"
task
"pylint_
#{
system
}
"
=>
[
report_dir
,
:install_python_prereqs
]
do
apps
=
Dir
[
"
#{
system
}
/*.py"
,
"
#{
system
}
/djangoapps/*"
,
"
#{
system
}
/lib/*"
].
map
do
|
app
|
File
.
basename
(
app
)
end
.
select
do
|
app
|
app
!=~
/.pyc$/
end
.
map
do
|
app
|
if
app
=~
/.py$/
app
.
gsub
(
'.py'
,
''
)
else
app
end
run_pylint
(
system
,
report_dir
)
end
namespace
"pylint_
#{
system
}
"
do
desc
"Run pylint checking for errors only, and aborting if there are any"
task
:errors
do
run_pylint
(
system
,
report_dir
,
'-E'
)
end
pythonpath_prefix
=
"PYTHONPATH=
#{
system
}
:
#{
system
}
/djangoapps:
#{
system
}
/lib:common/djangoapps:common/lib"
sh
(
"
#{
pythonpath_prefix
}
pylint --rcfile=.pylintrc -f parseable
#{
apps
.
join
(
' '
)
}
| tee
#{
report_dir
}
/pylint.report"
)
end
namespace
:pylint
do
task
:errors
=>
"pylint_
#{
system
}
:errors"
end
task
:pylint
=>
"pylint_
#{
system
}
"
end
\ No newline at end of file
requirements/edx/base.txt
View file @
9a52a17a
...
...
@@ -74,6 +74,7 @@ lettuce==0.2.16
mock==0.8.0
nosexcover==1.0.7
pep8==1.4.5
pylint==0.28
rednose==0.3
selenium==2.31.0
splinter==0.5.0
...
...
@@ -81,7 +82,3 @@ django_nose==1.1
django-jasmine==0.3.2
django_debug_toolbar
django-debug-toolbar-mongo
# Install pylint from a specific commit on trunk
# to get the fix for this issue: http://www.logilab.org/ticket/122793
https://bitbucket.org/logilab/pylint/get/e828cb5.zip
requirements/edx/github.txt
View file @
9a52a17a
...
...
@@ -8,5 +8,5 @@
-e git://github.com/eventbrite/zendesk.git@d53fe0e81b623f084e91776bcf6369f8b7b63879#egg=zendesk
# Our libraries:
-e git+https://github.com/edx/XBlock.git@
483e0cb1
#egg=XBlock
-e git+https://github.com/edx/XBlock.git@
2144a25d
#egg=XBlock
-e git+https://github.com/edx/codejail.git@07494f1#egg=codejail
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