Yes, this is a sub-page of my private page yet feel free to modify or add! <<TableOfContents(2)>> = Mentor Process: New Contributor Perspective = == Steps you were asked to take == 1. "[[https://www.freebsd.org/doc/en/articles/committers-guide/conventions.html#conventions-committers|For New Committers]]" from the committer's guide 1. [[https://alexcabal.com/creating-the-perfect-gpg-keypair/|Additional guidance]] on PGP key creation === Tools to use === If you haven't installed these yet 1. `ports-mgmt/portlint` to sanity check ports changes 1. `devel/arcanist` to interface with [[CodeReview|Phabricator]] / [[https://reviews.freebsd.org]] 1. `security/gnupg` to generate PGP keys and work with gpg == Things you were asked to care about == === Enrollment === 1. Username (unique, not too similar to exising ones) 1. Key-strength (ssh, PGP) * ssh-key: `ssh-keygen -t ecdsa -b 512` * pgp-key: `gpg2 --genkey` use 4096-bit and 3 years validity 1. [[https://alexcabal.com/creating-the-perfect-gpg-keypair/|Additional info]] in PGP key (photo, other email-addresses) * Create a revocation key and a subkey * Publish your subkey not your primary === Porting === 1. Re-roll patches with `make makepatch` when necessary yet retain timestamps and possible comment preamble in the diffs (tip: move existing patches to orig.files so you can compare) === Reviews === 1. Provide `portlint -AC` output 1. Provide (link to) `poudriere testport` output 1. Provide `make regression-test` output if the port has that make target (most Python ports do) 1. Summary must adhere to [[https://www.freebsd.org/doc/en_US.ISO8859-1/articles/committers-guide/commit-log-message.html|commit message format]] * Itemize changes (with intents and rationale) in commit log * Add the "Differential Revision: <full url>" line in svn commit message, so Phabricator closes the review automatically * Review Summary should be something like: {{{ Proposed commit log: ``` cat/port: Short summary (<50 chars) * Itemize changes * Itemize changes [with short rationale if necessary] Optional explanation about the change itemized above, so that people are super clear on what, why, how, where, when. * Itemize changes [1] [1] with references if necessary Metadata: values Metadata: values Metadata: values ``` }}} == Thoughts during the process as they come up (thoughtstream) == 1. Rename !BugZilla account (Preferences -> Account info) to your @freebsd.org address 1. Phabricator enrollment missing (i.e. register with a valid @freebsd.org account results in automatic acceptance) 1. [[CodeReview]] process is missing in documentation 1. You can't add "Differential Revision: " to the Phabricator summary (via arcanist CLI client), yet "Differential Revision: " should be in the svn commit message. 1. (KK Edit: Add it via WWW UI) = Port committer tasks = == How to setup your environment == I have decided to make do porting work in a [[https://www.freebsd.org/cgi/man.cgi?query=jail|jail]], I call this my `build` jail. Setting yourself up 1. Create a build jail (I use [[ Ports/sysutils/ezjail | ezjail ]]) 1. Create your FreeBSD user in your build jail (this is a different user-name than on the host but with the same uid) 1. Configure `pkg` so you can install software (the packages I build using poudriere) 1. `alias svn='svnlite'` (works for me so far, no need to pull in `devel/subversion`) 1. Install `devel/arcanist`, `security/gnupg` and `ports-mgmt/portlint` etc. 1. Follow `arc` configuration instructions on [[CodeReview]] 1. Pull base, ports and doc from svn (see both [[https://www.freebsd.org/doc/en/articles/committers-guide/subversion-primer.html|Subversion Primer]] ''and'' [[PortsSubversionPrimer|Ports Subversion Primer]]) Now you're ready to perform the [[https://www.freebsd.org/doc/en/articles/committers-guide/conventions.html#conventions-committers|For New Committers]] tasks ---- CategoryCommunity CategoryHowTo