User Tools

Site Tools


agl-distro:contributing

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
agl-distro:contributing [2016/10/05 12:24]
dominig [Prepare to push changes ni Gerrit]
agl-distro:contributing [2020/07/10 21:02] (current)
jsmoeller
Line 1: Line 1:
 ====== Contributing to the AGL Distro ====== ====== Contributing to the AGL Distro ======
  
-The AGL community appreciates feedback, ideas, suggestion, bugs and documentation just as much as code. Please join the irc conversation at the #automotive channel on irc.freenode.net and our [[http://lists.linuxfoundation.org/mailman/listinfo/​automotive-discussions|mailing list]].+The AGL community appreciates feedback, ideas, suggestion, bugs and documentation just as much as code. Please join the irc conversation at the #automotive channel on irc.freenode.net and our [[https://lists.automotivelinux.org/g/agl-dev-community|mailing list]].
  
 ===== Contributing Code ===== ===== Contributing Code =====
Line 7: Line 7:
 We use Gerrit to track and review changes to AGL software (i.e. projects at [[https://​gerrit.automotivelinux.org/​gerrit/#/​admin/​projects/​|gerrit.automotivelinux.org]]). We use Gerrit to track and review changes to AGL software (i.e. projects at [[https://​gerrit.automotivelinux.org/​gerrit/#/​admin/​projects/​|gerrit.automotivelinux.org]]).
  
-<​del>​If you would like to contribute any changes you will need set up an account ​at [[https://dev.automotivelinux.org/?​q=user/​register|dev.automotivelinux.org]]</​del>​(deprecated,​ migration in progress)+Create ​an account ​on [[https://identity.linuxfoundation.org/|identity.linuxfoundation.org]] ​to get started.
  
-**Migration in progress: create an account ​on [[https://identity.linuxfoundation.org/|identity.linuxfoundation.org]] with same userid/​email.**+The initial setup for gerrit is described very well on the [[https://www.mediawiki.org/wiki/​Gerrit/​Tutorial|Gerrit Tutorial from mediawiki]] ​Just apply the steps likewise on git.automotivelinux.org .
  
 ---- ----
Line 22: Line 22:
   - [[https://​gerrit.automotivelinux.org/​gerrit/#/​admin/​projects/​src | src ]] - contains source code repositories where AGL is the upstream. This code is officially part of the AGL distribution.   - [[https://​gerrit.automotivelinux.org/​gerrit/#/​admin/​projects/​src | src ]] - contains source code repositories where AGL is the upstream. This code is officially part of the AGL distribution.
   - [[https://​gerrit.automotivelinux.org/​gerrit/#/​admin/​projects/​staging | staging]] - contains source code repositories where AGL developers can work on new features or components that can eventually be included in the AGL distribution. ​   - [[https://​gerrit.automotivelinux.org/​gerrit/#/​admin/​projects/​staging | staging]] - contains source code repositories where AGL developers can work on new features or components that can eventually be included in the AGL distribution. ​
 +
 +==== Git repository requests ====
  
 Developers may request a new project to be set up in the src or staging repository by submitting a [[https://​jira.automotivelinux.org | Jira ticket]]. Ticket type should be a "​Task"​ Developers may request a new project to be set up in the src or staging repository by submitting a [[https://​jira.automotivelinux.org | Jira ticket]]. Ticket type should be a "​Task"​
Line 33: Line 35:
 for the repo called "<​name>​-owners"​ . for the repo called "<​name>​-owners"​ .
  
-=== Access Control ===+==== Access Control ​====
  
 Access control to gerrit is defined in this [[https://​docs.google.com/​spreadsheets/​d/​1lA_B7LEwn_VyJy_JplRNe9AOKTRGAMtpJ66JHm-vJCM/​pubhtml?​gid=0&​single=true | google doc spreadsheet]]. ​ Access control to gerrit is defined in this [[https://​docs.google.com/​spreadsheets/​d/​1lA_B7LEwn_VyJy_JplRNe9AOKTRGAMtpJ66JHm-vJCM/​pubhtml?​gid=0&​single=true | google doc spreadsheet]]. ​
Line 91: Line 93:
   - **App Developer (AD)** - Someone who is developing applications to be used with AGL. The AD is assumed to need no knowledge of Yocto and relies on an SDK.    - **App Developer (AD)** - Someone who is developing applications to be used with AGL. The AD is assumed to need no knowledge of Yocto and relies on an SDK. 
   - **Registered Developer (RD)** - Someone who wants to contribute code to AGL but may not be affiliated with a subsystem   - **Registered Developer (RD)** - Someone who wants to contribute code to AGL but may not be affiliated with a subsystem
-  - <del> **Subsystem Developer (SD)** - Someone who actively develops code for a particular subsystem of AGL. The person can be a SD for one subsystem and Registered Developer for another Subsystem</​del>​ 
   - **Subsystem Maintainer (SM)** - A SM is the same as Subsystem Developer but with additional privileges that allow him to submit changes to the master branch, tracking branch, or a maintenance branch   - **Subsystem Maintainer (SM)** - A SM is the same as Subsystem Developer but with additional privileges that allow him to submit changes to the master branch, tracking branch, or a maintenance branch
   - **System Integrator (SI)**   - **System Integrator (SI)**
Line 105: Line 106:
     - AGL is using code back-ported from later versions of a new component or part of a component (e.g., MOST USB driver in mainline kernel tree)     - AGL is using code back-ported from later versions of a new component or part of a component (e.g., MOST USB driver in mainline kernel tree)
     - AGL is maintaining code out of the upstream tree which may or may not be accepted upstream (this should be rare since it implies a fork of the upstream code. Patches are preferable)     - AGL is maintaining code out of the upstream tree which may or may not be accepted upstream (this should be rare since it implies a fork of the upstream code. Patches are preferable)
 +
 +
 +===== Prepare to push changes in Gerrit =====
 +By default the repo tool will have cloned the git repos with http for fetch and ssh to push. 
 +   #cd meta-agl
 +   #git remote -v
 +       ​agl https://​gerrit.automotivelinux.org/​gerrit/​AGL/​meta-agl (fetch)
 +       ​agl ssh://​gerrit.automotivelinux.org:​29418/​AGL/​meta-agl (push)
 +
 +
 +If you want to use your ssh config, add your gerrit user accout to your ssh config file like:
 +   #cat ~/​.ssh/​config
 +     Host gerrit.automotivelinux.org
 +     User XXXMyNameXXX
 +
 +Note: you still need to enter you ssh public key in Gerrit. You can find a HowTo [[ https://​www.mediawiki.org/​wiki/​Gerrit/​Tutorial#​Set_Up_SSH_Keys_in_Gerrit | here ]]
 +
 +===== Push changes for review to Gerrit ====
 +Please sign you commit before you submit the change (otherwise it will not be accepted by gerrit):
 +   git commit --signoff
 +
 +  * Then either use plain git to push:
 +
 +   git push agl HEAD:​refs/​for/​master
 +   git push <​remote>​ HEAD:​refs/​for/<​targetbranch>​
 +
 +  * **Or** for more convenience,​ install "​git-review"​ and instead of git push use:
 +
 +   # first time only
 +   git review -s  ​
 +
 +   # then to push use
 +   git review
 +
 +Find more details in these guides:
 +
 +  * [[https://​gerrit.automotivelinux.org/​gerrit/​Documentation/​user-upload.html|official gerrit guide]]
 +  * [[https://​source.android.com/​source/​developing.html#​git-and-repo-cheatsheet|git and repo cheatsheet]]
 +  * [[https://​education.github.com/​git-cheat-sheet-education.pdf|git cheatsheet from github]]
 +  * [[https://​www.mediawiki.org/​wiki/​User:​Wctaiwan/​Gerrit_cheatsheet|Gerrit cheatsheet from mediawiki]]
 +  * [[https://​wiki.opendaylight.org/​view/​GIT_Cheat_Sheet|Git cheatsheet from opendaylight.org]]
 +  ​
 +===== Personal Sandbox Projects in Gerrit ====
 +
 +First time:
 +   ​meta-agl>​ git push gerrit testsandbox:​refs/​heads/​sandbox/​jsmoeller/​test
 +  Total 0 (delta 0), reused 0 (delta 0)
 +  remote: Processing changes: closed: 114, refs: 1, done    ​
 +  To ssh://​jsmoeller@gerrit.automotivelinux.org:​29418/​AGL/​meta-agl
 +   * [new branch] ​     testsandbox -> sandbox/​jsmoeller/​test''​
 +
 +Push to personal branch:
 +  git push gerrit testsandbox:​refs/​for/​sandbox/​jsmoeller/​test
 +  Counting objects: 2, Fertig.
 +  Delta compression using up to 8 threads.
 +  Compressing:​ 100% (2/2), Fertig.
 +  Writing objects: 100% (2/2), 327 bytes | 0 bytes/s, Fertig.
 +  Total 2 (delta 1), reused 0 (delta 0)
 +  remote: Resolving deltas: 100% (1/1)
 +  remote: Processing changes: new: 1, refs: 1, done    ​
 +  remote: ​
 +  remote: New Changes:
 +  remote: ​  ​https://​gerrit.automotivelinux.org/​gerrit/​5643 test1
 +  remote: ​
 +  To ssh://​jsmoeller@gerrit.automotivelinux.org:​29418/​AGL/​meta-agl
 +   * [new branch] ​     testsandbox -> refs/​for/​sandbox/​jsmoeller/​test
 +  ​
 +  ​
 +
 +
 +----
 +
 +----
  
 ==== Notes on Use Cases ==== ==== Notes on Use Cases ====
Line 166: Line 240:
   - As a RM I want to make patch releases to stable releases   - As a RM I want to make patch releases to stable releases
  
- 
-===== Prepare to push changes ni Gerrit ===== 
-By default the repo tool will have clone git repo with http. You need to change the git setting to use ssh. 
-From meta-agl directory, use the command: 
-   git remote set-url agl ssh://​YourGerritID@gerrit.automotivelinux.org:​29418/​AGL/​meta-agl 
-Then you still need to enter you ssh public key in Gerrit. You can find a HowTo [[ https://​www.mediawiki.org/​wiki/​Gerrit/​Tutorial#​Set_Up_SSH_Keys_in_Gerrit | here ]] 
- 
-===== Push changes for review to Gerrit ==== 
-Please sign you commit before you submit the change (otherwise it will not be accepted by gerrit): 
-   git commit --signoff 
-Then push: 
-   git push agl HEAD:​refs/​for/​master 
-Find more details in the [[https://​gerrit.automotivelinux.org/​gerrit/​Documentation/​user-upload.html|official gerrit guide]] 
-  ​ 
-===== Personal Sandbox Projects in Gerrit ==== 
- 
-First time: 
-   ​meta-agl>​ git push gerrit testsandbox:​refs/​heads/​sandbox/​jsmoeller/​test 
-  Total 0 (delta 0), reused 0 (delta 0) 
-  remote: Processing changes: closed: 114, refs: 1, done    ​ 
-  To ssh://​jsmoeller@gerrit.automotivelinux.org:​29418/​AGL/​meta-agl 
-   * [new branch] ​     testsandbox -> sandbox/​jsmoeller/​test''​ 
- 
-Push to personal branch: 
-  git push gerrit testsandbox:​refs/​for/​sandbox/​jsmoeller/​test 
-  Counting objects: 2, Fertig. 
-  Delta compression using up to 8 threads. 
-  Compressing:​ 100% (2/2), Fertig. 
-  Writing objects: 100% (2/2), 327 bytes | 0 bytes/s, Fertig. 
-  Total 2 (delta 1), reused 0 (delta 0) 
-  remote: Resolving deltas: 100% (1/1) 
-  remote: Processing changes: new: 1, refs: 1, done    ​ 
-  remote: ​ 
-  remote: New Changes: 
-  remote: ​  ​https://​gerrit.automotivelinux.org/​gerrit/​5643 test1 
-  remote: ​ 
-  To ssh://​jsmoeller@gerrit.automotivelinux.org:​29418/​AGL/​meta-agl 
-   * [new branch] ​     testsandbox -> refs/​for/​sandbox/​jsmoeller/​test 
-  ​ 
-  ​ 
-  ​ 
agl-distro/contributing.1475670260.txt.gz ยท Last modified: 2016/10/05 12:24 by dominig