Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-12134

Copying an artifact should (optionally) fingerprint all artifacts

    • Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Minor Minor
    • copyartifact-plugin
    • None

        [JENKINS-12134] Copying an artifact should (optionally) fingerprint all artifacts

        Work is being done on this because this is an open source project: no-one is paid to do engineering effort just to please the masses who use copyartifact-plugin. I filed the ticket, I contributed the patch (and then Kohsuke contributed a change to the copying algorithm to make it faster). It's a third party plugin with individual contributors "scratching their own itch" - which is what happened here.

        Motivations aside, you didn't respond to my previous request, Ringo:
        Would you mind testing the performance of 0.21? It has something that should hopefully be a great performance improvement from 0.20, but still fingerprints. Let us know if you're still seeing unacceptable performance levels. (Preferably with some numbers on before / after performance for 0.19 v 0.21)

        And yes, JENKINS-9741 should probably be resolved. I've encountered it myself, but the workaround was trivial enough for me to not care to delve into the root cause. Maybe it's time I did that now.

        Jørgen Tjernø added a comment - Work is being done on this because this is an open source project: no-one is paid to do engineering effort just to please the masses who use copyartifact-plugin. I filed the ticket, I contributed the patch (and then Kohsuke contributed a change to the copying algorithm to make it faster). It's a third party plugin with individual contributors "scratching their own itch" - which is what happened here. Motivations aside, you didn't respond to my previous request, Ringo: Would you mind testing the performance of 0.21? It has something that should hopefully be a great performance improvement from 0.20, but still fingerprints. Let us know if you're still seeing unacceptable performance levels. (Preferably with some numbers on before / after performance for 0.19 v 0.21) And yes, JENKINS-9741 should probably be resolved. I've encountered it myself, but the workaround was trivial enough for me to not care to delve into the root cause. Maybe it's time I did that now.

        Actually, 0.21 should have fixed JENKINS-9741 - please test it. The new code Kohsuke wrote to do better copies also preserves permissions.

        Jørgen Tjernø added a comment - Actually, 0.21 should have fixed JENKINS-9741 - please test it. The new code Kohsuke wrote to do better copies also preserves permissions.

        Ringo De Smet added a comment -

        I can confirm mandeepr's observations. I upgraded from Copy Artifact 1.18 to 1.21. Here are some time differences for projects that all copy the archived artifacts of a common upstream project (18k+ files):

        • project 1: 36 min to 1 hr 1 min
        • project 2: 40 min to 1 hr 13 min

        So again the request to not fingerprint if the source and/or target project has fingerprinting disabled. I am going to downgrade the plugin again as the above numbers are not acceptable for us.

        And Jørgen, you refer version numbers of the plugin starting with zero (0.19, 0.21). Shouldn't this be 1.19 and 1.21?

        Ringo De Smet added a comment - I can confirm mandeepr's observations . I upgraded from Copy Artifact 1.18 to 1.21. Here are some time differences for projects that all copy the archived artifacts of a common upstream project (18k+ files): project 1: 36 min to 1 hr 1 min project 2: 40 min to 1 hr 13 min So again the request to not fingerprint if the source and/or target project has fingerprinting disabled. I am going to downgrade the plugin again as the above numbers are not acceptable for us. And Jørgen, you refer version numbers of the plugin starting with zero (0.19, 0.21). Shouldn't this be 1.19 and 1.21?

        Andrew Herron added a comment - - edited

        Please let us turn this behaviour off. I'm having a really weird problem where I have two "see fingerprints" links in each build of project A, and when I click on either one all I see is the artifacts this plugin copied in. I want to fingerprint those along with other things I have set to fingerprint from project B, which are copied in via a separate dependency tool rather than this plugin.

        If I look at the target file in project B's build fingerprints I can see the link was made successfully, but in project A's build entry there is no way to find that link (and thus it does not show up as a change in dependency in the build changes list).

        Andrew Herron added a comment - - edited Please let us turn this behaviour off. I'm having a really weird problem where I have two "see fingerprints" links in each build of project A, and when I click on either one all I see is the artifacts this plugin copied in. I want to fingerprint those along with other things I have set to fingerprint from project B, which are copied in via a separate dependency tool rather than this plugin. If I look at the target file in project B's build fingerprints I can see the link was made successfully, but in project A's build entry there is no way to find that link (and thus it does not show up as a change in dependency in the build changes list).

        I've got two "see fingerprints" too. If I look into build.xml I can see two <hudson.tasks.Fingerprinter_-FingerprintAction> tag with different content.

        Alexander Likulin added a comment - I've got two "see fingerprints" too. If I look into build.xml I can see two <hudson.tasks.Fingerprinter_-FingerprintAction> tag with different content.

        I've created a pull request to add a checkbox to control the fingerprinting of artifacts: https://github.com/jenkinsci/copyartifact-plugin/pull/10

        Kelsey Prantis added a comment - I've created a pull request to add a checkbox to control the fingerprinting of artifacts: https://github.com/jenkinsci/copyartifact-plugin/pull/10

        Andrew Herron added a comment -

        Is there going to be any movement on that pull request? Or do I have to make a custom build of the plugin?

        Andrew Herron added a comment - Is there going to be any movement on that pull request? Or do I have to make a custom build of the plugin?

        msolnit added a comment -

        +1. This issue also appears to break aggregated test results, presumably because of the duplicate "<hudson.tasks.Fingerprinter_-FingerprintAction>" XML elements.

        msolnit added a comment - +1. This issue also appears to break aggregated test results, presumably because of the duplicate "<hudson.tasks.Fingerprinter_-FingerprintAction>" XML elements.

        Code changed in jenkins
        User: Kelsey Prantis
        Path:
        src/main/java/hudson/plugins/copyartifact/Copier.java
        src/main/java/hudson/plugins/copyartifact/CopyArtifact.java
        src/main/java/hudson/plugins/copyartifact/FilePathCopyMethod.java
        src/main/java/hudson/plugins/copyartifact/FingerprintingCopyMethod.java
        src/main/resources/hudson/plugins/copyartifact/CopyArtifact/config.jelly
        src/main/webapp/help-flatten-optional.html
        src/test/java/hudson/plugins/copyartifact/CopyArtifactTest.java
        http://jenkins-ci.org/commit/copyartifact-plugin/d10dad4341bc2495f469dc5cd4534bbe5e58b13c
        Log:
        JENKINS-12134 - Make fingerprinting artifacts optional.

        SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kelsey Prantis Path: src/main/java/hudson/plugins/copyartifact/Copier.java src/main/java/hudson/plugins/copyartifact/CopyArtifact.java src/main/java/hudson/plugins/copyartifact/FilePathCopyMethod.java src/main/java/hudson/plugins/copyartifact/FingerprintingCopyMethod.java src/main/resources/hudson/plugins/copyartifact/CopyArtifact/config.jelly src/main/webapp/help-flatten-optional.html src/test/java/hudson/plugins/copyartifact/CopyArtifactTest.java http://jenkins-ci.org/commit/copyartifact-plugin/d10dad4341bc2495f469dc5cd4534bbe5e58b13c Log: JENKINS-12134 - Make fingerprinting artifacts optional.

        In v1.29 of the Copy Artifact Plugin, fingerprinting was made optional.

        Matthew Webber added a comment - In v1.29 of the Copy Artifact Plugin, fingerprinting was made optional.

          mindless Alan Harder
          jorgenpt Jørgen Tjernø
          Votes:
          7 Vote for this issue
          Watchers:
          12 Start watching this issue

            Created:
            Updated:
            Resolved: