Yes, this is a sub-page of my private page yet feel free to modify or add! ====== Mentor Process: New Contributor Perspective ====== ===== Steps you were asked to take ===== - "[[https://www.freebsd.org/doc/en/articles/committers-guide/conventions.html#conventions-committers|For New Committers]]" from the committer's guide - [[https://alexcabal.com/creating-the-perfect-gpg-keypair/|Additional guidance]] on PGP key creation ==== Tools to use ==== If you haven't installed these yet - ''%%ports-mgmt/portlint%%'' to sanity check ports changes - ''%%devel/arcanist%%'' to interface with [[/CodeReview|Phabricator]] / [[https://reviews.freebsd.org]] - ''%%security/gnupg%%'' to generate PGP keys and work with gpg ===== Things you were asked to care about ===== ==== Enrollment ==== - Username (unique, not too similar to exising ones) - Key-strength (ssh, PGP) * ssh-key: ''%%ssh-keygen -t ecdsa -b 512%%'' * pgp-key: ''%%gpg2 --genkey%%'' use 4096-bit and 3 years validity - [[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 ==== - 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 ==== - Provide ''%%portlint -AC%%'' output - Provide (link to) ''%%poudriere testport%%'' output - Provide ''%%make regression-test%%'' output if the port has that make target (most Python ports do) - 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) ===== - Rename %%BugZilla%% account (Preferences -> Account info) to your @freebsd.org address - Phabricator enrollment missing (i.e. register with a valid @freebsd.org account results in automatic acceptance) - [[/CodeReview]] process is missing in documentation - You can't add "Differential Revision: " to the Phabricator summary (via arcanist CLI client), yet "Differential Revision: " should be in the svn commit message. - (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 - Create a build jail (I use [[Ports/sysutils/ezjail|ezjail]]) - Create your %%FreeBSD%% user in your build jail (this is a different user-name than on the host but with the same uid) - Configure ''%%pkg%%'' so you can install software (the packages I build using poudriere) - ''%%alias svn='svnlite'%%'' (works for me so far, no need to pull in ''%%devel/subversion%%'') - Install ''%%devel/arcanist%%'', ''%%security/gnupg%%'' and ''%%ports-mgmt/portlint%%'' etc. - Follow ''%%arc%%'' configuration instructions on [[/CodeReview]] - 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 ---- {{tag>Community HowTo}}