To be more precise: in Jenkins we would end up requiring network connection at some point. One of the ideas behind the change is to enable developers to perform extlib updates without having to ask CJ to do it for us. Once there?s a new version (tag) of an extlib, Jenkins must do ?git fetch? and that requires connection to the upstream repo. In our case this is GitHub and I think its availability<https://status.github.com/graphs/past_month> is high enough to be ok with that.
Another upside of this approach is the possibility to test extlib updates in Jenkins without influencing other builds. If we ask CJ to make the changes, like we do it now, they will immediately be present for all new builds. Of course, after updating an extlib we can still ask CJ to make the update on the Jenkins servers? side as well, so they would switch to ?offline mode? again. But before CJ does the update nobody is blocked. In general I?d vote for the mixed approach from my initial e-mail with the modifications suggested by Kevin. Thanks, Pawel From: iotivity-dev-bounces at lists.iotivity.org [mailto:[email protected]] On Behalf Of Kevin Kane via iotivity-dev Sent: Tuesday, February 14, 2017 09:30 To: uzchoi at samsung.com; Pawel Winogrodzki via iotivity-dev <iotivity-dev at lists.iotivity.org>; Dave Thaler <dthaler at microsoft.com>; Daniel Mihai <Daniel.Mihai at microsoft.com> Subject: Re: [dev] Automatic extlibs updates We only need a network connection when IoTivity is changed to use a newer version of an extlib. mbedTLS and tinycbor currently check for the presence of a particular tag, and if it?s not present, asks the user to do a ?git fetch?. So far changing versions has been infrequent, and so it isn?t often we need developers or Jenkins to update. I like the idea of making it possible to opt in to automatic downloads in the build system, which Jenkins can always turn on. This way our default is not to cause network traffic as part of doing a build, but allows easy updating of Jenkins and also gives developers an easy ?just do it? button when they know they?re on a good connection. In fact the message we print out when a dependency is out of date could be to call scons with this switch turned on, instead of asking them to do git fetch directly. From: ??? [mailto:[email protected]] Sent: Tuesday, February 14, 2017 4:25 AM To: Pawel Winogrodzki via iotivity-dev <iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at lists.iotivity.org>>; Kevin Kane <kkane at microsoft.com<mailto:kkane at microsoft.com>>; Dave Thaler <dthaler at microsoft.com<mailto:dthaler at microsoft.com>>; Daniel Mihai <Daniel.Mihai at microsoft.com<mailto:Daniel.Mihai at microsoft.com>> Subject: RE: [dev] Automatic extlibs updates Hi Pawel, Make Jenkins builds attempt automatic extlibs updates, if they are not on the correct commit already. >> Do we need network connection in case of tag switch? BR Uze Choi --------- Original Message --------- Sender : Pawel Winogrodzki via iotivity-dev <iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at lists.iotivity.org>> Date : 2017-02-14 08:06 (GMT+9) Title : [dev] Automatic extlibs updates Hi all, Recently CJ has updated some of the static extlibs used in Jenkins to be git repos, so that it?s possible to have scons switch them to correct tags/branches. My initial change<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgerrit.iotivity.org%2Fgerrit%2F%23%2Fc%2F17181%2F&data=02%7C01%7Ckkane%40microsoft.com%7C6d7a1e1793bf4736a95f08d454d4890e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636226719197060693&sdata=PqxICVsCT6IwRP1mT1ShvueYaIRnWGKwNwHKeTYnpSw%3D&reserved=0> to make that happen for libcoap has sparked a discussion, if we want to rely on a network connection during builds or not. Currently identified pros: * No need to contact CJ every time there?s a change in extlibs, so he can update Jenkins. We would only need to change the scons script. * The whole process would be automated even for the developers? local builds. Currently identified cons: * We make the developer implicitly rely on network connectivity without his/her knowledge. That might be unwanted in case you?re currently working with limited/metered internet connection. The current approach employed by the extlibs maintainers is to not rely on the internet connection, but there is no well-defined policy we should stick to. Personally, I think there might be a way to combine the best of the two worlds: * Make Jenkins builds attempt automatic extlibs updates, if they are not on the correct commit already. * Have the developers? builds behave the same way they do right now. This could be achieved by making scons check an additional environment variable or a scons argument, which could be set explicitly for Jenkins builds. Since every build right now will fail anyway, if you?re not using the correct version of an extlib (scons will just print instruction how to get it), I think this might be a reasonable solution. What are your opinions? Thanks, Pawel _______________________________________________ iotivity-dev mailing list iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at lists.iotivity.org> https://lists.iotivity.org/mailman/listinfo/iotivity-dev [cid:image001.gif at 01D287A5.28AAEE10] [http://ext.samsung.net/mail/ext/v1/external/status/update?userid=uzchoi&do=bWFpbElEPTIwMTcwMjE0MTIyNTE0ZXBjbXMxcDcyYmQ3MjA5NTQ2MjcwNWZhNjRhYmY2NDY4OWE1MTA3MyZyZWNpcGllbnRBZGRyZXNzPWtrYW5lQG1pY3Jvc29mdC5jb20_] -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20170216/9a735e21/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13402 bytes Desc: image001.gif URL: <http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20170216/9a735e21/attachment.gif>
