You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 7, 2023. It is now read-only.
Copy file name to clipboardExpand all lines: CONTRIBUTING.rst
+12-11Lines changed: 12 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,25 +3,26 @@ Contributing to the Runestone Components
3
3
4
4
We welcome contributions large and small to the Runestone Components. We welcome contributions from newcomers as well as seasoned Runestone hackers. You don't need to be an expert to make a contribution here. When I started this project I had barely written a line of Javascript, Runestone is a project that is all about helping people learn, if you learn by helping us improve Runestone that is even better!
5
5
6
-
Understand the RoadMap
7
-
----------------------
6
+
Understand the Road map
7
+
-----------------------
8
8
9
-
You should look at the `development road map <https://github.com/bnmnetp/runestone/wiki/DevelopmentRoadmap>`_
10
-
and especially RSE-0001 which gives you a clear idea of the current philosophy behind the components. Any
9
+
You should look at the `development road map <https://github.com/bnmnetp/runestone/wiki/DevelopmentRoadmap2019>`_
10
+
and especially `RSE-0001<https://github.com/RunestoneInteractive/RunestoneServer/wiki/RSE-0001>`_ which gives you a clear idea of the current philosophy behind the components. Any
11
11
Sphinx directives should create very simple html and let Javascript take care of the rest.
12
12
13
13
Coding Standards
14
14
----------------
15
15
16
16
* All components must be Python 3 compatible. The ``six`` module is already
17
17
in the requirements.txt file, so feel free to use that.
18
-
* No Tabs for Python files (4 spaces = 1 indention)
19
-
* Avoid profliferation of jQuery versions. Make your stuff compatible with the version
18
+
* No Tabs for Python files (4 spaces = 1 indentation)
19
+
* Avoid proliferation of jQuery versions. Make your stuff compatible with the version
20
20
of jQuery in the common folder.
21
21
* Avoid proliferation of additional third party javascript modules. We are already out of
22
22
control in this regard and it would be nice to rein it in.
23
+
* To add JavaScript for a new component, follow the directions in `webpack.index.js` for dynamically-loaded components.
23
24
* When creating a new directive, assign a unique class name to the outermost HTML division. That will allow you to easily confine your CSS declarations to apply only within your directive. Since there are many directives, chances for CSS namespace conflicts are high without that.
24
-
* When making a new directive Also put the outer div in the runestone class, this makes it easy for us to select all runestone components on a page.
25
+
* When making a new directive, also put the outer div in the runestone class. This makes it easy for us to select all runestone components on a page.
25
26
* When making any changes, make sure the docstring for the class that implements the Sphinx directive is up to date. These docstrings are used in several places for templates and quick help.
26
27
* Make sure your new directive class inherits and uses RunestoneBase
27
28
* Avoid writing a directive that returns a raw node. Creating appropriate nodes that inherit from Runestone gives us much more flexibility to auto number and cross reference and store source in the database.
@@ -46,17 +47,17 @@ multiple instances of your component on a single web page.
46
47
Internationalization
47
48
--------------------
48
49
49
-
It is recomended to implement internationalization as described in `I18N` even if you plan to support only English currently. Besides making easy to support other languages in the future, internationalization helps you to better separate natural language text fragments from the rest of your code.
50
+
It is recommended to implement internationalization as described in `I18N` even if you plan to support only English currently. Besides making easy to support other languages in the future, internationalization helps you to better separate natural language text fragments from the rest of your code.
50
51
51
52
52
53
Major Feature Contributions
53
54
===========================
54
55
55
-
There are many ways that we can continue to improve and make the Runestone platform great, and I am exctied to see the platform evolve. What I would ask is that if you have a large new feature that you would like to propose / contribute please start by creating an issue. This will allow us to discuss it together up front, consider the design implications, and make it more likely that the PR will be accepted with a minimum of fuss.
56
+
There are many ways that we can continue to improve and make the Runestone platform great, and I am exited to see the platform evolve. What I would ask is that if you have a large new feature that you would like to propose / contribute please start by creating an issue. This will allow us to discuss it together up front, consider the design implications, and make it more likely that the PR will be accepted with a minimum of fuss.
56
57
57
-
Runestone has grown organically over the years but that has led to duplicated tables in the database duplicated code and lots of inconsistency. We need to start working to change all of that if we are going to continue to grow runestone efficiently.
58
+
Runestone has grown organically over the years but that has led to duplicated tables in the database duplicated code and lots of inconsistency. We need to start working to change all of that if we are going to continue to grow Runestone efficiently.
58
59
59
60
60
61
JavaScript
61
62
----------
62
-
All the JavaScript files in the Runestone Components are analzyed by webpack. If you add or remove JavaScript files, update the `webpack.index.js`.
63
+
All the JavaScript files in the Runestone Components are analyzed by webpack. If you add or remove JavaScript files, update the `webpack.index.js`.
Copy file name to clipboardExpand all lines: README.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -162,7 +162,7 @@ Our goal is to have unit tests which rely on Selenium (a library that helps simu
162
162
163
163
**To run tests:**
164
164
165
-
* Make sure the directory containing the PhantomJS executable is in your ``PATH`` environment variable. e.g. ``PATH=$PATH:path/to/virtualenv/directory/where/it/is/here`` at your command line (or edit your ``.bash_profile``). It should live in the site-packages/selenium/webdriver/ directory of your virtualenv.
165
+
* Make sure the directory containing the ChromeDriver executable is in your ``PATH`` environment variable. e.g. ``PATH=$PATH:path/to/chromedriver`` at your command line (or edit your ``.bash_profile``).
166
166
167
167
* Check out the existing tests, e.g. the ``test_question.py`` file that tests the Question directive, which you can find at the path ``/runestone/question/test/test_question.py``, for an example.
# This file defines the configuration for a CodeChat project. It contains a working `Sphinx <https://www.sphinx-doc.org/>`_ configuration.
23
+
#
24
+
# ``source_path``: optional; defaults to ``.`` (the current directory). A path to the root of the source tree. Relative paths are rooted in the directory containing this configuration file.
25
+
source_path: .
26
+
27
+
# ``output_path``: required. A path to the root of the HTML output produced by this renderer. Relative paths are rooted in the directory containing this configuration file.
28
+
output_path: build/RunestoneComponents
29
+
30
+
# ``args``: required string or sequence of strings. This provides the arguments to invoke the renderer. These strings may optionally contain the following replacement values:
31
+
#
32
+
# - ``{project_path}``: an absolute path to the directory containing this file.
33
+
# - ``{source_path}``: the ``source_path`` above, but as an absolute path.
34
+
# - ``{output_path}``: the ``output_path`` above, but as an absolute path.
35
+
#
36
+
args: runestone build
37
+
38
+
# ``html_ext``: optional; defaults to ``.html``. The extension used by this renderer when generating HTML files.
0 commit comments