hooks icon indicating copy to clipboard operation
hooks copied to clipboard

check for patches not referenced in conandata.yml

Open ericLemanissier opened this issue 1 year ago • 8 comments

reimplement part of https://github.com/ericLemanissier/conan-center-lint-patches/blob/main/lint_patches.py results are tracked in https://github.com/conan-io/conan-center-index/issues/21146

ericLemanissier avatar Apr 24 '24 07:04 ericLemanissier

last PRs fixing offenders:

  • https://github.com/conan-io/conan-center-index/pull/23739
  • https://github.com/conan-io/conan-center-index/pull/23054
  • https://github.com/conan-io/conan-center-index/pull/23155
  • https://github.com/conan-io/conan-center-index/pull/23182
  • https://github.com/conan-io/conan-center-index/pull/23353

ericLemanissier avatar Apr 24 '24 07:04 ericLemanissier

I tried all recipes in CCI with

#!/bin/bash
conan config set hooks.conan-center
export CONAN_HOOK_ERROR_LEVEL=40
last_package_folder=""
find . -mindepth 1 -maxdepth 1 -type d  -printf '%f\n' | while read -r package; do
    yq '.versions | to_entries[] | "\(.key) \(.value.folder)"' "$package/config.yml" -r | while IFS= read -r line; do
        IFS=' ' read -r version folder <<< "$line"
        if [ "$package/$folder" != "$last_package_folder" ]; then
            last_package_folder="$package/$folder"
            conan export $package/$folder "$package/$version@"
        fi
    done
done

     

Results:

  • freetype/all/ fixed by https://github.com/conan-io/conan-center-index/pull/23748
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/2.13.0-0001-fix-fallthrough.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES)
  • opencolorio/all/ fixed by https://github.com/conan-io/conan-center-index/pull/23750
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/1.1.1.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/fix-cmake-source-dir-and-targets.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/pstring.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/strlen.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/002-fix-event-destruct.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
  • zlib/all/ fixed by https://github.com/conan-io/conan-center-index/pull/23751
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/1.3/0002-gzguts-xcode12-compile-fix.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/0021-typedef-clockid.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
  • libvault/all/ fixed by https://github.com/conan-io/conan-center-index/pull/23739
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/0.48.0-0001-fix-cmake.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/0.51.0-0001-fix-cmake.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/0.52.0-0001-fix-cmake.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/0001-ign-tools-1.0.0-cmake-fixes.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/0002-ign-tools-1.2.0-cmake-fixes.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES)
  • fmt/all/ fixed by https://github.com/conan-io/conan-center-index/pull/23747
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/fix-install-6.0.0.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/fix-mingw-msvc2015-export-assert-fail-6.1.0.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/0003-fix-diligent-core-include-paths.diff (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/support-SPV_KHR_fragment_shading_rate.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 
  • luajit/all/ fixed by https://github.com/conan-io/conan-center-index/pull/23749
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch files is not referenced in conandata.yml: patches/20230104-0001-remove-mac-deploy.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES)

     

Hooks errors not related to this change

(it looks like https://github.com/conan-io/conan-center-index/issues/20516#issue-1937384862 does not work any more):

[HOOK - conan-center.py] pre_export(): ERROR: [REQUIREMENT OVERRIDE PARAMETER (KB-H075)] self.requires('package/version', override=True) is forbidden, do not force override parameter. (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H075-REQUIREMENT-OVERRIDE-PARAMETER) 
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] The versions {'878.200.35-opt'} are in 'patches' but not in 'sources'. (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES) 

ericLemanissier avatar Apr 24 '24 08:04 ericLemanissier

Nice! I see it as a good improvement, but I would prefer fixing all recipes first, because it's classified as error. Otherwise, any non-related PR would be broken.

uilianries avatar Apr 24 '24 14:04 uilianries

sure, I'll do all the PRs

ericLemanissier avatar Apr 24 '24 14:04 ericLemanissier

@uilianries done, I integrated the information in my message above

ericLemanissier avatar Apr 24 '24 14:04 ericLemanissier

As you wanted, all the patches are now grouped on the same line instead of one line per patch. Here are two examples of logs generated:

[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch file(s) are/is not referenced in conandata.yml: patches/2.13.0-0001-fix-fallthrough.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES)
[HOOK - conan-center.py] pre_export(): ERROR: [NO DANGLING PATCHES (KB-H078)] Following patch file(s) are/is not referenced in conandata.yml: patches/1.1.1.patch, patches/fix-cmake-source-dir-and-targets.patch, patches/pstring.patch, patches/strlen.patch (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H078-NO-DANGLING-PATCHES)

I don't think it's more readable, but as you want

ericLemanissier avatar Apr 25 '24 09:04 ericLemanissier

@uilianries all the fixes have been merged. The only offenders remaining are either deprecated, or not compatible with conan 2.

ericLemanissier avatar Apr 26 '24 14:04 ericLemanissier

@jcar87 What's the opinion of the team regarding this change ?

ericLemanissier avatar May 03 '24 09:05 ericLemanissier

@jcar87 @uilianries can we please have an update on the status of this PR ?

ericLemanissier avatar May 16 '24 08:05 ericLemanissier

https://github.com/conan-io/conan-center-index/pull/24165

ericLemanissier avatar May 30 '24 11:05 ericLemanissier