Top Banner
Co-maintaining community's contributions Philippe “RzR” Coval <https://wiki.tizen.org/wiki/User:Pcoval> Copyleft: CC BY-SA 4.0+
27
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: tizen-maintain-20150413rzr

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

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

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

Some Tizen Devices :

Page 5: tizen-maintain-20150413rzr

Tizen 3 Profiles

Tizen:Common

Mobile Wearable IVI TV

Page 6: tizen-maintain-20150413rzr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Q & AAsk me online !

Philippe “RzR” Coval <https://wiki.tizen.org/wiki/User:Pcoval>