tizen-maintain-20150413rzr
TRANSCRIPT
![Page 1: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/1.jpg)
Co-maintaining community's contributions
Philippe “RzR” Coval<https://wiki.tizen.org/wiki/User:Pcoval>
Copyleft: CC BY-SA 4.0+
![Page 2: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/2.jpg)
Philippe Coval
● Joined Eurogiciel to work on Tizen● FLOSS community member (MeeGo, Qt...)● Can help on any Tizen related project ;-)● <https://wiki.tizen.org/wiki/User:Pcoval>
![Page 3: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/3.jpg)
About Tizen project
● An Open source OS (Linux kernel)● For different type of devices or things● Application framework (HTML5 / Native)● Security by design● Cross architectures, technologies
● Support from industry (Tizen Association)
![Page 4: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/4.jpg)
Some Tizen Devices :
![Page 5: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/5.jpg)
Tizen 3 Profiles
Tizen:Common
Mobile Wearable IVI TV
![Page 6: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/6.jpg)
Join Tizen !
● Entry point: create account on tizen.org● Feedback welcome: forum, lists, bugtracker● Open Source & Open development (on v3)● Softwares are managed as packages (RPM)● Platform developers use those tools:
– git, gbs, gerrit, obs, zypper– Yocto alt way won't be detailed for now
![Page 7: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/7.jpg)
Open development model:
● Tizen Sterring Group: coordinates● Profiles' architects: decide, setup plans
● Release engineer: publish distro●Maintainers: submit packages
●Developers: write and share code●QA / Users: report bugs or wishes
● And/Or : community's managed contribs
![Page 8: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/8.jpg)
Tizen Community contrib repo
● Anyone can co-maintain new packages too● Benefits:
● Playground for experimentation● Share efforts ● Learn Tizen workflow faster !
● Drawback : not integrated to profiles● To be used with Tizen:Common
![Page 9: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/9.jpg)
Let's package new Software !
● Tizen uses RPM format (write spec file)● Sources are managed with git branches:
● “upstream” branch:● untouched code from upstream
● “tizen” branch: ● packaging files ● Plus patches if needed
![Page 10: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/10.jpg)
Git branches : tizen on upstream
{master}@upstream <0.4.1>
{tizen}@tizen packaging: Initial packaging on 0.4.1 Bug-Tizen: TC-41
{upstream}@tizen<upstream/0.4.1>
{master}@upstream ...
git checkout -b upstream $taggit checkout -b tizengit add packaging/*.specgit commit
![Page 11: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/11.jpg)
How to build sources ?
● Install git and gbs tools ● Configure gbs (~/.gbs.conf):
● to use Tizen:Common profile● on desired version (x86*, snapshot...)
git clone
git checkout tizen ; gbs build● Install Tizen:Common and test built rpm
![Page 12: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/12.jpg)
Add package to tizen's contrib repo
● 1. Declare package in SCM metadata file :● Join contrib subdomain (domains.yaml)● request git repo to be created (git.yaml)
● 2. Send upstream code to upstream branch● 3. Send patches for review (and merge)● 4. Submit package to contrib repo
![Page 13: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/13.jpg)
Example : iotivity
edit scm/meta/git/git-trees
(...)
T: contrib/iotivity
D: Contrib / Libraries
B: tizen
L: Apache-2.0
(...)
edit scm/meta/git/domain
(...)
D: Contrib / Libraries
N: Contrib
I: Philippe Coval <Em@il>
(…)
git clone review.tizen.org:/scm/meta/git.git
![Page 14: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/14.jpg)
How to apply SCM change
● Git rebase on origin's master branch● push changes for review:git push origin HEAD:refs/for/master
–Check status online : http://review.tizen.org
● Improve change if needed
![Page 15: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/15.jpg)
Import upstream code
● git clone gerrit.iotivity.org:/iotivity● git checkout -b upstream v0.9.1● git checkout -b tizen upstream● git push --mirror \
review.tizen.org:/contrib/iotivity
![Page 16: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/16.jpg)
Push packaging files
● git clone review.tizen.org:/contrib/iotivity● git checkout tizen● git add packaging/*.spec .gbs.conf● git commit -m “packaging: Initial on X.Y.Z”● git push origin HEAD:refs/for/tizen● Check for feedback, Improve until merged
![Page 17: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/17.jpg)
Submit package
● gbs build && gbs sr -t contrib_common● Track status on http://build.tizen.org
● Project : Contrib:Common● Check by Installing it on fresh OS image:
zypper ar http://download.tizen.org/\
live/Contrib:/Common/x86_64-wayland/Contrib:Common.repo
zypper search iotivity
zypper install iotivity && rpm -ql iotitivy
![Page 18: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/18.jpg)
What's next ?
● Promote it:● upstream (feedback is welcome)● downstream for other tizen profiles
● Maintain it:● Cooperate with upstream● Follow versions● Report issues and forward patches
![Page 19: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/19.jpg)
Maintainers duties
● Invited to interact/cooperate with:● upstream and co maintainers
● Bump versions if required● Manage downstream changes
● Where does this come from ?● Why is it in tizen branch ?● Why isn't it maintained by upstream
![Page 20: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/20.jpg)
Cooperate with Upstream project
● Forward sources' changes to upstream first:● Adopt upstream project's workflow ie:
– Open ticket on upstream's tracker● Note the ID or URL and refer to it, later
– Share patch (or push for review)● Wait for feedback / Notify in lists● Improve on feedback
![Page 21: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/21.jpg)
How to bump to latest version (1/3)
● Prefer to rebase on tags from upstream's git● Add .gbs.conf to project:
git checkout upstream ; git reset vX.Y.Z
git checkout tizen ; git rebase -i upstream● Pick all the changes from tizen branch
●Skip upstream changes(before Initial packaging for Tizen)
![Page 22: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/22.jpg)
Manage downstream changes (2/3)
● Track status from commit messages ie:● Bug-Tizen: $id / Bug: $url● Forwarded: $url / Origin: $url
● Adapt patches on conflicts● Revert or drop them if no more relevent
● Note the ids (sha1) / notify devels (bug)git push –force origin tizen:tizen
![Page 23: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/23.jpg)
Submit latest (3/3)
● Bump version in packaging/*.spec● Mention about dropped downstream changesin commit messages (ie: skip b4dc0d3 blah)
git push origin HEAD:refs/for/tizen● Improve until merged● Submit package to repo:gbs sr -t contrib_common
![Page 24: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/24.jpg)
Summary
● Tizen a project of multiple profiles● Tizen 3: Open project under open governance
● Tizen:Common is the base to work on● Open repo welcome community's contribs
● Cooperation with upstream is encouraged● Tracked changes make co-maintaince easier
![Page 25: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/25.jpg)
References
● Co Maintenance recipes:https://wiki.tizen.org/wiki/Maintain
● Community pages:https://wiki.tizen.org/wiki/Category:Community
● Platform development tips, cooperation...https://wiki.tizen.org/wiki/User:Pcoval
● Support mailing list:
https://lists.tizen.org/pipermail/dev/
![Page 26: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/26.jpg)
Thanks
● Tizen developers from:● Intel, Samsung, Eurogiciel and more.
● Related FLOSS communities:● Upstream projects, Brotherhood● Social events, Bloggers, IRC, etc
● You !
![Page 27: tizen-maintain-20150413rzr](https://reader035.vdocuments.site/reader035/viewer/2022062515/55c40ae8bb61ebc0278b4680/html5/thumbnails/27.jpg)
Q & AAsk me online !
Philippe “RzR” Coval <https://wiki.tizen.org/wiki/User:Pcoval>