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

Shelve project plugin broken backward compatibility

    Details

    • Similar Issues:

      Description

      Hello.

      The plugin backward compatibility was dramatically broken by commit: https://github.com/jenkinsci/shelve-project-plugin/commit/01bd4c4f1b41fb97704558362e16c085d3dee83c 

      for next API:

      • constructor org.jvnet.hudson.plugins.shelveproject.DeleteProjectExecutable(Queue.Task, String[]): became non-public
      • constructor org.jvnet.hudson.plugins.shelveproject.DeleteProjectTask(String[]): became non-public
      • constructor org.jvnet.hudson.plugins.shelveproject.UnshelveProjectExecutable(Queue.Task, String[]): became non-public
      • constructor org.jvnet.hudson.plugins.shelveproject.UnshelveProjectTask(String[]): became non-public

      We use the API. Could you, please, revert the API changes in next release?

        Attachments

          Issue Links

            Activity

            Hide
            pierrebtz Pierre Beitz added a comment -

            Sergey Ryazantsev API wasn't documented as an API...thus the changes.

            That being said it's a good point that one could want to use the plugin programatically (I'm thinking bulk update for instance...). I'll make a fix making sure to add Javadoc so that it doesn't happen again...

            Show
            pierrebtz Pierre Beitz added a comment - Sergey Ryazantsev API wasn't documented as an API...thus the changes. That being said it's a good point that one could want to use the plugin programatically (I'm thinking bulk update for instance...). I'll make a fix making sure to add Javadoc so that it doesn't happen again...
            Hide
            prifiz Valentin Baranov added a comment -

            Pierre Beitz, voted for this issue.

            I'm also facing this problem. It would be great if you fixed it soon.

            Show
            prifiz Valentin Baranov added a comment - Pierre Beitz , voted for this issue. I'm also facing this problem. It would be great if you fixed it soon.
            Hide
            xpyct707 Sergey Ryazantsev added a comment -

            Pierre Beitz, thank you. We're looking forward for the fix because update to last plugin version is blocked for us now.

            BTW, anything that was once declared as 'public' in Java became an API forever. So in case an API is broken, major version number must be incremented in accordance to Semantic Versioning to share that point with users.

            Show
            xpyct707 Sergey Ryazantsev added a comment - Pierre Beitz , thank you. We're looking forward for the fix because update to last plugin version is blocked for us now. BTW, anything that was once declared as 'public' in Java became an API forever. So in case an API is broken, major version number must be incremented in accordance to  Semantic Versioning to share that point with users .
            Hide
            pierrebtz Pierre Beitz added a comment -

            Sergey Ryazantsev I'll try to come up with something when I have some time, feel free to propose a PR if it's not fast enough, only thing I'll required in the PR is that you add a (minimal) javadoc on the methods you set back to public.

             

            Regarding your last remark, the project is not following semantic versioning (version numbers are in fact not following the major, minor patch pattern). And I didn't anticipate the usage of undocumented methods in the code (probably my fault here). Both reasons explain the aggressive refactoring that lead to this situation...but thanks for the semantic page, it's always good to re-read it from time to time

             

            Show
            pierrebtz Pierre Beitz added a comment - Sergey Ryazantsev I'll try to come up with something when I have some time, feel free to propose a PR if it's not fast enough, only thing I'll required in the PR is that you add a (minimal) javadoc on the methods you set back to public.   Regarding your last remark, the project is not following semantic versioning (version numbers are in fact not following the major, minor patch pattern). And I didn't anticipate the usage of undocumented methods in the code (probably my fault here). Both reasons explain the aggressive refactoring that lead to this situation...but thanks for the semantic page, it's always good to re-read it from time to time  

              People

              • Assignee:
                pierrebtz Pierre Beitz
                Reporter:
                xpyct707 Sergey Ryazantsev
              • Votes:
                1 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: