From 713737f7a10f5b7fc89ccfab8ae77700dba4f5c2 Mon Sep 17 00:00:00 2001 From: Volker Braun Date: Thu, 28 Nov 2013 19:05:38 +0000 Subject: [PATCH 1/3] fall back to doctesting all files if new files cannot be identified --- src/sage/doctest/control.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py index 87b5ab39608..255f3424730 100644 --- a/src/sage/doctest/control.py +++ b/src/sage/doctest/control.py @@ -445,7 +445,7 @@ def add_files(self): sage: DD = DocTestDefaults(new = True) sage: DC = DocTestController(DD, []) sage: DC.add_files() - Doctesting files ... + Doctesting ... :: @@ -458,22 +458,26 @@ def add_files(self): """ opj = os.path.join from sage.env import SAGE_SRC, SAGE_ROOT - if self.options.all: - self.log("Doctesting entire Sage library.") + def all_files(): from glob import glob self.files.append(opj(SAGE_SRC, 'sage')) self.files.append(opj(SAGE_SRC, 'doc', 'common')) self.files.extend(glob(opj(SAGE_SRC, 'doc', '[a-z][a-z]'))) self.options.sagenb = True - elif self.options.new: + DOT_GIT= opj(SAGE_ROOT, '.git') + have_git = os.path.exists(DOT_GIT) + if self.options.all or (self.options.new and not have_git): + self.log("Doctesting entire Sage library.") + all_files() + elif self.options.new and have_git: # Get all files changed in the working repo. + self.log("Doctesting files changed since last git commit") import subprocess change = subprocess.check_output(["git", - "--git-dir=" + SAGE_ROOT + "/.git", + "--git-dir=" + DOT_GIT, "--work-tree=" + SAGE_ROOT, "status", "--porcelain"]) - self.log("Doctesting files changed since last git commit") for line in change.split("\n"): if not line: continue From 067dfc6b5c4b25a64d23c97b48eaa7ce279146b9 Mon Sep 17 00:00:00 2001 From: Volker Braun Date: Thu, 28 Nov 2013 20:12:04 +0000 Subject: [PATCH 2/3] Relax the cmdline test of "sage -dev", it may be disabled --- src/bin/sage-dev | 22 ++++++++++++++++++++-- src/sage/all.py | 2 +- src/sage/tests/cmdline.py | 4 +++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/bin/sage-dev b/src/bin/sage-dev index aba39827fa7..c17d0429a3c 100755 --- a/src/bin/sage-dev +++ b/src/bin/sage-dev @@ -5,8 +5,26 @@ import inspect import sys from textwrap import dedent -if __name__ == '__main__': - from sage.dev.sagedev_instance import dev as DEV +DISABLED_MESSAGE = """ +Developer interface disabled. + +To develop for Sage you must compile Sage from its git +repository. This just amounts to running + + git clone git://github.com/sagemath/sage.git + cd sage + make + +See http://trac.sagemath.org/wiki/QuickStartSageGit for slightly more +information. +""" + +try: + from sage.all import dev as DEV +except ImportError: + print(DISABLED_MESSAGE.strip()) + sys.exit(0) + class SageHelpFormatter(argparse.HelpFormatter): """ diff --git a/src/sage/all.py b/src/sage/all.py index 0301640ac66..b886cc0113f 100644 --- a/src/sage/all.py +++ b/src/sage/all.py @@ -74,7 +74,7 @@ from sage.libs.all import * from sage.doctest.all import * -if SAGE_ROOT is not None: +if SAGE_ROOT is not None and os.path.exists(os.path.join(SAGE_ROOT, '.git')): from sage.dev.all import * from sage.rings.all import * diff --git a/src/sage/tests/cmdline.py b/src/sage/tests/cmdline.py index 3f507743280..5ec3a220202 100644 --- a/src/sage/tests/cmdline.py +++ b/src/sage/tests/cmdline.py @@ -466,11 +466,13 @@ def test_executable(args, input="", timeout=100.0, **kwds): sage: (out, err, ret) = test_executable(["sage", "--dev", "help"]) sage: ret, err (0, '') - sage: print out + sage: print out # random output usage: sage-dev [-h] subcommand ... The developer interface for sage. ... + sage: ('usage: sage-dev' in out) or ('Developer interface disabled' in out) + True sage: (out, err, ret) = test_executable(["sage", "--ecl"], "(* 12345 54321)\n") sage: out.find("Embeddable Common-Lisp") >= 0 From 24e5a7388f98b535ae84aa5753439e0128994473 Mon Sep 17 00:00:00 2001 From: Volker Braun Date: Fri, 29 Nov 2013 12:58:28 +0000 Subject: [PATCH 3/3] better to ask for forgiveness --- src/sage/all.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sage/all.py b/src/sage/all.py index b886cc0113f..b37f86f2d4f 100644 --- a/src/sage/all.py +++ b/src/sage/all.py @@ -74,8 +74,10 @@ from sage.libs.all import * from sage.doctest.all import * -if SAGE_ROOT is not None and os.path.exists(os.path.join(SAGE_ROOT, '.git')): - from sage.dev.all import * +try: + from sage.dev.all import * +except ImportError: + pass # dev scripts are disabled from sage.rings.all import * from sage.matrix.all import *