Issue tracking is **all** about repeatedly asking //What does this issue need to progress?// * If it hasn't been done, do it, or ask for it, or triage (classify) it accordingly. ===== High Level Goals ===== * As a Triager/Committer: Get issues **Assigned** quickly and accurately * As a Project/Maintainer: Get issues **Resolved** as quickly, accurately and completely (permanently) as possible * As a Maintainer/Contributor: * When providing a patch, no open questions about the proposed change. * No open questions about what's needed to progress the issue (what, why, when, how, where.) ===== Checklist (Definition of Done) ===== An issue is 'ready' when the major pre-requisites are satisfied: ==== A clear summary and proposal ==== * ☑ Has a Title that is clear and describes either the 'issue' (bug) or 'the proposed change' * ☑ All issue detail and metadata is 1) accurate 2) up-to-date and 3) complete. ==== A proposed change as a patch ==== * ☑ Has //one (1)// changeset (patch) * ☑ Has an //Attachment// of type: //patch// (Attachment 'Details -> Edit Attachment -> ☑ Patch) * ☑ In unified diff format. ''%%git diff%%'' is preferred, or ''%%diff -u%%''. * **All** other patches are marked //Obsolete// (Attachment 'Details' -> Edit Attachment -> ☑ Obsolete). ==== No open questions or ambiguities ==== * ☑ Has no outstanding questions or ambiguities about who, what, when, where how, or why a change is needed * The ''%%needs-qa%%'' keyword should be removed if it is set and all questions have been answered and related flags acknowledged (? -> +) ==== Has been tested ==== * ☑ Has been QA [[#Change_has_been_Tested|tested]] and confirmation that QA passed is included in the Description/Comment * The ''%%'needs-qa%%'' keyword should be removed if it is set and QA testing has been completed and confirmed. ==== Has approval, if required ==== * ☑ Has "approval", if required. Any of: * Patch has //maintainer-approval// flag set to //+// by the port MAINTAINER even if the maintainer is also the submitter * It has been > 14 days since last request for maintainer-feedback (flag) was requested (set to ?) * It has been > 14 days since last request for maintainer-approval (flag) was requested (set to ?) * Port is unmaintained (MAINTAINER=ports@%%FreeBSD%%.org) ===== General ===== * //Summary// field clearly and succinctly //summarises// describes the changeset. Eg: category/port: Additional summary tags: * DO Prepend the summary with ''%%[NEW PORT]%%'' if the changeset introduces a new port. * DONT use any other [TAGS]. Use the correct bugzilla field instead: * Attachment -> Details -> Edit Details -> maintainer-approval [+] for patches to ports you maintain * //Description// (Comment) field contains list of changes and their rationale/explanations formatted like a commit log message. See example below. * //Description// (Comment) field includes explicit confirmation that QA has been run and passes. See example below. * For port version updates, //Description// field contains a //Changelog:// line with URL pointing to changelog. See example below. category/port: * Remove files/patch- (upstreamed) [1] * Fix variable assignment (pet portlint) * Remove (fix build problem on ) Changelog: [1] Upstream reference URL (pull request, issue, mailing list) QA: * portlint: OK (looks fine.) * testport: OK (poudriere: , , tested) * maketest: OK (XXX of XXX tests PASS) * If an issue depends or blocks another, //Depends on// and/or //Blocks// fields are set correctly. * Flags have been set if appropriate. * If a security or build fix, set //merge-quarterly// to //?// so that it can be tracked. * If it needs wider ports testing by portmgr@, set //exp-run// to //?// so it can tracked. * If maintainer feedback (not approval on a patch) is required, //maintainer-feedback// is set to //?// %%<%%maintainer-email>. * If you are the maintainer of a port you are updating then set the //maintainer-approval// flag to //+// (on attachments). * If its a Security issue, ports-secteam@ is CC'd, and the //security// keyword is set. ===== Change has been Tested ===== The proposed change successfully passes Quality Assurance (QA) tests: * ''%%poudriere testport%%'' (or bulk -t) * Best: ALL supported versions & architectures * Good: All tier-1 architectures and supported versions * Minimum: Latest major release 'and' i386/amd64 * ''%%portlint -AC%%'' * Alternatively: ''%%USE_PORTLINT=yes%%'' in ''%%LOCALBASE/etc/poudriere.conf%%'', portlint output will be in poudriere.log * Bonus: Add ''%%DEVELOPER=yes%%'' is enabled in //etc/make.conf// for extra QA checks ===== Keywords ===== Issue is completely and accurately annotated with [[Bugzilla/Keywords|Bugzilla keywords]] * See also: [[https://bugs.freebsd.org/bugzilla/describekeywords.cgi|FreeBSD Bugzilla Keywords]] ===== Flags ===== ---- {{tag>HowTo Ports}}