tizen-maintain-20150413rzr
-
Upload
phil-wwwrzronlinefr -
Category
Software
-
view
36 -
download
0
Transcript of tizen-maintain-20150413rzr
Co-maintaining community's contributions
Philippe “RzR” Coval<https://wiki.tizen.org/wiki/User:Pcoval>
Copyleft: CC BY-SA 4.0+
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>
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)
Some Tizen Devices :
Tizen 3 Profiles
Tizen:Common
Mobile Wearable IVI TV
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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/
Thanks
● Tizen developers from:● Intel, Samsung, Eurogiciel and more.
● Related FLOSS communities:● Upstream projects, Brotherhood● Social events, Bloggers, IRC, etc
● You !
Q & AAsk me online !
Philippe “RzR” Coval <https://wiki.tizen.org/wiki/User:Pcoval>