To save even more time, please apply this process to a local fresh Ubuntu 
machine. By this I mean, wipe the hard drive of a machine and install a new 
version of Ubuntu 12.04 and apply the process below before even pushing to 
Gerrit. This will allow you locally catch any dependencies you may need to have 
the Linux Foundation add to our build server.

Thanks,

Joey Morrow

From: iotivity-infratructure-bounces at lists.iotivity.org 
[mailto:[email protected]] On Behalf Of Morrow, 
Joseph L
Sent: Wednesday, May 20, 2015 12:59 PM
To: uzchoi at samsung.com; heesung84.kim at samsung.com; iotivity-dev at 
lists.iotivity.org; '???'
Cc: '???'; iotivity-infratructure at lists.iotivity.org
Subject: Re: [Iotivity-infratructure] Build check request for every commit for 
Android and Tizen platform.

Hi Uze,

My intent was not to state ?need to check the build output console from Jenkins 
log and request LF to do some remedy such as NDK configuration in the Jenkins 
server for each build break.? My intent is to lead you to enable 
cross-compilation correctly for Tizen. Remember the Build Server is not the 
only target. We are targeting any end user/developer?s machine. Right now we?ve 
set the bar low and expect the cross compilation to only work on Ubuntu. Later, 
we may have to support cross compilation on OSx and Windows, too!

This is not Linux Foundation?s job or any single contributor?s job to ensure 
builds and unit tests work for any platform. The Linux Foundation is solely 
responsible for configuring and maintaining our physical build server. We (ie. 
every contributor) are responsible for the builds and unit tests that run on 
the build server. Because only the Linux Foundation is given administrative 
privileges, we must leverage the Linux Foundation when we add new dependencies. 
Other circumstance we may leverage the Linux Foundation for help is when Gerrit 
or Jenkins are not working correctly, or if we are having Git issues between 
Gerrit & Jenkins. The Linux Foundation is responsible for adding any additional 
Jenkins plugins or Ubuntu packages we may need. They are not responsible for 
configuring these plugins or packages, however. They may also give us more 
physical resources. I think this paragraph summarizes how we should leverage 
the Linux Foundation. The following summarizes what is expected of you, the 
contributor.

You as the contributor are fully responsible for implementing the build process 
& unit tests for Tizen. For instance, Intel?s OTC team (for IoTivity) 
implemented the Android-API branch and merged it to the master branch: They 
have already implemented the complete build process for the master branch in 
SCons. Currently, they are working on enabling JUnit tests for the Java API.

The same level of effort is expected for whomever is contributing the build for 
Tizen, or any other platform. First, consider making local changes to the 
SConscripts to ensure that cross-compilation for Tizen works and then push that 
commit to Gerrit (you may start reading here: 
https://wiki.iotivity.org/how_to_make_build_changes). Then, please consider 
implementing the unit tests for the Tizen platform for the build server to run 
for each Gerrit changeset.

To see an example of how to invoke the build process for another platform (ie. 
cross-compile), please see/edit ?IOTIVITY/auto_build.sh? and see how it is 
already done for the Android platform. To see how you can invoke unit tests, 
please see for example:? IOTIVITY/resource/csdk/stack/test/SConscript?.

Once you?ve completed the above, you should keep a list of what dependencies 
you?ve added to the build process in order to cross-compile for the Tizen 
platform, as well as any dependencies you?ve introduced to run unit tests for 
the Tizen platform. Write up a well thought out list of instructions on how to 
retrieve these new dependencies and open a ticket with the Linux Foundation 
(ie. write an email to 'iotivity-helpdesk at rt.linuxfoundation.org') with 
these instructions so that once your changes are pushed to Gerrit/IoTivity Repo 
the build server does not break on your new changeset.

To Summarize:

1.       Implement Tizen cross-compilation on Ubuntu, keep list of any 
dependencies you?ve added in this process.

2.       Implement unit tests for the Tizen platform to be run on Ubuntu, keep 
list of any dependencies you?ve add in this process.

3.       Send new list of dependencies to 'iotivity-helpdesk at 
rt.linuxfoundation.org'.

4.       Push changeset for point #1. Have it reviewed, then merged.

5.       Push changeset for point #2. Have it reviewed, then merged.

If things are done in the order above, you should not run into any errors on 
the build server. Thusly, saving a lot of time.

Thanks,

Joey Morrow
From: ???(Uze Choi) [mailto:[email protected]]
Sent: Wednesday, May 20, 2015 1:03 AM
To: Morrow, Joseph L; heesung84.kim at samsung.com<mailto:heesung84.kim at 
samsung.com>; iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at 
lists.iotivity.org>; '???'
Cc: '???'; iotivity-infratructure at 
lists.iotivity.org<mailto:iotivity-infratructure at lists.iotivity.org>
Subject: RE: RE: [Iotivity-infratructure] Build check request for every commit 
for Android and Tizen platform.

Hi, Joey,

Let me summarize the current situation.

We need to enable the build checking and later the unit test checking for 
multi-platform.
Currently Ubuntu build and unit testing is done thru Jenkins build.
For the Android, Jenkins may not work.. Then who can enable to do it?
Your comment seems to point out, we need to check the build output console from 
Jenkins log and request LF to do some remedy such as NDK configuration in the 
Jenkins server for each build break.
As far as I know, we wasted so much time for Android build check in the Jenkins.
For the Tizen, this is not easy task I think from scratch. I?m not sure they 
are able to do build for Tizen platform as of now.
Every day we tested whether Tizen and Android platform build work or not which 
takes so much developer resource.
What could be solution? In my opinion, let LF enable this build check for 
multi-platform. What is your opinion?

BR, Uze Choi
From: Morrow, Joseph L [mailto:[email protected]]
Sent: Wednesday, May 20, 2015 12:43 AM
To: heesung84.kim at samsung.com<mailto:heesung84.kim at samsung.com>; ???; 
iotivity-dev at lists.iotivity.org<mailto:iotivity-dev at lists.iotivity.org>; 
???
Cc: ???; iotivity-infratructure at 
lists.iotivity.org<mailto:iotivity-infratructure at lists.iotivity.org>
Subject: RE: RE: [Iotivity-infratructure] Build check request for every commit 
for Android and Tizen platform.

Hi Kim Hee Sung,

The build server is hosted by Linux Foundation. This means that the server is 
physically with Linux Foundation. There are obvious concerns wrt. giving direct 
access to the build server to anyone.  AFAIK, the relationship of IoTivity with 
Linux Foundation is that we agree to simply create tickets (ie. write emails to 
iotivity-helpdesk at rt.linuxfoundation.org<mailto:iotivity-helpdesk at 
rt.linuxfoundation.org>) for all changes to the build server (to install the 
NDK and other things).  This gives us a proper trail of all changes that is 
closely monitored. In any other case, breakages may easily occur without a 
trail (and therefore would be hard to fix).

If you?re looking to make SConscript changes (ie. install the NDK to an End 
User?s machine automatically, all you need to do is simply edit the SConscripts 
in our repo).

Reply via email to