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>

Reply via email to