Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kapidox for openSUSE:Factory checked in at 2021-08-16 10:11:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kapidox (Old) and /work/SRC/openSUSE:Factory/.kapidox.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kapidox" Mon Aug 16 10:11:43 2021 rev:92 rq:912109 version:5.85.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kapidox/kapidox.changes 2021-07-16 00:02:18.480723198 +0200 +++ /work/SRC/openSUSE:Factory/.kapidox.new.1899/kapidox.changes 2021-08-16 10:17:53.386632377 +0200 @@ -1,0 +2,9 @@ +Fri Aug 6 12:11:23 UTC 2021 - Christophe Giboudeaux <[email protected]> + +- Update to 5.85.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.85.0 +- Too many changes to list here. + +------------------------------------------------------------------- Old: ---- kapidox-5.84.0.tar.xz kapidox-5.84.0.tar.xz.sig New: ---- kapidox-5.85.0.tar.xz kapidox-5.85.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kapidox.spec ++++++ --- /var/tmp/diff_new_pack.DHGMF8/_old 2021-08-16 10:17:53.822631677 +0200 +++ /var/tmp/diff_new_pack.DHGMF8/_new 2021-08-16 10:17:53.826631671 +0200 @@ -18,13 +18,13 @@ # Only needed for the package signature condition %bcond_without lang -%define _tar_path 5.84 +%define _tar_path 5.85 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} Name: kapidox -Version: 5.84.0 +Version: 5.85.0 Release: 0 Summary: Scripts and data for building API documentation License: BSD-2-Clause ++++++ kapidox-5.84.0.tar.xz -> kapidox-5.85.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/CMakeLists.txt new/kapidox-5.85.0/CMakeLists.txt --- old/kapidox-5.84.0/CMakeLists.txt 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/CMakeLists.txt 2021-07-22 14:09:44.000000000 +0200 @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.16) project(KApiDox NONE) -find_package(PythonInterp REQUIRED) +find_package(Python3 COMPONENTS Interpreter) if(WIN32) # Needs native path and extra escaping of spaces @@ -11,7 +11,7 @@ endif() add_custom_target(build ALL - COMMAND ${PYTHON_EXECUTABLE} setup.py build --build-base ${BINARY_DIR} + COMMAND ${Python3_EXECUTABLE} setup.py build --build-base ${BINARY_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) @@ -30,7 +30,7 @@ endif() file(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX} INSTALL_PREFIX) execute_process( - COMMAND ${PYTHON_EXECUTABLE} setup.py install --prefix \"\${INSTALL_PREFIX}\" \${_root_arg} + COMMAND ${Python3_EXECUTABLE} setup.py install --prefix \"\${INSTALL_PREFIX}\" \${_root_arg} WORKING_DIRECTORY \"${CMAKE_SOURCE_DIR}\" )" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/README.md new/kapidox-5.85.0/README.md --- old/kapidox-5.84.0/README.md 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/README.md 2021-07-22 14:09:44.000000000 +0200 @@ -25,8 +25,8 @@ Of course, you need Doxygen! ### Optional -Doxyqml and doxypypy might be needed to let doxygen document respectevely qml -and python sources. +Doxyqml and doxypypy might be needed to let doxygen document qml +and python sources respectively. To generate the dependency diagrams, you need the Graphviz Python bindings. They are currently not available from pip, but most distributions provide them. @@ -66,8 +66,8 @@ ### metainfo.yaml A `metainfo.yaml` file is needed for the library to be generated. It should -contain some metainformations about the library itself, its maintainers, where -the sources are etc.. +contain some meta information about the library itself, its maintainers, where +the sources are, etc. A very simple example can be: @@ -101,11 +101,11 @@ ~/src/frameworks/kapidox/src/kapidox_generate ~/src/frameworks/kcoreaddons -and it would create a documentation in the current directory. +and it would create a documentation in the current directory, which needs to be empty before executing the command. The folders are recursively walked through, so you can also run it on `~/src/frameworks` or `~/src`. For a lot of libraries, the generation can last -15-30 minutes and be several hundreds of Mb, so be prepared! +15-30 minutes and be several hundreds of MB, so be prepared! Pass the --help argument to see options that control the behaviour of the script. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/docs/metainfo_syntax.md new/kapidox-5.85.0/docs/metainfo_syntax.md --- old/kapidox-5.84.0/docs/metainfo_syntax.md 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/docs/metainfo_syntax.md 2021-07-22 14:09:44.000000000 +0200 @@ -6,7 +6,7 @@ more are defined, the behavior is unknown. **Be sure to to set `public_lib` to true, or the library will be ignored.** Most of -the other keys are optionals. See below for a simplier example. +the other keys are optionals. See below for a simpler example. ## All possible keys. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/requirements.txt new/kapidox-5.85.0/requirements.txt --- old/kapidox-5.84.0/requirements.txt 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/requirements.txt 2021-07-22 14:09:44.000000000 +0200 @@ -1,2 +1,5 @@ doxypypy doxyqml +requests +jinja2 +pyyaml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/setup.py new/kapidox-5.85.0/setup.py --- old/kapidox-5.84.0/setup.py 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/setup.py 2021-07-22 14:09:44.000000000 +0200 @@ -14,7 +14,7 @@ setup( name='kapidox', - version='5.84.0', + version='5.85.0', description='KDE API documentation generation tools', maintainer = 'Olivier Churlaud', maintainer_email = '[email protected]', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/src/kapidox/argparserutils.py new/kapidox-5.85.0/src/kapidox/argparserutils.py --- old/kapidox-5.84.0/src/kapidox/argparserutils.py 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/src/kapidox/argparserutils.py 2021-07-22 14:09:44.000000000 +0200 @@ -17,9 +17,9 @@ import textwrap parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, - description=textwrap.dedent('''Generate API documentations of complex projects. + description=textwrap.dedent('''Generate API documentation of complex projects. ->> This function must be run from an empty directory (where the documentation will be build).''') +>> This function must be run from an empty directory (where the documentation will be built).''') ) group = add_sources_group(parser) group.add_argument('sourcesdir', type=normalized_path, @@ -48,8 +48,10 @@ def add_sources_group(parser): - return parser.add_argument_group('sources') - + group = parser.add_argument_group('sources') + group.add_argument('--accountsfile', type=normalized_path, + help='File with accounts information of SVN contributors.') + return group def add_output_group(parser): group = parser.add_argument_group('output options') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/src/kapidox/data/Doxyfile.global new/kapidox-5.85.0/src/kapidox/data/Doxyfile.global --- old/kapidox-5.84.0/src/kapidox/data/Doxyfile.global 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/src/kapidox/data/Doxyfile.global 2021-07-22 14:09:44.000000000 +0200 @@ -12,7 +12,7 @@ # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO -# Do not require explicity @brief command for brief description +# Do not require explicitly @brief command for brief description JAVADOC_AUTOBRIEF = YES # A bunch of useful aliases diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/src/kapidox/generator.py new/kapidox-5.85.0/src/kapidox/generator.py --- old/kapidox-5.84.0/src/kapidox/generator.py 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/src/kapidox/generator.py 2021-07-22 14:09:44.000000000 +0200 @@ -686,7 +686,7 @@ if lib.part_of_group: corrected_tagfiles = [] for k in range(len(tagfiles)): - # tagfiles are tupples like: + # tagfiles are tuples like: # ('/usr/share/doc/qt/KF5Completion.tags', '/usr/share/doc/qt') # ('/where/the/tagfile/is/Name.tags', '/where/the/root/folder/is') if tagfiles[k][1].startswith("http://") or tagfiles[k][1].startswith("https://"): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/src/kapidox/preprocessing.py new/kapidox-5.85.0/src/kapidox/preprocessing.py --- old/kapidox-5.84.0/src/kapidox/preprocessing.py 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/src/kapidox/preprocessing.py 2021-07-22 14:09:44.000000000 +0200 @@ -102,7 +102,11 @@ .format(path)) return None - dirname = os.path.basename(path) + # Suppose we get a relative path passed in (e.g. on the command-line, + # path .. because we're building the dox in a subdirectory of a source + # checkout) then we don't want dirname to be "..", but the name that + # that resolves to. + dirname = os.path.basename(os.path.abspath(path)) if 'fancyname' in metainfo: fancyname = metainfo['fancyname'] else: @@ -171,11 +175,20 @@ """ metalist = [] - for path, dirs, _ in os.walk(rootdir): + for path, dirs, _ in os.walk(rootdir, topdown=True): # We don't want to do the recursion in the dotdirs dirs[:] = [d for d in dirs if not d[0] == '.'] metainfo = create_metainfo(path) if metainfo is not None: + # There was a metainfo.yaml, which means it was + # the top of a checked-out repository. Stop processing, + # because we do not support having repo B checked out (even + # as a submodule) inside repo A. + # + # There are exceptions: messagelib (KDE PIM) contains + # multiple subdirectories with their own metainfo.yaml, + # which are listed as public sources. + dirs[:] = [d for d in dirs if d in metainfo.get('public_source_dirs', [])] if metainfo['public_lib'] or 'group_info' in metainfo: metalist.append(metainfo) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/src/kapidox/utils.py new/kapidox-5.85.0/src/kapidox/utils.py --- old/kapidox-5.84.0/src/kapidox/utils.py 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/src/kapidox/utils.py 2021-07-22 14:09:44.000000000 +0200 @@ -62,6 +62,11 @@ # Catch all exceptions here: whatever fails in this function should not # cause the code to fail logging.warning("Failed to get repository url for '{}' from projects.kde.org: {}".format(id, exc)) + # This means there is no canonical repo identifier for this repo: + # generally that means that the repo was checked out into a non- + # canonical pathname (e.g. kitemviews checkout out into a directory + # called KItemViews, or kitemviews.git .. anything other than + # kitemviews is not recognized). return None def set_maintainers(maintainer_keys, all_maintainers): @@ -109,12 +114,13 @@ return f[:-4] logging.error("No CMakeLists.txt in {}".format(fw_dir)) return None - project_re = re.compile(r"project\s*\(\s*([\w\-\_]+)", re.I) + project_re = re.compile(r"^\s*project\s*\(\s*([\w\-\_]+)", re.I | re.M) with open(cmakelists_path) as f: - for line in f.readlines(): - match = project_re.search(line) - if match: - return match.group(1) + cmakelists_content = f.read() + match = project_re.search(cmakelists_content) + if match: + return match.group(1) + logging.error("Failed to find framework name: Could not find a " "'project()' command in {}.".format(cmakelists_path)) return None @@ -157,7 +163,7 @@ Args: remote: (string) the remote url. - local: (string) the local path where to dowload. + local: (string) the local path where to download. overwrite: (bool) whether to overwrite `local` or not. (optional, default = False) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kapidox-5.84.0/src/kapidox_generate new/kapidox-5.85.0/src/kapidox_generate --- old/kapidox-5.84.0/src/kapidox_generate 2021-06-16 00:06:47.000000000 +0200 +++ new/kapidox-5.85.0/src/kapidox_generate 2021-07-22 14:09:44.000000000 +0200 @@ -15,8 +15,6 @@ import time import datetime -from urllib.request import urlretrieve - from kapidox import generator, utils, argparserutils, preprocessing, hlfunctions try: @@ -26,56 +24,46 @@ DEPDIAGRAM_AVAILABLE = False -def download_kde_identities(): - """Download the "accounts" file on the KDE SVN repository in order to get - the KDE identities with their name and e-mail address - """ - cache_file = os.path.join(utils.cache_dir(), 'kde-accounts') - needs_download = True - if os.path.exists(cache_file): - logging.debug("Found cached identities file at %s", cache_file) - # not quite a day, so that generation on api.kde.org gets a fresh - # copy every time the daily cron job runs it - yesterday = time.time() - (23.5 * 3600) - if os.path.getmtime(cache_file) > yesterday: - needs_download = False - else: - logging.debug("Cached file too old; updating") - if needs_download: - logging.info("Downloading KDE identities") - try: - if not utils.svn_export( - 'svn://anonsvn.kde.org/home/kde/trunk/kde-common/accounts', - cache_file, - overwrite=True): - logging.debug("Falling back to using websvn to fetch " - "identities file") - urlretrieve('https://websvn.kde.org/*checkout*/trunk/kde-common/accounts', - cache_file) - except Exception as e: - if os.path.exists(cache_file): - logging.error('Failed to update KDE identities: %s', e) - else: - logging.error('Failed to fetch KDE identities: %s', e) - return None +def get_identities(): + """Extract account information from the file (if any) specified with + the `--accountsfile` command-line argument. + An account file is a whitespace-separated file with a first "column" + specifying the account name, the last "column" specifying an email + address, and all the columns in between are a name, e.g. + + adridg Adriaan de Groot [email protected] + This line has three "columns" for the name. + """ maintainers = {} - with codecs.open(cache_file, 'r', encoding='utf8') as f: - for line in f: - parts = line.strip().split() - if len(parts) >= 3: - maintainers[parts[0]] = { - 'name': ' '.join(parts[1:-1]), - 'email': parts[-1] - } + args = argparserutils.parse_args(DEPDIAGRAM_AVAILABLE) + if args.accountsfile and os.path.exists(args.accountsfile): + logging.debug("Found contributor identities file at %s", args.accountsfile) + with codecs.open(args.accountsfile, 'r', encoding='utf8') as f: + for line in f: + parts = line.strip().split() + if len(parts) >= 3: + maintainers[parts[0]] = { + 'name': ' '.join(parts[1:-1]), + 'email': parts[-1] + } + + else: + logging.debug("No contributor identities file specified. Without the " + "file, maintainer information will be incomplete. For " + "generating KDE API documentation you can download the " + "KDE accounts file from https://websvn.kde.org/*check" + "out*/trunk/kde-common/accounts and specify it with the " + "--accountsfile argument.") + return maintainers def main(): kde_copyright = '1996-' + str(datetime.date.today().year) + ' The KDE developers' - get_maintainers = download_kde_identities + get_maintainers = get_identities hlfunctions.do_it(maintainers_fct=get_maintainers, copyright=kde_copyright)
