RunestoneInteractive / RunestoneComponents

Packaging of the Runestone tools for publishing educational materials using github pages
http://runestoneinteractive.org
Other
101 stars 226 forks source link

RunestoneComponents 2.6 fails to build on Windows machines #219

Closed presnick closed 8 years ago

presnick commented 8 years ago

Just upgraded to latest (2.6.2). On two different computers, we get a build error right on a clean project (just craeted with runestone init). Here's the full error from the log.


Sphinx version: 1.4.5

Python version: 2.7.6 (CPython)

Docutils version: 0.12 release

Jinja2 version: 2.8

Last messages:

Running Sphinx v1.4.5

loading pickled environment...

not yet created

building [mo]: targets for 0 po files that are out of date

building [html]: targets for 1 source files that are out of date

updating environment:

1 added, 0 changed, 0 removed

reading sources... [100%] index

Loaded extensions:

runestone.animation (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\animationinit.pyc

runestone.usageAssignment (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\usageAssignmentinit.pyc

runestone.shortanswer (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\shortanswerinit.pyc

runestone.meta (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\metainit.pyc

runestone.dragndrop (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\dragndropinit.pyc

alabaster (0.7.8) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\alabasterinit.pyc

runestone.question (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\questioninit.pyc

runestone.tabbedStuff (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\tabbedStuffinit.pyc

runestone.poll (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\pollinit.pyc

runestone.datafile (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\datafileinit.pyc

runestone.livecode (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\livecodeinit.pyc

sphinx.ext.mathjax (1.4.5) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\ext\mathjax.pyc

runestone.reveal (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\revealinit.pyc

runestone.assess (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\assessinit.pyc

runestone.disqus (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\disqusinit.pyc

runestone.blockly (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\blocklyinit.pyc

runestone.clickableArea (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\clickableAreainit.pyc

runestone.codelens (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\codelensinit.pyc

runestone.activecode (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\activecodeinit.pyc

runestone.fitb (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\fitbinit.pyc

runestone.video (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\videoinit.pyc

runestone.parsons (unknown version) from c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\parsonsinit.pyc

Traceback (most recent call last): File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\cmdline.py", line 244, in main app.build(opts.force_all, filenames) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\application.py", line 297, in build self.builder.build_update() File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\buildersinit.py", line 251, in build_update 'out of date' % len(to_build)) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\buildersinit.py", line 265, in build self.doctreedir, self.app)) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\environment.py", line 569, in update self._read_serial(docnames, app) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\environment.py", line 589, in _read_serial self.read_doc(docname, app) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\environment.py", line 742, in read_doc pub.publish() File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\core.py", line 217, in publish self.settings) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\sphinx\io.py", line 49, in read self.parse() File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\readersinit.py", line 78, in parse self.parser.parse(self.input, document) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rstinit.py", line 172, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 170, in run input_source=document['source']) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 239, in run context, state, transitions) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 460, in check_line return method(match, context, next_state) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 2961, in text self.section(title.lstrip(), source, style, lineno + 1, messages) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 327, in section self.new_subsection(title, lineno, messages) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 395, in new_subsection node=section_node, match_titles=True) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 282, in nested_parse node=node, match_titles=match_titles) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run results = StateMachineWS.run(self, input_lines, input_offset) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 239, in run context, state, transitions) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 460, in check_line return method(match, context, next_state) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 2726, in underline self.section(title, source, style, lineno - 1, messages) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 327, in section self.new_subsection(title, lineno, messages) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 395, in new_subsection node=section_node, match_titles=True) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 282, in nested_parse node=node, match_titles=match_titles) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run results = StateMachineWS.run(self, input_lines, input_offset) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 239, in run context, state, transitions) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 460, in check_line return method(match, context, next_state) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 2726, in underline self.section(title, source, style, lineno - 1, messages) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 327, in section self.new_subsection(title, lineno, messages) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 395, in new_subsection node=section_node, match_titles=True) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 282, in nested_parse node=node, match_titles=match_titles) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 195, in run results = StateMachineWS.run(self, input_lines, input_offset) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 239, in run context, state, transitions) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\statemachine.py", line 460, in check_line return method(match, context, next_state) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 2299, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 2311, in explicit_construct return method(self, expmatch) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 2054, in directive directive_class, match, type_name, option_presets) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\docutils\parsers\rst\states.py", line 2101, in run_directive content_offset, block_text, self, self.state_machine) File "c:\Users\presnick\testRunestone\test_runestone_install\lib\site-packages\runestone\common\runestonedirective.py", line 42, in init self.chapter = srcpath.split('/')[-2] IndexError: list index out of range

presnick commented 8 years ago

Another person, using a Mac, did not have this problem with 2.6.2.

bnmnetp commented 8 years ago

Yes, it is that stupid split that assumes the separator is always '/'

bnmnetp commented 8 years ago

If everyone would use a mac or linux...

bnmnetp commented 8 years ago

Or if Python programmers would always use os.path.sep

bnmnetp commented 8 years ago

Just pushed release 2.6.3 to pypi

Using os.path.sep should solve the problem.