示例#1
0
def js_product_info():
    """Return JSON-serialized information on the product.

    This will include the product name, version (human-readable and raw
    version information), release status, and the URL to the manual, in a
    form that can be directly embedded into a template's JavaScript section.

    Since the data won't change between calls without performing an upgrade
    and restart, result is cached in the process. Repeated calls will return
    the cached information.

    Returns:
        django.utils.safestring.SafeText:
        The JSON-serialized product information.
    """
    global _product_info_str

    # We're caching the results, since this isn't going to ever change
    # between requests while the process is still running.
    if _product_info_str is None:
        _product_info_str = json_dumps({
            'isRelease': is_release(),
            'manualURL': get_manual_url(),
            'name': settings.PRODUCT_NAME,
            'version': get_version_string(),
            'versionInfo': VERSION[:-1],
        })

    return _product_info_str
示例#2
0
def get_server_info(request=None):
    """Return server information for use in the API.

    This is used for the root resource and for the deprecated server
    info resource.

    Args:
        request (django.http.HttpRequest, optional):
            The HTTP request from the client.

    Returns:
        dict:
        A dictionary of information about the server and its capabilities.
    """
    return {
        'product': {
            'name': 'Review Board',
            'version': get_version_string(),
            'package_version': get_package_version(),
            'is_release': is_release(),
        },
        'site': {
            'url':
            get_server_url(request=request),
            'administrators': [{
                'name': name,
                'email': email,
            } for name, email in settings.ADMINS],
            'time_zone':
            settings.TIME_ZONE,
        },
        'capabilities': get_capabilities(request=request),
    }
示例#3
0
    def get(self, request, *args, **kwargs):
        """Returns the information on the Review Board server."""
        site = Site.objects.get_current()
        siteconfig = SiteConfiguration.objects.get_current()

        url = '%s://%s%s' % (siteconfig.get('site_domain_method'), site.domain,
                             local_site_reverse('root', request=request))

        return 200, {
            self.item_result_key: {
                'product': {
                    'name': 'Review Board',
                    'version': get_version_string(),
                    'package_version': get_package_version(),
                    'is_release': is_release(),
                },
                'site': {
                    'url': url,
                    'administrators': [{'name': name, 'email': email}
                                       for name, email in settings.ADMINS],
                    'time_zone': settings.TIME_ZONE,
                },
                'capabilities': {
                    'diffs': {
                        'base_commit_ids': True,
                        'moved_files': True,
                    },
                    'scmtools': {
                        'perforce': {
                            'moved_files': True,
                        },
                    },
                },
            },
        }
示例#4
0
def get_server_info(request=None):
    """Returns server information for use in the API.

    This is used for the root resource and for the deprecated server
    info resource.
    """
    capabilities = _capabilities_defaults.copy()
    capabilities.update(_registered_capabilities)

    return {
        'product': {
            'name': 'Review Board',
            'version': get_version_string(),
            'package_version': get_package_version(),
            'is_release': is_release(),
        },
        'site': {
            'url':
            get_server_url(request=request),
            'administrators': [{
                'name': name,
                'email': email,
            } for name, email in settings.ADMINS],
            'time_zone':
            settings.TIME_ZONE,
        },
        'capabilities': capabilities
    }
示例#5
0
def get_server_info(request=None):
    """Return server information for use in the API.

    This is used for the root resource and for the deprecated server
    info resource.

    Args:
        request (django.http.HttpRequest, optional):
            The HTTP request from the client.

    Returns:
        dict:
        A dictionary of information about the server and its capabilities.
    """
    return {
        'product': {
            'name': 'Review Board',
            'version': get_version_string(),
            'package_version': get_package_version(),
            'is_release': is_release(),
        },
        'site': {
            'url': get_server_url(request=request),
            'administrators': [
                {
                    'name': name,
                    'email': email,
                }
                for name, email in settings.ADMINS
            ],
            'time_zone': settings.TIME_ZONE,
        },
        'capabilities': get_capabilities(request=request),
    }
示例#6
0
def main():
    if not os.path.exists("setup.py"):
        sys.stderr.write("This must be run from the root of the "
                         "Review Board tree.\n")
        sys.exit(1)

    load_config()

    if not is_release():
        sys.stderr.write("This version is not listed as a release.\n")
        sys.exit(1)

    cur_dir = os.getcwd()
    git_dir = clone_git_tree(cur_dir)

    build_settings()
    build_targets()
    build_checksums()
    upload_files()

    os.chdir(cur_dir)
    shutil.rmtree(git_dir)

    tag_release()
    register_release()
示例#7
0
def main():
    if not os.path.exists("setup.py"):
        sys.stderr.write("This must be run from the root of the "
                         "Review Board tree.\n")
        sys.exit(1)

    load_config()

    if not is_release():
        sys.stderr.write("This version is not listed as a release.\n")
        sys.exit(1)

    cur_dir = os.getcwd()
    git_dir = clone_git_tree(cur_dir)

    build_settings()
    build_targets()
    build_checksums()
    upload_files()

    os.chdir(cur_dir)
    shutil.rmtree(git_dir)

    tag_release()
    register_release()
示例#8
0
def version(request):
    return {
        'version': get_version_string(),
        'package_version': get_package_version(),
        'is_release': is_release(),
        'version_raw': VERSION,
    }
示例#9
0
def get_server_info(request=None):
    """Returns server information for use in the API.

    This is used for the root resource and for the deprecated server
    info resource.
    """
    capabilities = _capabilities_defaults.copy()
    capabilities.update(_registered_capabilities)

    return {
        'product': {
            'name': 'Review Board',
            'version': get_version_string(),
            'package_version': get_package_version(),
            'is_release': is_release(),
        },
        'site': {
            'url': get_server_url(request=request),
            'administrators': [
                {
                    'name': name,
                    'email': email,
                }
                for name, email in settings.ADMINS
            ],
            'time_zone': settings.TIME_ZONE,
        },
        'capabilities': capabilities
    }
示例#10
0
def version(request):
    return {
        'version': get_version_string(),
        'package_version': get_package_version(),
        'is_release': is_release(),
        'version_raw': VERSION,
        'RB_MANUAL_URL': get_manual_url(),
    }
示例#11
0
def get_server_info(request=None):
    """Returns server information for use in the API.

    This is used for the root resource and for the deprecated server
    info resource.
    """
    site = Site.objects.get_current()
    siteconfig = SiteConfiguration.objects.get_current()

    url = '%s://%s%s' % (siteconfig.get('site_domain_method'), site.domain,
                         local_site_reverse('root', request=request))

    return {
        'product': {
            'name': 'Review Board',
            'version': get_version_string(),
            'package_version': get_package_version(),
            'is_release': is_release(),
        },
        'site': {
            'url': url,
            'administrators': [
                {
                    'name': name,
                    'email': email,
                }
                for name, email in settings.ADMINS
            ],
            'time_zone': settings.TIME_ZONE,
        },
        'capabilities': {
            'diffs': {
                'base_commit_ids': True,
                'moved_files': True,
            },
            'review_requests': {
                'commit_ids': True,
            },
            'scmtools': {
                'git': {
                    'empty_files': True,
                },
                'mercurial': {
                    'empty_files': True,
                },
                'perforce': {
                    'moved_files': True,
                    'empty_files': True,
                },
                'svn': {
                    'empty_files': True,
                },
            },
            'text': {
                'markdown': True,
            },
        }
    }
def _get_branch_for_version():
    """Return the branch or tag for the current version of Review Board."""
    if VERSION[4] == 'final' or VERSION[5] > 0:
        if reviewboard.is_release():
            return 'release-%s.%s.%s' % (VERSION[0], VERSION[1], VERSION[2])
        else:
            return 'release-%s.%s.x' % (VERSION[0], VERSION[1])
    else:
        return 'master'
示例#13
0
def version(request):
    """Return a dictionary with version information."""
    return {
        'version': get_version_string(),
        'package_version': get_package_version(),
        'is_release': is_release(),
        'version_raw': VERSION,
        'RB_MANUAL_URL': get_manual_url(),
    }
示例#14
0
def _get_branch_for_version():
    """Return the branch or tag for the current version of Review Board."""
    if VERSION[4] == 'final' or VERSION[5] > 0:
        if reviewboard.is_release():
            return 'release-%s.%s.%s' % (VERSION[0], VERSION[1], VERSION[2])
        else:
            return 'release-%s.%s.x' % (VERSION[0], VERSION[1])
    else:
        return 'master'
示例#15
0
def get_server_info(request=None):
    """Returns server information for use in the API.

    This is used for the root resource and for the deprecated server
    info resource.
    """
    return {
        'product': {
            'name': 'Review Board',
            'version': get_version_string(),
            'package_version': get_package_version(),
            'is_release': is_release(),
        },
        'site': {
            'url': get_server_url(request=request),
            'administrators': [
                {
                    'name': name,
                    'email': email,
                }
                for name, email in settings.ADMINS
            ],
            'time_zone': settings.TIME_ZONE,
        },
        'capabilities': {
            'diffs': {
                'base_commit_ids': True,
                'moved_files': True,
            },
            'review_requests': {
                'commit_ids': True,
            },
            'scmtools': {
                'git': {
                    'empty_files': True,
                },
                'mercurial': {
                    'empty_files': True,
                },
                'perforce': {
                    'moved_files': True,
                    'empty_files': True,
                },
                'svn': {
                    'empty_files': True,
                },
            },
            'text': {
                'markdown': True,
                'per_field_text_types': True,
                'can_include_raw_values': True,
            },
        }
    }
示例#16
0
def main():
    python_check_can_release(is_release())

    rbwebsite_load_config()

    with git_use_clone('.'):
        build_settings()
        built_files = build_targets()
        s3_upload_files(RELEASES_BUCKET_NAME, RELEASES_BUCKET_KEY, built_files)

    git_tag_release(__version__)
    register_release()
示例#17
0
def main():
    python_check_can_release(is_release())

    rbwebsite_load_config()

    with git_use_clone("."):
        build_settings()
        built_files = build_targets()
        s3_upload_files(RELEASES_BUCKET_NAME, RELEASES_BUCKET_KEY, built_files)

    git_tag_release(__version__)
    register_release()
示例#18
0
def linkcode_resolve(domain, info):
    version = reviewboard.VERSION

    if version[4] == 'final' or version[4] > 0:
        if reviewboard.is_release():
            branch = 'release-%s.%s.%s' % (version[0], version[1], version[2])
        else:
            branch = 'release-%s.%s.x' % (version[0], version[1])
    else:
        branch = 'master'

    return github_linkcode_resolve(domain=domain,
                                   info=info,
                                   allowed_module_names=['reviewboard'],
                                   github_org_id='reviewboard',
                                   github_repo_id='reviewboard',
                                   branch=branch)
示例#19
0
def linkcode_resolve(domain, info):
    version = reviewboard.VERSION

    if version[4] == 'final' or version[4] > 0:
        if reviewboard.is_release():
            branch = 'release-%s.%s.%s' % (version[0], version[1], version[2])
        else:
            branch = 'release-%s.%s.x' % (version[0], version[1])
    else:
        branch = 'master'

    return github_linkcode_resolve(domain=domain,
                                   info=info,
                                   allowed_module_names=['reviewboard'],
                                   github_org_id='reviewboard',
                                   github_repo_id='reviewboard',
                                   branch=branch)
示例#20
0
def main():
    if not os.path.exists("setup.py"):
        sys.stderr.write("This must be run from the root of the "
                         "Review Board tree.\n")
        sys.exit(1)

    if not is_release():
        sys.stderr.write("This version is not listed as a release.\n")
        sys.exit(1)

    clean()
    build_targets()
    upload_files()
    tag_release()

    if VERSION[3] == 'final':
        register_release()
示例#21
0
def version(request):
    """Return a dictionary with version information.

    Args:
        request (django.http.HttpRequest):
            The current HTTP request.

    Returns:
        dict:
        State to add to the context.
    """
    return {
        'version': get_version_string(),
        'package_version': get_package_version(),
        'is_release': is_release(),
        'version_raw': VERSION,
        'RB_MANUAL_URL': get_manual_url(),
    }
示例#22
0
def server_info(request):
    site = Site.objects.get_current()
    siteconfig = site.config.get()

    url = "%s://%s%s" % (siteconfig.get("site_domain_method"), site.domain, settings.SITE_ROOT)

    return WebAPIResponse(
        request,
        {
            "product": {
                "name": "Review Board",
                "version": get_version_string(),
                "package_version": get_package_version(),
                "is_release": is_release(),
            },
            "site": {"url": url, "administrators": [{"name": name, "email": email} for name, email in settings.ADMINS]},
        },
    )
示例#23
0
def server_info(request):
    site = Site.objects.get_current()
    siteconfig = site.config.get()

    url = '%s://%s%s' % (siteconfig.get('site_domain_method'), site.domain,
                         settings.SITE_ROOT)

    return WebAPIResponse(request, {
        'product': {
            'name': 'Review Board',
            'version': get_version_string(),
            'package_version': get_package_version(),
            'is_release': is_release(),
        },
        'site': {
            'url': url,
            'administrators': [{'name': name, 'email': email}
                               for name, email in settings.ADMINS],
        },
    })
def _get_branch_for_version():
    """Return the branch or tag for the current version of Review Board."""
    if VERSION[4] == 'final' or VERSION[5] > 0:
        branch = 'release-%s.%s' % (VERSION[0], VERSION[1])

        if reviewboard.is_release():
            if VERSION[2] > 0:
                branch += '.%s' % VERSION[2]

            if VERSION[4] != 'final':
                branch += VERSION[4]

                if VERSION[5] > 0:
                    branch += '%s' % VERSION[5]
        else:
            branch += '.x'

        return branch
    else:
        return 'master'
示例#25
0
def _get_branch_for_version():
    """Return the branch or tag for the current version of Review Board."""
    if VERSION[4] == 'final' or VERSION[5] > 0:
        branch = 'release-%s.%s' % (VERSION[0], VERSION[1])

        if reviewboard.is_release():
            if VERSION[2] > 0:
                branch += '.%s' % VERSION[2]

            if VERSION[4] != 'final':
                branch += VERSION[4]

                if VERSION[5] > 0:
                    branch += '%s' % VERSION[5]
        else:
            branch += '.x'

        return branch
    else:
        return 'master'
示例#26
0
    def compare_item(self, item_rsp, obj):
        self.assertIn('product', item_rsp)
        self.assertIn('site', item_rsp)
        self.assertIn('capabilities', item_rsp)

        product_rsp = item_rsp['product']
        self.assertEqual(product_rsp['name'], 'Review Board')
        self.assertEqual(product_rsp['version'], get_version_string())
        self.assertEqual(product_rsp['package_version'], get_package_version())
        self.assertEqual(product_rsp['is_release'], is_release())

        site_rsp = item_rsp['site']
        self.assertTrue(site_rsp['url'].startswith(get_server_url()))
        self.assertEqual(site_rsp['administrators'], [{
            'name': name,
            'email': email,
        } for name, email in settings.ADMINS])
        self.assertEqual(site_rsp['time_zone'], settings.TIME_ZONE)

        self.assertEqual(item_rsp['capabilities'], get_capabilities())
示例#27
0
    def get(self, request, *args, **kwargs):
        """Returns the information on the Review Board server."""
        site = Site.objects.get_current()
        siteconfig = SiteConfiguration.objects.get_current()

        url = '%s://%s%s' % (siteconfig.get('site_domain_method'), site.domain,
                             local_site_reverse('root', request=request))

        return 200, {
            self.item_result_key: {
                'product': {
                    'name': 'Review Board',
                    'version': get_version_string(),
                    'package_version': get_package_version(),
                    'is_release': is_release(),
                },
                'site': {
                    'url':
                    url,
                    'administrators': [{
                        'name': name,
                        'email': email
                    } for name, email in settings.ADMINS],
                    'time_zone':
                    settings.TIME_ZONE,
                },
                'capabilities': {
                    'diffs': {
                        'base_commit_ids': True,
                        'moved_files': True,
                    },
                    'scmtools': {
                        'perforce': {
                            'moved_files': True,
                        },
                    },
                },
            },
        }
示例#28
0
    def compare_item(self, item_rsp, obj):
        self.assertIn('product', item_rsp)
        self.assertIn('site', item_rsp)
        self.assertIn('capabilities', item_rsp)

        product_rsp = item_rsp['product']
        self.assertEqual(product_rsp['name'], 'Review Board')
        self.assertEqual(product_rsp['version'], get_version_string())
        self.assertEqual(product_rsp['package_version'], get_package_version())
        self.assertEqual(product_rsp['is_release'], is_release())

        site_rsp = item_rsp['site']
        self.assertTrue(site_rsp['url'].startswith(get_server_url()))
        self.assertEqual(site_rsp['administrators'], [
            {
                'name': name,
                'email': email,
            }
            for name, email in settings.ADMINS
        ])
        self.assertEqual(site_rsp['time_zone'], settings.TIME_ZONE)

        self.assertEqual(item_rsp['capabilities'], get_capabilities())
示例#29
0
    def finalize_options(self):
        # By the time finalize_options is called, install.install_lib is
        # set to the fixed directory, so we set the installdir to install_lib.
        # The # install_data class uses ('install_data', 'install_dir') instead.
        self.set_undefined_options('install', ('install_lib', 'install_dir'))
        install_data.finalize_options(self)


if sys.platform == "darwin":
    cmdclasses = {'install_data': osx_install_data}
else:
    cmdclasses = {'install_data': install_data}

PACKAGE_NAME = 'ReviewBoard'

if is_release():
    download_url = 'http://downloads.reviewboard.org/releases/%s/%s.%s/' % \
                   (PACKAGE_NAME, VERSION[0], VERSION[1])
else:
    download_url = 'http://downloads.reviewboard.org/nightlies/'

# Build the reviewboard package.
setup(name=PACKAGE_NAME,
      version=get_package_version(),
      license="MIT",
      description="Review Board, a web-based code review tool",
      url="http://www.reviewboard.org/",
      download_url=download_url,
      author="The Review Board Project",
      author_email="*****@*****.**",
      maintainer="Christian Hammond",
示例#30
0
#latex_appendices = []

# If false, no module index is generated.
#latex_use_modindex = True

latex_show_urls = 'inline'
latex_show_pagerefs = True


# Determine the branch or tag used for code references.
rb_version = reviewboard.VERSION

if rb_version[3] == 'final' or rb_version[5] > 0:
    git_branch = 'release-%s.%s' % (rb_version[0], rb_version[1])

    if reviewboard.is_release():
        if rb_version[2]:
            git_branch += '.%s' % rb_version[2]

            if rb_version[3]:
                git_branch += '.%s' % rb_version[3]

        if version[4] != 'final':
            git_branch += rb_version[4]

            if rb_version[5]:
                git_branch += '%d' % rb_version[5]
    else:
        git_branch += '.x'
else:
    git_branch = 'master'
示例#31
0
# Documents to append as an appendix to all manuals.
#latex_appendices = []

# If false, no module index is generated.
#latex_use_modindex = True

latex_show_urls = True
latex_show_pagerefs = True


# Determine the branch or tag used for code references.
rb_version = reviewboard.VERSION

if rb_version[4] == 'final' or rb_version[4] > 0:
    if reviewboard.is_release():
        git_branch = 'release-%s.%s.%s' % rb_version[:3]
    else:
        git_branch = 'release-%s.%s.x' % rb_version[:2]
else:
    git_branch = 'master'


# Check whether reviewboard.org intersphinx lookups should use the local
# server.
if os.getenv('DOCS_USE_LOCAL_RBWEBSITE') == '1':
    rbwebsite_url = 'http://localhost:8081'
else:
    rbwebsite_url = 'https://www.reviewboard.org'

示例#32
0
latex_show_urls = True
latex_show_pagerefs = True

# Determine the branch or tag used for code references.
rb_version = reviewboard.VERSION

if rb_version[3] == 'final' or rb_version[5] > 0:
    git_branch = 'release-%s.%s' % (rb_version[0], rb_version[1])

    if rb_version[2]:
        git_branch += '.%s' % rb_version[2]

        if rb_version[3]:
            git_branch += '.%s' % rb_version[3]

    if reviewboard.is_release() and version[3] != 'final':
        git_branch += rb_version[4]

        if rb_version[5]:
            git_branch += '%d' % rb_version[5]
    else:
        git_branch += '.x'
else:
    git_branch = 'master'

# Check whether reviewboard.org intersphinx lookups should use the local
# server.
if os.getenv('DOCS_USE_LOCAL_RBWEBSITE') == '1':
    rbwebsite_url = 'http://localhost:8081'
else:
    rbwebsite_url = 'https://www.reviewboard.org'
示例#33
0
        dest='tag_major',
        help='disable tagging the image with the "X.Y" major version tag')
    argparser.add_argument(
        '--upload',
        action='store_true',
        help='upload the image after build')

    options = argparser.parse_args()

    package_version = get_package_version()
    major_version = '%s.%s' % VERSION[:2]
    image_version = package_version

    # If this is a development release, check if a built package has been
    # placed in the packages/ directory.
    if not is_release():
        package_version = '%s.dev0' % package_version
        package_path = os.path.join(docker_dir, 'packages',
                                    'ReviewBoard-%s-py2.py3-none-any.whl'
                                    % package_version)

        if not os.path.exists(package_path):
            sys.stderr.write(
                'To build a Docker image for an in-development '
                'version of Review Board, you will\n'
                'need to build a development and place it at:\n'
                '\n'
                '%s\n'
                % package_path)
            sys.exit(1)
示例#34
0
        # By the time finalize_options is called, install.install_lib is
        # set to the fixed directory, so we set the installdir to install_lib.
        # The # install_data class uses ('install_data', 'install_dir') instead.
        self.set_undefined_options("install", ("install_lib", "install_dir"))
        install_data.finalize_options(self)


if sys.platform == "darwin":
    cmdclasses = {"install_data": osx_install_data}
else:
    cmdclasses = {"install_data": install_data}


PACKAGE_NAME = "ReviewBoard"

if is_release():
    download_url = "http://downloads.reviewboard.org/releases/%s/%s.%s/" % (PACKAGE_NAME, VERSION[0], VERSION[1])
else:
    download_url = "http://downloads.reviewboard.org/nightlies/"


# Build the reviewboard package.
setup(
    name=PACKAGE_NAME,
    version=get_package_version(),
    license="MIT",
    description="Review Board, a web-based code review tool",
    url="http://www.reviewboard.org/",
    download_url=download_url,
    author="The Review Board Project",
    author_email="*****@*****.**",
示例#35
0
latex_show_pagerefs = True


# Determine the branch or tag used for code references.
rb_version = reviewboard.VERSION

if rb_version[3] == 'final' or rb_version[5] > 0:
    git_branch = 'release-%s.%s' % (rb_version[0], rb_version[1])

    if rb_version[2]:
        git_branch += '.%s' % rb_version[2]

        if rb_version[3]:
            git_branch += '.%s' % rb_version[3]

    if reviewboard.is_release() and version[3] != 'final':
        git_branch += rb_version[4]

        if rb_version[5]:
            git_branch += '%d' % rb_version[5]
    else:
        git_branch += '.x'
else:
    git_branch = 'master'


# Check whether reviewboard.org intersphinx lookups should use the local
# server.
if os.getenv('DOCS_USE_LOCAL_RBWEBSITE') == '1':
    rbwebsite_url = 'http://localhost:8081'
else: