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).
