def get_setup_py_name(self): if os.path.exists('setup.py'): # First run egg_info, as that may get rid of some warnings # that otherwise end up in the extracted name, like # UserWarnings. utils.system(utils.setup_py('egg_info')) return utils.system(utils.setup_py('--name')).strip()
def get_setup_py_version(self): if os.path.exists('setup.py'): # First run egg_info, as that may get rid of some warnings # that otherwise end up in the extracted version, like # UserWarnings. utils.system(utils.setup_py('egg_info')) version = utils.system(utils.setup_py('--version')) if version.startswith('Traceback'): # Likely cause is for example forgetting to 'import # os' when using 'os' in setup.py. logger.critical('The setup.py of this package has an error:') print(version) logger.critical('No version found.') sys.exit(1) return utils.strip_version(version)
def _upload_distributions(self, package, sdist_options, pypiconfig): # See if creating an sdist actually works. Also, this makes # the sdist available for plugins. logger.info("Making an egg of a fresh tag checkout.") print(utils.system(utils.setup_py('sdist ' + sdist_options))) if not pypiconfig.is_pypi_configured(): logger.warn("You must have a properly configured %s file in " "your home dir to upload an egg.", pypi.DIST_CONFIG_FILE) return # First ask if we want to upload to pypi, which should always # work, also without collective.dist. use_pypi = package_in_pypi(package) if use_pypi: logger.info("This package is registered on PyPI.") else: logger.warn("This package is NOT registered on PyPI.") if pypiconfig.is_old_pypi_config(): pypi_command = 'register sdist %s upload' % sdist_options shell_command = utils.setup_py(pypi_command) if use_pypi: default = True exact = False else: # We are not yet on pypi. To avoid an 'Oops..., # sorry!' when registering and uploading an internal # package we default to False here. default = False exact = True if utils.ask("Register and upload to PyPI", default=default, exact=exact): logger.info("Running: %s", shell_command) result = utils.system(shell_command) utils.show_first_and_last_lines(result) # If collective.dist is installed (or we are using # python2.6 or higher), the user may have defined # other servers to upload to. for server in pypiconfig.distutils_servers(): if pypi.new_distutils_available(): commands = ('register', '-r', server, 'sdist', sdist_options, 'upload', '-r', server) else: ## This would be logical, given the lines above: #commands = ('mregister', '-r', server, 'sdist', # sdist_options, 'mupload', '-r', server) ## But according to the collective.dist documentation ## it should be this (with just one '-r'): commands = ('mregister', 'sdist', sdist_options, 'mupload', '-r', server) shell_command = utils.setup_py(' '.join(commands)) default = True exact = False if server == 'pypi' and not use_pypi: # We are not yet on pypi. To avoid an 'Oops..., # sorry!' when registering and uploading an internal # package we default to False here. default = False exact = True if utils.ask("Register and upload to %s" % server, default=default, exact=exact): logger.info("Running: %s", shell_command) result = utils.system(shell_command) utils.show_first_and_last_lines(result)