18:02:08 #startmeeting 18:02:08 Let the Jenkins meeting commence! 18:02:34 #info https://wiki.jenkins-ci.org/display/JENKINS/Governance+Meeting+Agenda 18:02:48 #topic Using stable vs stable-x branch for core LTS. 18:03:13 jglick: ogondza: ^^ 18:03:27 * kohsuke tries to find the commit where this discussion happened 18:03:42 I welcome the idea of getting rid of ours merging 18:03:50 my vote: stable-x only, stable as a ref alias if that is possible, else drop it 18:04:04 #info https://github.com/jenkinsci/jenkins/commit/fb48185875c3c188e206d55ec66d360b20560d4a 18:05:00 OK, then let's do 'stable-x' only 18:05:13 jglick: If we use ref alias then existing automation will work or blow up? 18:05:24 so it will not be neglected, right? 18:05:26 Not sure. 18:05:31 ogondza: I did an experiment and symbolic ref did not work 18:05:41 ... as in, one cannot push such a ref to a remote repository 18:05:55 oh, it can not be pushed 18:06:26 kohsuke: should be remove the stable branch, or make it not-buildable? 18:06:27 My closest approximation is to create a tag named 'stable' that a Jenkins job would meticulously sync to the latest 'stable-x' 18:07:02 I didn't think about that, but that's another idea 18:07:14 A tag would work well enough I think. 18:08:16 works fine for me 18:08:25 So to summarize, we'll all commit to 'stable-1.x', and we'll turn 'stable' into a tag that gets automatically linked to the latest stable-1.x 18:08:48 who keeps that running? 18:08:54 Sounds good. 18:09:00 danielbeck: ci.jenkins-ci.org 18:09:11 I mean when it inevitably breaks 18:09:28 who reconfigures it for new stable-x branch 18:09:41 IOW, does the value outweigh the effort to keep it working? 18:09:43 Part of LTS manager’s job. 18:09:58 I was going to write a script that finds the biggest x in stable-x 18:10:17 But yes, if it turns out to be too much work, i guess the plan B is to make 'stable' unbuildable by having it point to an empty commit or something 18:10:37 kohsuke: will every commit on stable-x be tagged or just releases? 18:11:12 Ideally every commit, so you can do CI on the current stable branch. 18:11:19 the Jenkins job I was thinking gets triggered on every push and do "x=figureOutX(); git tag -f stable stable-1.x; git push origin stable" 18:11:56 then it should be fairly transparent change 18:11:58 git push -f origin :stable 18:12:05 my work just get a bit simpler 18:12:09 +1 from me 18:12:26 danielbeck: is this OK enough with you? 18:12:33 sure 18:12:48 #agreed we'll all commit to 'stable-1.x', and we'll turn 'stable' into a tag that gets automatically linked to the latest stable-1.x 18:13:16 #agreed a jenkins job will maintain 'stable' as a tag to point to the latest stable-x whenever there's a push 18:13:28 #agreed if that script turns out to be flaky, we'll just make 'stable' unbuildable 18:13:46 #topic Update on plugins not getting forked into jenkinsci, or not getting released from there 18:14:19 I brought this up last time, and we decided to figure out how many plugins are affected 18:14:51 So I wrote a script that basically downloads everything offered in update center, and checks the bundled pom.xml file 18:15:15 Out of 1005 plugins, 30 don't bundle a pom.xml, and 138 have some kind of problem 18:15:19 12 specify repo in jenkinsci GitHub org that does not exist 18:15:23 42 specify repo in GitHub that has no fork to jenkinsci (but there may be the occasional fork of a fork) 18:15:33 67 plugins have no tag in GitHub jenkinci org corresponding to offered version 18:15:39 8 plugins specify no SCM URL in their POM 18:15:46 9 plugins are hosted somewhere else, e.g. beanstalk, bitbucket, or local disk 18:15:55 local disk :-) 18:15:59 Independent of SCM, I also checked wiki URL 18:16:04 35 plugins specify no wiki URL, leaving the update center to guess or not specify an URL 18:16:08 9 plugins specify URLs (linked from update center) that aren't wiki.jenkins-ci.org / wiki.hudson-ci.org 18:16:22 (the latter obviously being outdated, but we could rewrite in UC) 18:17:20 so the good news is that the vast majority of plugins are "clean" wrt these checks 18:17:30 Indeed 18:17:31 now the question is, how to proceed (if at all) 18:17:53 I guess we can try some outreach? 18:18:23 If we know who deployed them, we can reach out to those 42 plugins 18:18:41 Actually, can we tell who deployed those bits? 18:18:45 Maybe we can't 18:18:50 it's in artifactory 18:19:33 not sure whether it's in the free API though 18:19:39 ah indeed 18:19:44 I see "deployer: kohsuke" 18:20:18 If it's a newer plugin we can tell 18:20:29 If it's before we switched to artifactory, it'll say "jfrog" 18:20:38 you specifically mean the 42 unforked ones now? 18:20:56 Yes 18:21:15 The same is probably useful with "67 plugins have no tag in GitHub jenkinci org corresponding to offered version" 18:21:23 presumably their Maven settings do not push tags automatically 18:21:34 some of these release in their own org/account 18:21:46 e.g. most recent DotCi 18:22:30 https://github.com/jenkinsci/DotCi/releases vs https://github.com/groupon/DotCi/releases 18:22:43 note the jenkinsci fork isn't updated either 18:23:10 danielbeck: you have this analysis scripted, right? 18:23:27 Maybe we can just auto pull tags into our repositories? 18:23:31 kohsuke: Yes 18:24:31 ... so that we know where to go to if the original author ceases development in his own repo? 18:25:18 danielbeck: do you have any thoughts on what YOU want to do? 18:26:01 As a user I'd really like the diff link (changes in latest version) to work in the wiki, which requires tags in jenkinsci to be up to date. I used this long before I started contributing to Jenkins. 18:26:31 And I see no real reason why this shouldn't work for all plugins that are made available by Jenkins plugin manager out of the box 18:27:06 What diff link? 18:27:26 Perhaps unreleased changes page? 18:27:40 "In Latest Release" link on all plugin pages on the wiki 18:27:50 links to e.g. https://github.com/jenkinsci/email-ext-plugin/compare/email-ext-2.38.1...email-ext-2.38.2 18:27:52 oh wow 18:27:59 I always learn something new 18:28:51 helps troubleshooting after an update, or in deciding whether to update at all 18:28:52 So if we auto fork/pull tags, then that would at least work 18:29:17 for those that are on github 18:29:23 And that'd let us do other machine analysis of plugin source tree and their changes between versions 18:29:52 danielbeck: for those on Git, right? If you are going to just pull tag from repo specified in , doesn't matter if it's on github or bitbucket so long as it's publicly accessible 18:30:26 And it looked like that'd cover the majority 18:30:29 kohsuke: We cannot disable PRs AFAIK so autofork would just be confusing 18:32:14 OK, so you'd rather want the diff link to point to their respective repos? 18:32:47 I'd rather want the jenkinsci one to be used 18:33:15 (FWIW, I don't think enabling PRs is all that confusing, and sadly PRs left pending forever is norm than exception right now) 18:33:40 do we know the reasons not to use jenkinsci? Other than e.g. some companies wanting more stars in their github org? 18:34:09 That one was the only real conversation I ever had with someone who's not doing that, I think 18:35:46 So what now? Contact the users with the request to host and release in jenkinsci, and ask for reasons why not? 18:36:14 I think that's one thing we can do if it's not too much effort 18:36:26 I bet many of them would be just as happy to do that 18:37:14 I thought auto-importing tags would be less tedious as I suspect most of those plugins are just one-off "scratch my itch" plugin that's not seeing active continuing development 18:37:24 I think filtering these from the default UC config (users need to enable the "universe" switch) is a good idea, but it cannot hurt to find out what the reason is 18:38:03 OK 18:38:30 When you say "universe" UC, are you seeing us producing that UC? 18:38:55 yes. Just hide by default and add an option similar to experimental 18:40:04 So (1) we'll improve UC generator to be able to check the existence of a tag in the jenkinsci org, (2) use that check when generating the default UC, and (3) create another "universe" update center that doesn't use that check 18:40:22 And it all basically goes into production at once at some future point in time 18:40:48 And leading up to that, we'll talk to 109 folks who would miss the default UC 18:40:54 109 plugins I mean 18:41:10 Sorry, 138 plugins 18:41:29 right. FWIW I think "nonexisting repo" and "repo outside github" are worse 18:41:35 some of the latter are private 18:41:44 and we should not support that in the default UC config 18:42:30 luckily these are very few (2 or so, but still) 18:42:48 jglick: in relation to this, how easy/hard is it to enable plugin release job on http://jenkins.ci.cloudbees.com/ ? 18:43:17 kohsuke: I think it is already enabled, but only available to people who are authenticated, and therein lies the problem. 18:43:18 that'd let people "do the right thing" more easily without worrying about Maven settings for releases? 18:43:30 jglick: ah yes, authentication system is separate 18:43:37 So it's really not pratical to keep those two in sync 18:44:11 Maybe we can set something up where by pushing to GitHub you indicate that you want a release? 18:44:28 Not sure how exactly. 18:44:35 what is the topic? 18:45:01 Sort of off topic. 18:45:05 KostyaSha: see the room subtext 18:45:47 external repos and trackers must go to separate 3dparty repo :D 18:46:48 I just thought making releasing easier would help reduce the # of brokenness 18:47:25 FWIW I periodically check plugins' required Jenkins versions 18:47:46 there are some plugins that require very recent cores for no reason and I comment on their repos explaining why that's a bad idea 18:47:57 most appreciated the advice 18:48:28 so for most of the 100 it may be as easy as explaining that a jenkinsci fork would be better for users and developers as well 18:48:43 jglick: along the idea of pushing GitHub to indicate you want a release, maybe you file a ticket and assign it to the bot account? 18:49:16 kohsuke: no, does not prove you are the maintainer of sources 18:49:30 Want something that involves a push command to Git. 18:49:46 For example, push a dummy tag with a magic name to the selected branch. 18:49:47 danielbeck: OK, so sounds like we need to draw up the plan along the line of 3 bullet items I mentioned earlier 18:50:06 first reach out, explain preference and ask why not 18:50:09 we need something like that when we reach out to folks to explain why it's better for users & developers 18:50:51 then filter UC -- could be as little as requiring github, or as much as requiring tags be present in jenkinsci org fork 18:50:57 Right, so let me do this again, we need to produce some write-up that talks why we are trying to do this 18:51:12 jglick: I can check if the reporter has the push access 18:52:13 danielbeck: do you want to get that writeup started? I can pitch in points but I think you are the main driver of this effort 18:52:23 Yeah, just am not fond of filling JIRA with junk tickets. Seems more natural to have the Git push be the actual trigger. 18:52:26 I can try at least :-) 18:53:12 some parts are already in the wiki, an example by stephenc IIRC 18:53:52 Alternately, a plugin that actually uses OAuth to connect to GitHub and verify that you are supposed to have push permission to the affected repo. But this seems like more work. 18:53:57 #action danielbeck to start writing a page explaining why we want plugins to be in the jenkinsci org, with the goal of reaching out to plugins who don't do that today 18:54:26 jglick: oh that's neat 18:54:28 (Of course getting away from maven-release-plugin altogether would be lovely.) 18:54:29 agreed more work 18:54:51 (But far more intrusive to established processes.) 18:55:08 We should probably inform the dev list about this activity 18:55:19 But I think enough for today 18:55:23 Yup. 18:55:38 I'm sure people will have opinions on this 18:55:43 right 18:55:44 So, I have a rather large php project that I'm currently deploying with Jenkins... I'm currently doing it wrong however, because the "archive artifacts" step takes a *very* long time to complete... what can I look at to try and either make this step faster, or do an alternative process for pushing changes through my pipeline? 18:55:47 #topic next meeting 18:56:03 #info Next meeting will be Oct 29th 18:56:14 In the mean time, see you in JUC San Francisco 18:56:22 #endmeeting