I had a friend at the office compile the master branch of the git plugin on his MacOS machine with maven 3.3.1 and Java 1.8.0_60. No test failures for him either. I truly don't know what's different about your environment that causes the tests to fail.
Mark Waite On Tue, Jan 5, 2016 at 9:01 PM Mark Waite <[email protected]> wrote: > It may be that you're seeing a slightly different variation on MacOS of > what I'm seeing on FreeBSD. On FreeBSD, it appears the tests fail due to > the Jenkins version on which the git plugin is based. > > I maintain a working branch (for compatibility testing) on > https://github.com/MarkEWaite/git-plugin/tree/ongoing/latest-jenkins-lts . > That branch compiles and passes all tests on FreeBSD 10.1 with OpenJDK 8. > It is the same content as the git plugin master branch, plus an update to > the pom.xml to depend on the latest Jenkins long term support release. I > believe it also includes one other relatively minor change required in the > newer Jenkins version. > > You might try that same branch for yourself. > > Mark Waite > > On Tue, Jan 5, 2016 at 8:22 PM Mark Waite <[email protected]> > wrote: > >> I use various versions of maven, including Maven 3.2.5, and the latest >> versions of Oracle Java 7 and Oracle Java 8 on the platforms where I >> compile and run. I also use OpenJDK 7 and OpenJDK 8 on at least a few of >> the platforms. >> >> I also built and tested on FreeBSD 10.1 using OpenJDK 7. That's the >> closest I can approximate to a MacOS machine. It fails with a hundred or >> more test failures, but not with the message you're seeing. >> >> I built and tested on FreeBSD 10.1 using OpenJDK 8. It also fails with a >> hundred or more test failures, but not the message you're seeing. >> >> I am able to run slave agents on FreeBSD, and the git plugin and git >> client plugin are able to clone repositories, but I can't compile and test >> successfully on FreeBSD with either OpenJDK 7 or OpenJDK 8. >> >> I think the problem you're seeing is either platform specific (like my >> FreeBSD problem), or environment and configuration specific. >> Unfortunately, I don't have any way to do further diagnosis. >> >> You might check with Craig Rodrigues on this mailing list. I believe >> he's a FreeBSD developer. I don't think I've ever seen a Darwin developer >> on the list. >> >> Mark Waite >> >> On Tue, Jan 5, 2016 at 7:02 PM Michael Giroux <[email protected]> wrote: >> >>> Mac OS should not matter. Maven is Java, and Java is platform neutral >>> (in theory), but maven version may be of interest. >>> >>> What is your specific build environment? >>> >>> >>> >>> On Tuesday, January 5, 2016 at 6:02:56 PM UTC-7, Mark Waite wrote: >>> >>>> That's a very strange message. The only reference I could find to that >>>> message was a wiki article from 2011. See >>>> https://wiki.jenkins-ci.org/display/JENKINS/My+class+is+missing+descriptor >>>> in >>>> case that gives you any help. >>>> >>>> I see that you're running on MacOS, and I don't have a MacOS machine in >>>> my mix of development and test environments, so there may be something >>>> specific to the Mac. >>>> >>>> Mark Waite >>>> >>>> On Tue, Jan 5, 2016 at 4:29 PM Michael Giroux <[email protected]> >>>> wrote: >>>> >>> Attaching build.log for complete build result. shows maven version and >>>>> java versions at head of file. >>>>> >>>>> >>>>> On Tuesday, January 5, 2016 at 4:25:25 PM UTC-7, Michael Giroux wrote: >>>>>> >>>>>> I'm running a build now, will attach console output when tests >>>>>> complete. Here is an example of a failure: >>>>>> >>>>>> java.lang.AssertionError: class >>>>>> hudson.plugins.git.util.DefaultBuildChooser is missing its descriptor >>>>>> >>>>>> at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1165) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.util.BuildChooser.getDescriptor(BuildChooser.java:142) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.util.BuildChooser.getDisplayName(BuildChooser.java:45) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:555) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:529) >>>>>> >>>>>> at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:384) >>>>>> >>>>>> at hudson.scm.SCM.poll(SCM.java:401) >>>>>> >>>>>> at >>>>>> hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1450) >>>>>> >>>>>> at hudson.model.AbstractProject._poll(AbstractProject.java:1421) >>>>>> >>>>>> at hudson.model.AbstractProject.poll(AbstractProject.java:1332) >>>>>> >>>>>> at hudson.plugins.git.SCMTriggerTest.check(SCMTriggerTest.java:271) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.SCMTriggerTest.testCommitAsBranchSpec_feature4_sha1(SCMTriggerTest.java:206) >>>>>> >>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>> >>>>>> at >>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>> >>>>>> at >>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>> >>>>>> at java.lang.reflect.Method.invoke(Method.java:497) >>>>>> >>>>>> at >>>>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >>>>>> >>>>>> at >>>>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) >>>>>> >>>>>> at org.jvnet.hudson.test.JenkinsRule$2.evaluate(JenkinsRule.java:486) >>>>>> >>>>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20) >>>>>> >>>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) >>>>>> >>>>>> at >>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) >>>>>> >>>>>> at >>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) >>>>>> >>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) >>>>>> >>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) >>>>>> >>>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) >>>>>> >>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) >>>>>> >>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) >>>>>> >>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) >>>>>> >>>>>> >>>>>> testCommitAsBranchSpec_feature4_branchName(hudson.plugins.git.JGitSCMTriggerLocalPollTest) >>>>>> Time elapsed: 10.183 sec <<< FAILURE! >>>>>> >>>>>> java.lang.AssertionError: class >>>>>> hudson.plugins.git.util.DefaultBuildChooser is missing its descriptor >>>>>> >>>>>> at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1165) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.util.BuildChooser.getDescriptor(BuildChooser.java:142) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.util.BuildChooser.getDisplayName(BuildChooser.java:45) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:555) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:529) >>>>>> >>>>>> at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:384) >>>>>> >>>>>> at hudson.scm.SCM.poll(SCM.java:401) >>>>>> >>>>>> at >>>>>> hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1450) >>>>>> >>>>>> at hudson.model.AbstractProject._poll(AbstractProject.java:1421) >>>>>> >>>>>> at hudson.model.AbstractProject.poll(AbstractProject.java:1332) >>>>>> >>>>>> at hudson.plugins.git.SCMTriggerTest.check(SCMTriggerTest.java:271) >>>>>> >>>>>> at >>>>>> hudson.plugins.git.SCMTriggerTest.testCommitAsBranchSpec_feature4_branchName(SCMTriggerTest.java:214) >>>>>> >>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>> >>>>>> at >>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>> >>>>>> at >>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>> >>>>>> at java.lang.reflect.Method.invoke(Method.java:497) >>>>>> >>>>>> at >>>>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >>>>>> >>>>>> at >>>>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >>>>>> >>>>>> at >>>>>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) >>>>>> >>>>>> at org.jvnet.hudson.test.JenkinsRule$2.evaluate(JenkinsRule.java:486) >>>>>> >>>>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20) >>>>>> >>>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) >>>>>> >>>>>> at >>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) >>>>>> >>>>>> at >>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) >>>>>> >>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) >>>>>> >>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) >>>>>> >>>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) >>>>>> >>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) >>>>>> >>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) >>>>>> >>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) >>>>>> >>>>>> at >>>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) >>>>>> >>>>>> >>>>>> Running hudson.plugins.git.JGitSCMTriggerRemotePollTest >>>>>> >>>>>> >>>>>> >>>>>> On Tuesday, January 5, 2016 at 3:55:01 PM UTC-7, Mark Waite wrote: >>>>>>> >>>>>>> I'm interested in the test failures you're seeing, since there are >>>>>>> currently no test failures on the Cloudbees execution of the >>>>>>> automated tests >>>>>>> <https://jenkins.ci.cloudbees.com/job/plugins/job/git-plugin/1031/> on >>>>>>> the master branch, and there were only three random failures on my >>>>>>> execution of the automated tests on CentOS 6, CentOS 7, Debian 6, >>>>>>> Debian 7, >>>>>>> Debian 8, Windows 7, and Windows 10, with Java 7 and Java 8. >>>>>>> >>>>>>> Mark Waite >>>>>>> >>>>>>> On Tue, Jan 5, 2016 at 3:39 PM Michael Giroux <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Before I start making changes, I'm building from master and getting >>>>>>>> test failures. Is there a document that explains additional >>>>>>>> environment >>>>>>>> setup needed to work on plugins? >>>>>>>> >>>>>>>> >>>>>>>> On Tuesday, January 5, 2016 at 12:59:55 PM UTC-7, Mark Waite wrote: >>>>>>>> >>>>>>>>> That is am interesting idea. Giving a semantic meaning to am >>>>>>>>> empty field should not alert behavior for non-empty fields. Will you >>>>>>>>> be >>>>>>>>> coding it? >>>>>>>>> >>>>>>>>> Mark Waite >>>>>>>>> >>>>>>>>> On Tue, Jan 5, 2016, 11:47 AM Michael Giroux <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>> Mark, >>>>>>>>>> >>>>>>>>>> I think there may be a simple solution that can be implemented in >>>>>>>>>> the Git plugin. If the job is configured with additional behavior >>>>>>>>>> "checkout to local branch" AND the local branch name is left blank, >>>>>>>>>> then >>>>>>>>>> the Git plugin could do a checkout of the configured remote branch >>>>>>>>>> sans >>>>>>>>>> "origin/". I think this allows for current behavior while also >>>>>>>>>> allowing >>>>>>>>>> maven release builds to run. >>>>>>>>>> >>>>>>>>>> Michael >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thursday, December 31, 2015 at 8:41:53 AM UTC-7, Mark Waite >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> I think your logic is very reasonable. The git plugin seems >>>>>>>>>>> like the right place to do that. Since the need is to reference a >>>>>>>>>>> substring of the current GIT_BRANCH value within the context of a >>>>>>>>>>> Jenkins >>>>>>>>>>> job, it seems like an addition to the token macro keywords allowed >>>>>>>>>>> on >>>>>>>>>>> GIT_BRANCH might meet your need. >>>>>>>>>>> >>>>>>>>>>> You might refer to >>>>>>>>>>> https://issues.jenkins-ci.org/browse/JENKINS-25465 for a >>>>>>>>>>> discussion of the fullName=false parameter to GIT_BRANCH, in case >>>>>>>>>>> that will >>>>>>>>>>> already handle your case. >>>>>>>>>>> >>>>>>>>>>> Mark Waite >>>>>>>>>>> >>>>>>>>>>> On Thu, Dec 31, 2015 at 6:07 AM Michael Giroux < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>> Accepting that the Git Parameter plugin is technically correct, >>>>>>>>>>>> lets get back to the maven release build issue. >>>>>>>>>>>> 1. to do a maven release, we MUST configure the "checkout to >>>>>>>>>>>> local branch" option, or define a pre build step to do a git >>>>>>>>>>>> checkout into >>>>>>>>>>>> a local branch. >>>>>>>>>>>> 2. the local branch name MUST be the effective name on the >>>>>>>>>>>> remote (sans origin/) to allow the maven release:prepare to push >>>>>>>>>>>> the pom >>>>>>>>>>>> changes to the correct branch. >>>>>>>>>>>> 3. we currently can not use the value from the Git Parameter >>>>>>>>>>>> plugin because that includes the "origin/" prefix resulting in a >>>>>>>>>>>> new branch >>>>>>>>>>>> created on the remote git repo. >>>>>>>>>>>> >>>>>>>>>>>> I'm not really sure where the option belongs, but to support >>>>>>>>>>>> doing a maven release on a branch specified by the Git Parameter >>>>>>>>>>>> plugin we >>>>>>>>>>>> need a clean way to get the code checked out into the correct >>>>>>>>>>>> local branch. >>>>>>>>>>>> >>>>>>>>>>>> The Git plugin could provide an option to derive local branch >>>>>>>>>>>> name, or the Git Parameter plugin could define an additional >>>>>>>>>>>> parameter >>>>>>>>>>>> containing the effective branch name. I'm not sure which is best >>>>>>>>>>>> approach. I suspect that the Git plugin should be able to operate >>>>>>>>>>>> whether >>>>>>>>>>>> the Git Parameter plugin has been configured or not, so I lean >>>>>>>>>>>> toward an >>>>>>>>>>>> option in Git plugin to "checkout to local branch" that ends up >>>>>>>>>>>> with the >>>>>>>>>>>> required local branch name, but there may be a more appropriate >>>>>>>>>>>> approach. >>>>>>>>>>>> >>>>>>>>>>>> What is the next step? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wednesday, December 30, 2015 at 3:12:49 PM UTC-7, Mark Waite >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Could do that as well, though the git parameter plugin is >>>>>>>>>>>>> technically correct. It is showing the branch to be built, and >>>>>>>>>>>>> the branch >>>>>>>>>>>>> to be built truly is "origin/master", since there is no local >>>>>>>>>>>>> master branch >>>>>>>>>>>>> tracking the remote branch. >>>>>>>>>>>>> >>>>>>>>>>>>> Mark Waite >>>>>>>>>>>>> >>>>>>>>>>>>> On Wed, Dec 30, 2015 at 11:41 AM Michael Giroux < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>> Mark, I wonder if one of the issues I have is actually a defect >>>>>>>>>>>>>> in the Git Parameter plugin. Specifically, the values set by >>>>>>>>>>>>>> the Git >>>>>>>>>>>>>> Parameter plugin include the "origin/" prefix. When this is >>>>>>>>>>>>>> used as the >>>>>>>>>>>>>> value for checkout to local branch, AND the build is a maven >>>>>>>>>>>>>> release, we >>>>>>>>>>>>>> end up with a new branch in Stash "origin/master" (should be >>>>>>>>>>>>>> simply master) >>>>>>>>>>>>>> or "origin/some_other_branch". It seems that normal builds run >>>>>>>>>>>>>> just fine, >>>>>>>>>>>>>> but release builds result in pushes back to Git and here is >>>>>>>>>>>>>> where the >>>>>>>>>>>>>> branch names get messed up. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Should I be asking the Git Parameter plugin developers to >>>>>>>>>>>>>> strip the leading "origin/" from the branch names that are >>>>>>>>>>>>>> assigned to the >>>>>>>>>>>>>> parameter? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Michael >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wednesday, December 30, 2015 at 11:22:33 AM UTC-7, Michael >>>>>>>>>>>>>> Giroux wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks Mark. Command line build runs fine w/o compile >>>>>>>>>>>>>>> errors. For your reference, this is a known Eclipse issue bug >>>>>>>>>>>>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=369592. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wednesday, December 30, 2015 at 10:34:59 AM UTC-7, Mark >>>>>>>>>>>>>>> Waite wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> https://jenkins.ci.cloudbees.com/job/plugins/job/git-plugin/ >>>>>>>>>>>>>>>> (and >>>>>>>>>>>>>>>> my internal Jenkins server inside my firewall) confirm that >>>>>>>>>>>>>>>> the code on the >>>>>>>>>>>>>>>> master branch compiles correctly from the maven command line. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I run my debugger from Netbeans (rather than Eclipse) and >>>>>>>>>>>>>>>> can confirm that it compiles and runs from Netbeans as well. >>>>>>>>>>>>>>>> I don't use >>>>>>>>>>>>>>>> Eclipse, so I'm not much help wiht Eclipse specific failures. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Mark Waite >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, Dec 30, 2015 at 8:31 AM Michael Giroux < >>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> BTW, the following patch resolves my compile errors, but >>>>>>>>>>>>>>>>> not sure if the cast to (Item) is the best choice. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> diff --git >>>>>>>>>>>>>>>>> a/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>>>> b/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>>>> index 3a14b10..a39e60c 100644 >>>>>>>>>>>>>>>>> --- a/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>>>> +++ b/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>>>> @@ -1203,7 +1203,7 @@ >>>>>>>>>>>>>>>>> false, >>>>>>>>>>>>>>>>> Collections.<SubmoduleConfig>emptyList(), >>>>>>>>>>>>>>>>> browser, null, null); >>>>>>>>>>>>>>>>> p.setScm(scm); >>>>>>>>>>>>>>>>> - configRoundtrip(p); >>>>>>>>>>>>>>>>> + configRoundtrip((Item)p); >>>>>>>>>>>>>>>>> assertEqualDataBoundBeans(scm,p.getScm()); >>>>>>>>>>>>>>>>> assertEquals("Wrong key", "git " + url, >>>>>>>>>>>>>>>>> scm.getKey()); >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> @@ -1215,7 +1215,7 @@ >>>>>>>>>>>>>>>>> FreeStyleProject p = createFreeStyleProject(); >>>>>>>>>>>>>>>>> GitSCM scm = new GitSCM(" >>>>>>>>>>>>>>>>> https://github.com/jenkinsci/jenkins"); >>>>>>>>>>>>>>>>> p.setScm(scm); >>>>>>>>>>>>>>>>> - configRoundtrip(p); >>>>>>>>>>>>>>>>> + configRoundtrip((Item)p); >>>>>>>>>>>>>>>>> assertEqualDataBoundBeans(scm,p.getScm()); >>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Wednesday, December 30, 2015 at 10:29:37 AM UTC-7, >>>>>>>>>>>>>>>>> Michael Giroux wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Not making any changes to code, just trying to examine >>>>>>>>>>>>>>>>>> primary project source to understand what is being changed >>>>>>>>>>>>>>>>>> in the PRs. >>>>>>>>>>>>>>>>>> I cloned the primary git repo from >>>>>>>>>>>>>>>>>> https://github.com/jenkinsci/git-plugin.git so I could >>>>>>>>>>>>>>>>>> get some context for the PRs which show only the code being >>>>>>>>>>>>>>>>>> changed. >>>>>>>>>>>>>>>>>> Getting compile errors on unmodified project. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Eclipse version 4.5 (Mars), JDK 1.8.0 (also tried JDK >>>>>>>>>>>>>>>>>> 1.7.0) >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Wednesday, December 30, 2015 at 9:53:36 AM UTC-7, Mark >>>>>>>>>>>>>>>>>> Waite wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Don't attempt to evaluate the two pull requests in the >>>>>>>>>>>>>>>>>>> same repository. They are two different ideas that might >>>>>>>>>>>>>>>>>>> meet your need. >>>>>>>>>>>>>>>>>>> I suspect that one or the other will eventually be merged, >>>>>>>>>>>>>>>>>>> but not both. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Mark Waite >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Wed, Dec 30, 2015 at 7:21 AM Michael Giroux < >>>>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Mark, I'm taking a look at the two pull requests. I >>>>>>>>>>>>>>>>>>>> cloned the repo so I can view code in Eclipse, but I'm >>>>>>>>>>>>>>>>>>>> getting compile >>>>>>>>>>>>>>>>>>>> errors in GitSCMTest.java: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Description Resource Path Location Type >>>>>>>>>>>>>>>>>>>> The method configRoundtrip(FreeStyleProject) is >>>>>>>>>>>>>>>>>>>> ambiguous for the type GitSCMTest GitSCMTest.java >>>>>>>>>>>>>>>>>>>> /git/src/test/java/hudson/plugins/git line 1206 Java >>>>>>>>>>>>>>>>>>>> Problem >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Suggestions? >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Michael >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Tuesday, December 29, 2015 at 10:47:14 PM UTC-7, >>>>>>>>>>>>>>>>>>>> Mark Waite wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> There is a pending pull request to the git plugin >>>>>>>>>>>>>>>>>>>>> which provides a new environment variable, >>>>>>>>>>>>>>>>>>>>> GIT_SHORT_BRANCH_NAME. The >>>>>>>>>>>>>>>>>>>>> semantics of that proposed environment variable are not >>>>>>>>>>>>>>>>>>>>> quite what you're >>>>>>>>>>>>>>>>>>>>> describing, but you might review the pull request to see >>>>>>>>>>>>>>>>>>>>> if it is close >>>>>>>>>>>>>>>>>>>>> enough for your use case. See >>>>>>>>>>>>>>>>>>>>> https://github.com/jenkinsci/git-plugin/pull/347 and >>>>>>>>>>>>>>>>>>>>> https://github.com/jenkinsci/git-plugin/pull/304 for >>>>>>>>>>>>>>>>>>>>> two different possibilities. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Mark Waite >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Tue, Dec 29, 2015 at 8:36 PM Michael Giroux < >>>>>>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Yes. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> The issue I'm describing is a result of using the Git >>>>>>>>>>>>>>>>>>>>>> Parameter plugin which allows the user to select a >>>>>>>>>>>>>>>>>>>>>> branch, + the Git plugin >>>>>>>>>>>>>>>>>>>>>> which allows configuration of the branch to build and >>>>>>>>>>>>>>>>>>>>>> the local branch >>>>>>>>>>>>>>>>>>>>>> name, + maven release plugin which relies on local >>>>>>>>>>>>>>>>>>>>>> branch name for push to >>>>>>>>>>>>>>>>>>>>>> remote + Stash Webhook to Jenkins with triggers a build >>>>>>>>>>>>>>>>>>>>>> of any arbitrary >>>>>>>>>>>>>>>>>>>>>> branch. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> I will admit that one solution is to create two jobs >>>>>>>>>>>>>>>>>>>>>> in Jenkins to allow building of any arbitrary branch as >>>>>>>>>>>>>>>>>>>>>> triggered by the >>>>>>>>>>>>>>>>>>>>>> Stash web hook for jenkins, and a second job that is >>>>>>>>>>>>>>>>>>>>>> configured to build a >>>>>>>>>>>>>>>>>>>>>> branch specified by user supplied parameter values. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> The problem occurs when when attempting to configure >>>>>>>>>>>>>>>>>>>>>> a single jenkins build that allows for manual >>>>>>>>>>>>>>>>>>>>>> specification of branch via >>>>>>>>>>>>>>>>>>>>>> the Git parameter, and builds kicked off by the Stash >>>>>>>>>>>>>>>>>>>>>> web hook to jenkins. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 1. to allow the jenkins web hook to initiate a build, >>>>>>>>>>>>>>>>>>>>>> it is necessary to configure the build to build any >>>>>>>>>>>>>>>>>>>>>> branch (leaving branch >>>>>>>>>>>>>>>>>>>>>> to build as blank). >>>>>>>>>>>>>>>>>>>>>> 2. to allow a maven release to build, you MUST >>>>>>>>>>>>>>>>>>>>>> specify a local branch name. Otherwise, the push to >>>>>>>>>>>>>>>>>>>>>> stash fails the build >>>>>>>>>>>>>>>>>>>>>> does not have a local branch name. >>>>>>>>>>>>>>>>>>>>>> 3. To meet condittion #1, the default value for the >>>>>>>>>>>>>>>>>>>>>> Git parameter must be "**" so that the branch to build >>>>>>>>>>>>>>>>>>>>>> is ANY (** or empty) >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> So basically, the issue is that if a build is >>>>>>>>>>>>>>>>>>>>>> configured to build any branch, and also has maven >>>>>>>>>>>>>>>>>>>>>> release configured, you >>>>>>>>>>>>>>>>>>>>>> need some way to get the code checked out to a local >>>>>>>>>>>>>>>>>>>>>> branch (additional >>>>>>>>>>>>>>>>>>>>>> behaviors) with the same name as the branch being built, >>>>>>>>>>>>>>>>>>>>>> and there is >>>>>>>>>>>>>>>>>>>>>> currently no way to do that. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> I tried to put "${GIT_BRANCH/*\//}" into the >>>>>>>>>>>>>>>>>>>>>> "checkout to local branch" but this did not work. It >>>>>>>>>>>>>>>>>>>>>> seems this field does >>>>>>>>>>>>>>>>>>>>>> not resolve environment variable references using full >>>>>>>>>>>>>>>>>>>>>> bash variable >>>>>>>>>>>>>>>>>>>>>> reference notation. Perhaps this is the solution. >>>>>>>>>>>>>>>>>>>>>> Extend the "checkout to >>>>>>>>>>>>>>>>>>>>>> local branch" to provide full bash resolution of the >>>>>>>>>>>>>>>>>>>>>> variable name. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On Tuesday, December 29, 2015 at 10:03:25 AM UTC-7, >>>>>>>>>>>>>>>>>>>>>> Michael Giroux wrote: >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Using Jenkins 1.609.3, Git plugin 2.4.0. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> We have configured most of our jobs to allow jobs to >>>>>>>>>>>>>>>>>>>>>>> be initiated by the Stash Webhook to Jenkins. To allow >>>>>>>>>>>>>>>>>>>>>>> developers to >>>>>>>>>>>>>>>>>>>>>>> manually initiate a build of any branch, the jobs use >>>>>>>>>>>>>>>>>>>>>>> the Git Parameter to >>>>>>>>>>>>>>>>>>>>>>> set a BRANCH variable. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Using this configuration, the Git Parameter is >>>>>>>>>>>>>>>>>>>>>>> configured to set "**" as the default branch to build. >>>>>>>>>>>>>>>>>>>>>>> This allows the >>>>>>>>>>>>>>>>>>>>>>> Stash Webhook to initiate a build of any branch. In >>>>>>>>>>>>>>>>>>>>>>> order to allow the job >>>>>>>>>>>>>>>>>>>>>>> to perform a maven release, we have configured the Git >>>>>>>>>>>>>>>>>>>>>>> SCM to checkout to >>>>>>>>>>>>>>>>>>>>>>> local branch "master". This all works well as long as >>>>>>>>>>>>>>>>>>>>>>> we are not doing a >>>>>>>>>>>>>>>>>>>>>>> maven release, or when we do a maven release on the >>>>>>>>>>>>>>>>>>>>>>> master branch. The >>>>>>>>>>>>>>>>>>>>>>> strategy breaks down if the developer attempts a maven >>>>>>>>>>>>>>>>>>>>>>> release on another >>>>>>>>>>>>>>>>>>>>>>> branch when the maven release:prepare goal tries to >>>>>>>>>>>>>>>>>>>>>>> push pom updates. Note >>>>>>>>>>>>>>>>>>>>>>> that the maven release plugin uses the current local >>>>>>>>>>>>>>>>>>>>>>> branch in the push as >>>>>>>>>>>>>>>>>>>>>>> "git push url localBranch:localBranch" As a result, >>>>>>>>>>>>>>>>>>>>>>> when the build is for >>>>>>>>>>>>>>>>>>>>>>> "some_branch" which has been checked out to local >>>>>>>>>>>>>>>>>>>>>>> branch "master" we get an >>>>>>>>>>>>>>>>>>>>>>> error on "git push ... master:master" because the >>>>>>>>>>>>>>>>>>>>>>> remote "master" is not in >>>>>>>>>>>>>>>>>>>>>>> sync with the local. No surprises here since the local >>>>>>>>>>>>>>>>>>>>>>> "master" is >>>>>>>>>>>>>>>>>>>>>>> actually "some_branch". >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> To resolve this, we have deleted the "checkout to >>>>>>>>>>>>>>>>>>>>>>> local branch" additional action, and added a pre-build >>>>>>>>>>>>>>>>>>>>>>> step that does the >>>>>>>>>>>>>>>>>>>>>>> following:' >>>>>>>>>>>>>>>>>>>>>>> # checkout to a local branch using the remote branch >>>>>>>>>>>>>>>>>>>>>>> name >>>>>>>>>>>>>>>>>>>>>>> LOCAL_GIT_BRANCH=${GI >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Jenkins Users" group. >>>>> >>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>> >>>> >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/jenkinsci-users/b1636c11-3a56-41ed-ba5d-547dae02292a%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/jenkinsci-users/b1636c11-3a56-41ed-ba5d-547dae02292a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Jenkins Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/jenkinsci-users/78815edf-b1a7-478a-bda1-6b722400fb55%40googlegroups.com >>> <https://groups.google.com/d/msgid/jenkinsci-users/78815edf-b1a7-478a-bda1-6b722400fb55%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtHckAhsUXVuM9-kYb4xV%2BTJu9-vgEDvZ%2BydwkGSVfCjDg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
