License for existing plugins without license notices.
Hello. JENKINS-21270 points plugins without license information: https://issues.jenkins-ci.org/browse/JENKINS-21270 Parameterized-trigger-plugin is also pointed. As I was just planning to make its new release merging some pull requests, I'm going to add a license notice to that if I can. Please let me know how can I decide its license. What is required to put it under MIT license? Does it require agreements by someone? It contains no LICENSE file. Some of files contain license notices in their header comments, but many of them including core logic files contain no license notices. As parameterized-trigger-plugin is contributed by many developers, I'm not sure who is responsible for its license... Does anyone know how to do in that case? * Plugins hosted in Jenkins repository without any license notice can be treated under MIT License ? * Requires an agreement of the developer originally developed that plugin? * Requires agreements of all developers contributed that plugin? * No one can decide its license ? (It should be left without license notice?) Regards, Ikedam -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: License for existing plugins without license notices.
https://wiki.jenkins-ci.org/display/JENKINS/Before+starting+a+new+plugin States that: If nothing is defined, your code will be assumed to fall under the MIT license http://en.wikipedia.org/wiki/MIT_License terms, so it should be no problem adding the MIT license there. To be on the safe side though: try to contact the maintainers and see what they think. On 21 January 2014 15:22, Ikedam de...@ikedam.jp wrote: Hello. JENKINS-21270 points plugins without license information: https://issues.jenkins-ci.org/browse/JENKINS-21270 Parameterized-trigger-plugin is also pointed. As I was just planning to make its new release merging some pull requests, I'm going to add a license notice to that if I can. Please let me know how can I decide its license. What is required to put it under MIT license? Does it require agreements by someone? It contains no LICENSE file. Some of files contain license notices in their header comments, but many of them including core logic files contain no license notices. As parameterized-trigger-plugin is contributed by many developers, I'm not sure who is responsible for its license... Does anyone know how to do in that case? * Plugins hosted in Jenkins repository without any license notice can be treated under MIT License ? * Requires an agreement of the developer originally developed that plugin? * Requires agreements of all developers contributed that plugin? * No one can decide its license ? (It should be left without license notice?) Regards, Ikedam -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Probable class loading issue / conflict between plugins
Hi, I am writing a custom plugin to publish cucumber test results to a quality center database for internal reporting needs. To do so, I am using the cucumber-jvm gherkin library to process the test result file as was done in the cucumber-testresult-plugin. My code is working fine and processing the results but when I also installed the cucumber-testresult-plugin on my Jenkins instance and used that, I am seeing this error message when trying to display the test results: Status Code: 500Exception: Stacktrace: java.lang.ClassCastException: gherkin.formatter.model.Tag cannot be cast to gherkin.formatter.model.Tag at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResult.tally(CucumberTestResult.java:273) at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultAction.load(CucumberTestResultAction.java:119) at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultAction.getResult(CucumberTestResultAction.java:147) at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultAction.getTarget(CucumberTestResultAction.java:174) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:610) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:776) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:381) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:683) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:776) I believe this can happen when there are classloader consistency issues. I looked at the code for the cucumber-testresult-plugin and it is using the XStream2[1] class to load the serialized test results from the disk (in the load method above)[2] and then when it goes to process those results in the tally method[3], it blows up. Is there a potential issue in the way the XStream2 class is handling the classloading? I am running this on Jenkins 1.520 Thanks, Peter [1] https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/util/XStream2.java [2] https://github.com/jenkinsci/cucumber-testresult-plugin/blob/master/src/main/java/org/jenkinsci/plugins/cucumber/jsontestsupport/CucumberTestResultAction.java#L111 [3] https://github.com/jenkinsci/cucumber-testresult-plugin/blob/master/src/main/java/org/jenkinsci/plugins/cucumber/jsontestsupport/CucumberTestResult.java#L221 -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
RE: Probable class loading issue / conflict between plugins
Hi Peter, OffTopic Interestingly enough we are planning on pushing results back from the cucumber plugin to another system – so I wonder if there is some commonality that the plugin should expose rather than requiring many plugins parsing the same files. /OffTopic /James From: jenkinsci-dev@googlegroups.com [mailto:jenkinsci-dev@googlegroups.com] On Behalf Of Peter Hayes Sent: 21 January 2014 16:02 To: jenkinsci-dev@googlegroups.com Subject: Probable class loading issue / conflict between plugins Hi, I am writing a custom plugin to publish cucumber test results to a quality center database for internal reporting needs. To do so, I am using the cucumber-jvm gherkin library to process the test result file as was done in the cucumber-testresult-plugin. My code is working fine and processing the results but when I also installed the cucumber-testresult-plugin on my Jenkins instance and used that, I am seeing this error message when trying to display the test results: Status Code: 500 Exception: Stacktrace: java.lang.ClassCastException: gherkin.formatter.model.Tag cannot be cast to gherkin.formatter.model.Tag at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResult.tally(CucumberTestResult.java:273) at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultAction.load(CucumberTestResultAction.java:119) at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultAction.getResult(CucumberTestResultAction.java:147) at org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultAction.getTarget(CucumberTestResultAction.java:174) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:610) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:776) at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:381) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:683) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:776) I believe this can happen when there are classloader consistency issues. I looked at the code for the cucumber-testresult-plugin and it is using the XStream2[1] class to load the serialized test results from the disk (in the load method above)[2] and then when it goes to process those results in the tally method[3], it blows up. Is there a potential issue in the way the XStream2 class is handling the classloading? I am running this on Jenkins 1.520 Thanks, Peter [1] https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/util/XStream2.java [2] https://github.com/jenkinsci/cucumber-testresult-plugin/blob/master/src/main/java/org/jenkinsci/plugins/cucumber/jsontestsupport/CucumberTestResultAction.java#L111 [3] https://github.com/jenkinsci/cucumber-testresult-plugin/blob/master/src/main/java/org/jenkinsci/plugins/cucumber/jsontestsupport/CucumberTestResult.java#L221 -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.commailto:jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Publishing cucumber test results
(Moving this topic to a new thread so that the main issue I'm having with the other one doesn't get overlooked!) Hi Peter, OffTopic Interestingly enough we are planning on pushing results back from the cucumber plugin to another system – so I wonder if there is some commonality that the plugin should expose rather than requiring many plugins parsing the same files. /OffTopic /James Hi James, I think there may be some benefit. If we could structure it so that the user wouldn't need to enter cucumber configuration related settings more than once, that would be nice. Setting up the gherkin parser within a common codebase would save some code. In my case, I implemented a gherkin callback to generate HP Quality Center specific objects that worked pretty well. The formatter / reporter push based parsing mechanism is fairly easy to use so I'm not sure having the common codebase deliver an additional API for the test cases would be to beneficial. Any particular benefits that you're thinking of? Pete -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Where are Jenkins users?
I am looking at JUC Europe in June 2014. On Mon, Jan 20, 2014 at 12:07 PM, FredG fred.g...@googlemail.com wrote: Judging by the increasing interest for JUCs I guess it's reasonable. It will probably depend on the date and the remaining time to spread the word. Is there a rough time frame when a European JUC could take place? Maybe we can also put up a poll to get an estimate how many user would turn up? On Monday, January 20, 2014 8:37:02 PM UTC+1, Alyssa Tong wrote: Fred and Dominik, do you think we can get 300 Jenkins users to turn out in Cologne? On Mon, Jan 20, 2014 at 11:30 AM, FredG fred...@googlemail.com wrote: @Stephen: Just fly direct to Düsseldorf with Aer Lingus and take a train to Cologne central station. It's only a 40min ride. :) On Monday, January 20, 2014 6:30:42 PM UTC+1, Stephen Connolly wrote: No direct flights from dublin :-( On 20 January 2014 17:17, Dominik Bartholdi do...@fortysix.ch wrote: Yeah, Cologne is also good from switzerland :) Domi On 19.01.2014, at 23:42, FredG fred...@googlemail.com wrote: Hi Alyssa, I'd recommend Cologne. Not just because I live there. ;) It can be reached easily from most of the bigger cities in western Germany (Frankfurt, Hamburg, Düsseldorf, etc). Users from France, Belgium and the Netherlands can also get to Cologne quite fast, e.g. by taking a train from Paris, Brussels or Amsterdam. A fast train connection to Frankfurt airport (major airline hub), Cologne/Bonn airport and also Düsseldorf airport ensure that people from abroad get here as well. I'm sure that a suitable venue and sponsors could be found with the help of the community and support from the local Java user group. This should in no way rule out any other German city, though. :) Regards, Fred On Saturday, January 18, 2014 1:28:16 AM UTC+1, Alyssa Tong wrote: Hi Fred, Germany is a great idea..thank you. Any specific city you could recommend? thanks, alyssa On Fri, Jan 17, 2014 at 4:38 AM, FredG fred...@googlemail.comwrote: Based on these numbers (that I fully trust ;) ) and the large user base (that exist without doubt) I suggest to have the next European JUC in Germany. :) On Friday, January 17, 2014 9:12:33 AM UTC+1, Kohsuke Kawaguchi wrote: I've geo-coded HTTP hits to updates.jenkins-ci.org by their country and summarized it in https://docs.google.com/spr eadsheet/ccc?key=0ApImblZwZHW4dFlJS2RucEdvZllxMjdMMkhSLUJRenc#gid=0 Stats like this can never fully be trusted, but it does largely match with my sense of where the user base is. High activity in US, Germany, and UK, and strong presence from Scandinavian countries, Japan, and France. I do wonder if Finland number is accurate, and also, where are people from China and India in the community!? -- Kohsuke Kawaguchi -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: auto-installer for a plugin - where should the backend crawler go?
They are found in the backend crawler project... https://github.com/jenkinsci/backend-crawler -- Larry On Tue, Jan 21, 2014 at 11:34 AM, Vicki Kozel vickiko...@gmail.com wrote: Hello, I need to write an auto-installer for a plugin - where should the crawler go? I looked at the gradle plugin on GIT, but the crawler is not there in the plugin repo. Help is appreciated! Vicki -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: auto-installer for a plugin - where should the backend crawler go?
On 21.01.2014, at 19:34, Vicki Kozel vickiko...@gmail.com wrote: I need to write an auto-installer for a plugin - where should the crawler go? I looked at the gradle plugin on GIT, but the crawler is not there in the plugin repo. Help is appreciated! Everything you need should be here: https://wiki.jenkins-ci.org/display/JENKINS/Adding+tool+auto-installer -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Best way to load a file into a Jenkins plugin
Hi, I'm writing a jenkins build plugin and the build needs to make some HTTPS calls but the server requires auth with a certificate and private key. What would be the best way (from the user's point of view) to allow him to load a custom keystore from the project configuration page, under my plugin's section as I haven't seen Jenkins to support file data type and as the keystore is in binary format i can't create text filed where he can paste the certificate or something like this. Any ideas and help is appreciated. Thanks. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: auto-installer for a plugin - where should the backend crawler go?
My question is: where should the crawler file go under my plugin directory structure? On Tuesday, January 21, 2014 10:34:27 AM UTC-8, Vicki Kozel wrote: Hello, I need to write an auto-installer for a plugin - where should the crawler go? I looked at the gradle plugin on GIT, but the crawler is not there in the plugin repo. Help is appreciated! Vicki -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: auto-installer for a plugin - where should the backend crawler go?
My question is: where should the crawler file go under my plugin directory structure? On Tuesday, January 21, 2014 11:43:21 AM UTC-8, Larry Shatzer, Jr. wrote: They are found in the backend crawler project... https://github.com/jenkinsci/backend-crawler -- Larry On Tue, Jan 21, 2014 at 11:34 AM, Vicki Kozel vicki...@gmail.comjavascript: wrote: Hello, I need to write an auto-installer for a plugin - where should the crawler go? I looked at the gradle plugin on GIT, but the crawler is not there in the plugin repo. Help is appreciated! Vicki -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com javascript:. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: auto-installer for a plugin - where should the backend crawler go?
You don't add it to your plugin. It belongs inside the backend crawler codebase. On Tue, Jan 21, 2014 at 1:12 PM, Vicki Kozel vickiko...@gmail.com wrote: My question is: where should the crawler file go under my plugin directory structure? On Tuesday, January 21, 2014 11:43:21 AM UTC-8, Larry Shatzer, Jr. wrote: They are found in the backend crawler project... https://github.com/jenkinsci/backend-crawler -- Larry On Tue, Jan 21, 2014 at 11:34 AM, Vicki Kozel vicki...@gmail.com wrote: Hello, I need to write an auto-installer for a plugin - where should the crawler go? I looked at the gradle plugin on GIT, but the crawler is not there in the plugin repo. Help is appreciated! Vicki -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: auto-installer for a plugin - where should the backend crawler go?
So how do i test the crawler locally? I test my plugin through running mvn hpi:run. On Tuesday, January 21, 2014 1:17:17 PM UTC-8, Larry Shatzer, Jr. wrote: You don't add it to your plugin. It belongs inside the backend crawler codebase. On Tue, Jan 21, 2014 at 1:12 PM, Vicki Kozel vicki...@gmail.comjavascript: wrote: My question is: where should the crawler file go under my plugin directory structure? On Tuesday, January 21, 2014 11:43:21 AM UTC-8, Larry Shatzer, Jr. wrote: They are found in the backend crawler project... https://github.com/jenkinsci/backend-crawler -- Larry On Tue, Jan 21, 2014 at 11:34 AM, Vicki Kozel vicki...@gmail.comwrote: Hello, I need to write an auto-installer for a plugin - where should the crawler go? I looked at the gradle plugin on GIT, but the crawler is not there in the plugin repo. Help is appreciated! Vicki -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com javascript:. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: auto-installer for a plugin - where should the backend crawler go?
That I don't know, but I think the crawler will produce a json file you can look at, and maybe inject into your Jenkins instance. On Tue, Jan 21, 2014 at 2:48 PM, Vicki Kozel vickiko...@gmail.com wrote: So how do i test the crawler locally? I test my plugin through running mvn hpi:run. On Tuesday, January 21, 2014 1:17:17 PM UTC-8, Larry Shatzer, Jr. wrote: You don't add it to your plugin. It belongs inside the backend crawler codebase. On Tue, Jan 21, 2014 at 1:12 PM, Vicki Kozel vicki...@gmail.com wrote: My question is: where should the crawler file go under my plugin directory structure? On Tuesday, January 21, 2014 11:43:21 AM UTC-8, Larry Shatzer, Jr. wrote: They are found in the backend crawler project... https://github.com/jenkinsci/backend-crawler -- Larry On Tue, Jan 21, 2014 at 11:34 AM, Vicki Kozel vicki...@gmail.comwrote: Hello, I need to write an auto-installer for a plugin - where should the crawler go? I looked at the gradle plugin on GIT, but the crawler is not there in the plugin repo. Help is appreciated! Vicki -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: Jenkins Flyer 2014
1500 Jenkins flyers arrived today. They are just waiting to be handed out. :) Regards, Fred On Wednesday, January 1, 2014 4:51:25 PM UTC+1, FredG wrote: Hi, I wish everyone a *Happy New Year 2014*! FOSDEM 2014 is coming up soon. Therefore I'd like to get the discussion started about this year's flyer (see last year's flyer:https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Flyer) What should be updated/changed/removed/left as is, etc? I'm planning to (at least) update the number of installations, contributors, and plugins. These are the numbers that I found: -almost 74000 installations (according tohttp://stats.jenkins-ci.org/jenkins-stats/svg/total-jenkins.svg) -568 Contributors (Members in https://github.com/jenkinsci) -858 Plugins (according tohttp://stats.jenkins-ci.org/jenkins-stats/jenkinsgraph.html) Are these numbers reliable or did I miss anything? How many flyers should I order? Last year I ordered 1000 flyers (and actually received around 1200) for a reasonable price (30 Euros). There is also a 10 Euro discount available so it's going to be even cheaper this time. Regards, Fred -- You received this message because you are subscribed to the Google Groups Jenkins Developers group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.