diff --git a/lib/galaxy/web/buildapp.py b/lib/galaxy/web/buildapp.py index e6a04c8bfba..7f95507bdae 100644 --- a/lib/galaxy/web/buildapp.py +++ b/lib/galaxy/web/buildapp.py @@ -1,5 +1,10 @@ """For backward compatibility only, pulls app_factor from galaxy.webapps.main""" -from galaxy.webapps.galaxy.buildapp import app_factory +try: + from galaxy.webapps.galaxy.buildapp import app_factory +except ImportError: + # when installed as a library, galaxy-web-apps may not be available - this + # is fine - we shouldn't be using this entry point anyway. + app_factory = None __all__ = ('app_factory', ) diff --git a/packages/app/requirements.txt b/packages/app/requirements.txt index 9c87be95eff..da8a0e43f0c 100644 --- a/packages/app/requirements.txt +++ b/packages/app/requirements.txt @@ -1,3 +1,4 @@ galaxy-auth galaxy-job-execution - +galaxy-web-framework +galaxy-web-stack diff --git a/packages/test.sh b/packages/test.sh index 5334ace03d7..53ab2a49d0c 100755 --- a/packages/test.sh +++ b/packages/test.sh @@ -24,11 +24,13 @@ PACKAGE_DIRS=( job_execution auth authnz + web_stack + web_framework app ) # containers has no tests, tool_util not yet working 100%, # data has many problems quota, tool shed install database, etc.. -RUN_TESTS=(1 1 1 0 1 0 1 0 1 0) +RUN_TESTS=(1 1 1 0 1 0 1 0 1 0 0 0) for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do package_dir=${PACKAGE_DIRS[$i]} diff --git a/packages/web_framework/HISTORY.rst b/packages/web_framework/HISTORY.rst new file mode 100644 index 00000000000..ec2f0e746e9 --- /dev/null +++ b/packages/web_framework/HISTORY.rst @@ -0,0 +1,12 @@ +.. :changelog: + +History +------- + +.. to_doc + +--------------------- +19.9.0.dev0 +--------------------- + +* Initial import from dev branch of Galaxy during 19.09 development cycle. diff --git a/packages/web_framework/LICENSE b/packages/web_framework/LICENSE new file mode 120000 index 00000000000..1ef648f64b3 --- /dev/null +++ b/packages/web_framework/LICENSE @@ -0,0 +1 @@ +../../LICENSE.txt \ No newline at end of file diff --git a/packages/web_framework/MANIFEST.in b/packages/web_framework/MANIFEST.in new file mode 100644 index 00000000000..c74cefe0942 --- /dev/null +++ b/packages/web_framework/MANIFEST.in @@ -0,0 +1 @@ +include *.rst LICENSE diff --git a/packages/web_framework/Makefile b/packages/web_framework/Makefile new file mode 120000 index 00000000000..37af8bae5ba --- /dev/null +++ b/packages/web_framework/Makefile @@ -0,0 +1 @@ +../package.Makefile \ No newline at end of file diff --git a/packages/web_framework/README.rst b/packages/web_framework/README.rst new file mode 100644 index 00000000000..2f71d34d375 --- /dev/null +++ b/packages/web_framework/README.rst @@ -0,0 +1,14 @@ + +.. image:: https://badge.fury.io/py/galaxy-web-framework.svg + :target: https://pypi.org/project/galaxy-web-framework/ + + +Overview +-------- + +The Galaxy_ web framework. + +* Free software: Academic Free License version 3.0 +* Code: https://github.com/galaxyproject/galaxy + +.. _Galaxy: http://galaxyproject.org/ diff --git a/packages/web_framework/dev-requirements.txt b/packages/web_framework/dev-requirements.txt new file mode 120000 index 00000000000..467b90d7a23 --- /dev/null +++ b/packages/web_framework/dev-requirements.txt @@ -0,0 +1 @@ +../package-dev-requirements.txt \ No newline at end of file diff --git a/packages/web_framework/galaxy/__init__.py b/packages/web_framework/galaxy/__init__.py new file mode 100644 index 00000000000..69e3be50dac --- /dev/null +++ b/packages/web_framework/galaxy/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/packages/web_framework/galaxy/project_galaxy_web_framework.py b/packages/web_framework/galaxy/project_galaxy_web_framework.py new file mode 100644 index 00000000000..e6f46b22814 --- /dev/null +++ b/packages/web_framework/galaxy/project_galaxy_web_framework.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- + +__version__ = '19.9.0.dev0' + +PROJECT_NAME = "galaxy-web-framework" +PROJECT_OWNER = PROJECT_USERAME = "galaxyproject" +PROJECT_URL = "https://github.com/galaxyproject/galaxy" +PROJECT_AUTHOR = 'Galaxy Project and Community' +PROJECT_DESCRIPTION = 'Galaxy Web Framework' +PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org' +RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % ( + PROJECT_USERAME, PROJECT_NAME +) diff --git a/packages/web_framework/galaxy/web b/packages/web_framework/galaxy/web new file mode 120000 index 00000000000..1f0b59dddb4 --- /dev/null +++ b/packages/web_framework/galaxy/web @@ -0,0 +1 @@ +../../../lib/galaxy/web \ No newline at end of file diff --git a/packages/web_framework/requirements.txt b/packages/web_framework/requirements.txt new file mode 100644 index 00000000000..7dcf8f4def7 --- /dev/null +++ b/packages/web_framework/requirements.txt @@ -0,0 +1 @@ +galaxy-data diff --git a/packages/web_framework/scripts b/packages/web_framework/scripts new file mode 120000 index 00000000000..9aec9dc5a06 --- /dev/null +++ b/packages/web_framework/scripts @@ -0,0 +1 @@ +../build_scripts \ No newline at end of file diff --git a/packages/web_framework/setup.cfg b/packages/web_framework/setup.cfg new file mode 120000 index 00000000000..eb7cf09393f --- /dev/null +++ b/packages/web_framework/setup.cfg @@ -0,0 +1 @@ +../../setup.cfg \ No newline at end of file diff --git a/packages/web_framework/setup.py b/packages/web_framework/setup.py new file mode 100644 index 00000000000..8b894882f6b --- /dev/null +++ b/packages/web_framework/setup.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ast +import os +import re +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +SOURCE_DIR = "galaxy" + +_version_re = re.compile(r'__version__\s+=\s+(.*)') + +project_short_name = os.path.basename(os.path.dirname(os.path.realpath(__file__))) +with open('%s/project_galaxy_%s.py' % (SOURCE_DIR, project_short_name), 'rb') as f: + init_contents = f.read().decode('utf-8') + + def get_var(var_name): + pattern = re.compile(r'%s\s+=\s+(.*)' % var_name) + match = pattern.search(init_contents).group(1) + return str(ast.literal_eval(match)) + + version = get_var("__version__") + PROJECT_NAME = get_var("PROJECT_NAME") + PROJECT_URL = get_var("PROJECT_URL") + PROJECT_AUTHOR = get_var("PROJECT_AUTHOR") + PROJECT_EMAIL = get_var("PROJECT_EMAIL") + PROJECT_DESCRIPTION = get_var("PROJECT_DESCRIPTION") + +TEST_DIR = 'tests' +PACKAGES = [ + 'galaxy', + 'galaxy.web', + 'galaxy.web.framework', + 'galaxy.web.framework.helpers', + 'galaxy.web.framework.middleware', + 'galaxy.web.proxy', +] +ENTRY_POINTS = ''' + [console_scripts] +''' +PACKAGE_DATA = { + # Be sure to update MANIFEST.in for source dist. + 'galaxy': [ + ], +} +PACKAGE_DIR = { + SOURCE_DIR: SOURCE_DIR, +} + +readme = open('README.rst').read() +history = open('HISTORY.rst').read().replace('.. :changelog:', '') + +if os.path.exists("requirements.txt"): + requirements = open("requirements.txt").read().split("\n") +else: + # In tox, it will cover them anyway. + requirements = [] + + +test_requirements = [ + # TODO: put package test requirements here +] + + +setup( + name=PROJECT_NAME, + version=version, + description=PROJECT_DESCRIPTION, + long_description=readme + '\n\n' + history, + long_description_content_type='text/x-rst', + author=PROJECT_AUTHOR, + author_email=PROJECT_EMAIL, + url=PROJECT_URL, + packages=PACKAGES, + entry_points=ENTRY_POINTS, + package_data=PACKAGE_DATA, + package_dir=PACKAGE_DIR, + include_package_data=True, + install_requires=requirements, + license="AFL", + zip_safe=False, + keywords='galaxy', + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Environment :: Console', + 'License :: OSI Approved :: Academic Free License (AFL)', + 'Operating System :: POSIX', + 'Topic :: Software Development', + 'Topic :: Software Development :: Code Generators', + 'Topic :: Software Development :: Testing', + 'Natural Language :: English', + "Programming Language :: Python :: 2", + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + ], + test_suite=TEST_DIR, + tests_require=test_requirements +) diff --git a/packages/web_stack/HISTORY.rst b/packages/web_stack/HISTORY.rst new file mode 100644 index 00000000000..ec2f0e746e9 --- /dev/null +++ b/packages/web_stack/HISTORY.rst @@ -0,0 +1,12 @@ +.. :changelog: + +History +------- + +.. to_doc + +--------------------- +19.9.0.dev0 +--------------------- + +* Initial import from dev branch of Galaxy during 19.09 development cycle. diff --git a/packages/web_stack/LICENSE b/packages/web_stack/LICENSE new file mode 120000 index 00000000000..1ef648f64b3 --- /dev/null +++ b/packages/web_stack/LICENSE @@ -0,0 +1 @@ +../../LICENSE.txt \ No newline at end of file diff --git a/packages/web_stack/MANIFEST.in b/packages/web_stack/MANIFEST.in new file mode 100644 index 00000000000..c74cefe0942 --- /dev/null +++ b/packages/web_stack/MANIFEST.in @@ -0,0 +1 @@ +include *.rst LICENSE diff --git a/packages/web_stack/Makefile b/packages/web_stack/Makefile new file mode 120000 index 00000000000..37af8bae5ba --- /dev/null +++ b/packages/web_stack/Makefile @@ -0,0 +1 @@ +../package.Makefile \ No newline at end of file diff --git a/packages/web_stack/README.rst b/packages/web_stack/README.rst new file mode 100644 index 00000000000..a0a63b19d2d --- /dev/null +++ b/packages/web_stack/README.rst @@ -0,0 +1,14 @@ + +.. image:: https://badge.fury.io/py/galaxy-web-stack.svg + :target: https://pypi.python.org/pypi/galaxy-web-stack/ + + +Overview +-------- + +The Galaxy_ web strack abstraction. + +* Free software: Academic Free License version 3.0 +* Code: https://github.com/galaxyproject/galaxy + +.. _Galaxy: http://galaxyproject.org/ diff --git a/packages/web_stack/dev-requirements.txt b/packages/web_stack/dev-requirements.txt new file mode 120000 index 00000000000..467b90d7a23 --- /dev/null +++ b/packages/web_stack/dev-requirements.txt @@ -0,0 +1 @@ +../package-dev-requirements.txt \ No newline at end of file diff --git a/packages/web_stack/galaxy/__init__.py b/packages/web_stack/galaxy/__init__.py new file mode 100644 index 00000000000..69e3be50dac --- /dev/null +++ b/packages/web_stack/galaxy/__init__.py @@ -0,0 +1 @@ +__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/packages/web_stack/galaxy/project_galaxy_web_stack.py b/packages/web_stack/galaxy/project_galaxy_web_stack.py new file mode 100644 index 00000000000..987fdbbd1fd --- /dev/null +++ b/packages/web_stack/galaxy/project_galaxy_web_stack.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- + +__version__ = '19.9.0.dev0' + +PROJECT_NAME = "galaxy-web-stack" +PROJECT_OWNER = PROJECT_USERAME = "galaxyproject" +PROJECT_URL = "https://github.com/galaxyproject/galaxy" +PROJECT_AUTHOR = 'Galaxy Project and Community' +PROJECT_DESCRIPTION = 'Galaxy Web Strack Abstraction' +PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org' +RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % ( + PROJECT_USERAME, PROJECT_NAME +) diff --git a/packages/web_stack/galaxy/web_stack b/packages/web_stack/galaxy/web_stack new file mode 120000 index 00000000000..e94ddd99c8a --- /dev/null +++ b/packages/web_stack/galaxy/web_stack @@ -0,0 +1 @@ +../../../lib/galaxy/web_stack \ No newline at end of file diff --git a/packages/web_stack/requirements.txt b/packages/web_stack/requirements.txt new file mode 100644 index 00000000000..326493b152d --- /dev/null +++ b/packages/web_stack/requirements.txt @@ -0,0 +1,2 @@ +sqlalchemy +galaxy-util diff --git a/packages/web_stack/scripts b/packages/web_stack/scripts new file mode 120000 index 00000000000..9aec9dc5a06 --- /dev/null +++ b/packages/web_stack/scripts @@ -0,0 +1 @@ +../build_scripts \ No newline at end of file diff --git a/packages/web_stack/setup.cfg b/packages/web_stack/setup.cfg new file mode 120000 index 00000000000..eb7cf09393f --- /dev/null +++ b/packages/web_stack/setup.cfg @@ -0,0 +1 @@ +../../setup.cfg \ No newline at end of file diff --git a/packages/web_stack/setup.py b/packages/web_stack/setup.py new file mode 100644 index 00000000000..e75068a7065 --- /dev/null +++ b/packages/web_stack/setup.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ast +import os +import re +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +SOURCE_DIR = "galaxy" + +_version_re = re.compile(r'__version__\s+=\s+(.*)') + +project_short_name = os.path.basename(os.path.dirname(os.path.realpath(__file__))) +with open('%s/project_galaxy_%s.py' % (SOURCE_DIR, project_short_name), 'rb') as f: + init_contents = f.read().decode('utf-8') + + def get_var(var_name): + pattern = re.compile(r'%s\s+=\s+(.*)' % var_name) + match = pattern.search(init_contents).group(1) + return str(ast.literal_eval(match)) + + version = get_var("__version__") + PROJECT_NAME = get_var("PROJECT_NAME") + PROJECT_URL = get_var("PROJECT_URL") + PROJECT_AUTHOR = get_var("PROJECT_AUTHOR") + PROJECT_EMAIL = get_var("PROJECT_EMAIL") + PROJECT_DESCRIPTION = get_var("PROJECT_DESCRIPTION") + +TEST_DIR = 'tests' +PACKAGES = [ + 'galaxy', + 'galaxy.web_stack', +] +ENTRY_POINTS = ''' + [console_scripts] +''' +PACKAGE_DATA = { + # Be sure to update MANIFEST.in for source dist. + 'galaxy': [ + ], +} +PACKAGE_DIR = { + SOURCE_DIR: SOURCE_DIR, +} + +readme = open('README.rst').read() +history = open('HISTORY.rst').read().replace('.. :changelog:', '') + +if os.path.exists("requirements.txt"): + requirements = open("requirements.txt").read().split("\n") +else: + # In tox, it will cover them anyway. + requirements = [] + + +test_requirements = [ + # TODO: put package test requirements here +] + + +setup( + name=PROJECT_NAME, + version=version, + description=PROJECT_DESCRIPTION, + long_description=readme + '\n\n' + history, + long_description_content_type='text/x-rst', + author=PROJECT_AUTHOR, + author_email=PROJECT_EMAIL, + url=PROJECT_URL, + packages=PACKAGES, + entry_points=ENTRY_POINTS, + package_data=PACKAGE_DATA, + package_dir=PACKAGE_DIR, + include_package_data=True, + install_requires=requirements, + license="AFL", + zip_safe=False, + keywords='galaxy', + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Environment :: Console', + 'License :: OSI Approved :: Academic Free License (AFL)', + 'Operating System :: POSIX', + 'Topic :: Software Development', + 'Topic :: Software Development :: Code Generators', + 'Topic :: Software Development :: Testing', + 'Natural Language :: English', + "Programming Language :: Python :: 2", + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + ], + test_suite=TEST_DIR, + tests_require=test_requirements +)