{"action":"created","issue":{"url":"https://api.github.com/repos/jenkinsci/scm-sync-configuration-plugin/issues/31","labels_url":"https://api.github.com/repos/jenkinsci/scm-sync-configuration-plugin/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/jenkinsci/scm-sync-configuration-plugin/issues/31/comments","events_url":"https://api.github.com/repos/jenkinsci/scm-sync-configuration-plugin/issues/31/events","html_url":"https://github.com/jenkinsci/scm-sync-configuration-plugin/pull/31","id":93300187,"number":31,"title":"Modernize this plugin","user":{"login":"tomaswolf","id":8580452,"avatar_url":"https://avatars.githubusercontent.com/u/8580452?v=3","gravatar_id":"","url":"https://api.github.com/users/tomaswolf","html_url":"https://github.com/tomaswolf","followers_url":"https://api.github.com/users/tomaswolf/followers","following_url":"https://api.github.com/users/tomaswolf/following{/other_user}","gists_url":"https://api.github.com/users/tomaswolf/gists{/gist_id}","starred_url":"https://api.github.com/users/tomaswolf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomaswolf/subscriptions","organizations_url":"https://api.github.com/users/tomaswolf/orgs","repos_url":"https://api.github.com/users/tomaswolf/repos","events_url":"https://api.github.com/users/tomaswolf/events{/privacy}","received_events_url":"https://api.github.com/users/tomaswolf/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":26,"created_at":"2015-07-06T15:00:45Z","updated_at":"2015-11-17T20:31:01Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jenkinsci/scm-sync-configuration-plugin/pulls/31","html_url":"https://github.com/jenkinsci/scm-sync-configuration-plugin/pull/31","diff_url":"https://github.com/jenkinsci/scm-sync-configuration-plugin/pull/31.diff","patch_url":"https://github.com/jenkinsci/scm-sync-configuration-plugin/pull/31.patch"},"body":"This is a fairly large pull request, but I believe if you go through it commit by commit, you'll be able to follow what I did. I did try to have a clean and understandable commit history here...\r\n\r\nThe most fundamental change is a switch on the Jenkins base version from 1.409 and Java 5 to 1.565.3 and to Java 6 (minimum requirement for Jenkins since 1.520). I just didn't get the original version from master to build and run the tests successfully with the 1.409 POM. 1.565.3 is an LTS version from October 2014.\r\n\r\nAfter that, I started fixing things that prevented me from running this plugin in our in-house setup. The individual commit messages explain it all.\r\n\r\nMaking this work for jobs with blanks in the name ([commit cb2f319b](https://github.com/jenkinsci/scm-sync-configuration-plugin/commit/cb2f319b)) required rewriting more of maven-scm since the root cause was in there.\r\n\r\nThe last two commits attempt to fix JENKINS-26204. I never could reproduce that problem, but in looking through the code for a possible cause I stumbled upon one possible race condition (though that should not affect an installed plugin since it doesn't use \"synchronous\" transactions) and discovered that the path handling in the plugin suffered from the same problem as maven-scm.\r\n\r\nNot dealt with is the \"poisoned commit\" problem. Currently the plugin leaves a failing commit in its queue and will retry it forever again (until Jenkins is restarted). If these retries also fail, no further commits to the SCM repository will ever succeed. It's unclear to me what the best strategy would be; just skipping the \"bad\" commit is no solution as it might make subsequent commits also fail. Also, such a \"bad\" commit may leave behind an inconsistent file and repository state (some paths added/staged, some not). Probably the best strategy to deal with failing commits is to stop the plugin (no more recording), require the user to fix it, and then let the user restart the plugin. At least that would not require the user to stop and restart the whole Jenkins."},"comment":{"url":"https://api.github.com/repos/jenkinsci/scm-sync-configuration-plugin/issues/comments/157497831","html_url":"https://github.com/jenkinsci/scm-sync-configuration-plugin/pull/31#issuecomment-157497831","issue_url":"https://api.github.com/repos/jenkinsci/scm-sync-configuration-plugin/issues/31","id":157497831,"user":{"login":"sethherr","id":1235441,"avatar_url":"https://avatars.githubusercontent.com/u/1235441?v=3","gravatar_id":"","url":"https://api.github.com/users/sethherr","html_url":"https://github.com/sethherr","followers_url":"https://api.github.com/users/sethherr/followers","following_url":"https://api.github.com/users/sethherr/following{/other_user}","gists_url":"https://api.github.com/users/sethherr/gists{/gist_id}","starred_url":"https://api.github.com/users/sethherr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sethherr/subscriptions","organizations_url":"https://api.github.com/users/sethherr/orgs","repos_url":"https://api.github.com/users/sethherr/repos","events_url":"https://api.github.com/users/sethherr/events{/privacy}","received_events_url":"https://api.github.com/users/sethherr/received_events","type":"User","site_admin":false},"created_at":"2015-11-17T20:31:01Z","updated_at":"2015-11-17T20:31:01Z","body":"Bumping because I'd love to hear when this is merged, :+1: "}}