@@ -39,6 +39,8 @@ This document seeks to outline how we as a community use GitHub Issues to track
3939
4040 - [ What is "Issue Sorting"?] ( #what-is-issue-sorting )
4141 - [ Issue Sorting Procedures] ( #issue-sorting-procedures )
42+ - [ Development Processes] ( #development-processes )
43+ - [ Code Review and Merging] ( #code-review-and-merging )
4244 - [ Commit Signing] ( #commit-signing )
4345 - [ Types of Issues] ( #types-of-issues )
4446 - [ Standard Issue] ( #standard-issue )
@@ -265,21 +267,92 @@ Community support can be found elsewhere, though, and we encourage you to explor
265267
266268In order to not have to manually type or copy/paste the above repeatedly, note that it's possible to add text for the most commonly-used responses via [ GitHub's "Add Saved Reply" option] [ docs-saved-reply ] .
267269
268- ## Commit Signing
270+ ## Development Processes
269271
270- For all maintainers, we require commit signing and strongly recommend it for all others wishing to contribute. More information about how to set this up within GitHub can be found here:
272+ The following are practices the conda organization encourages for feature
273+ development. While we recommend projects under the conda organization adopt
274+ these practices, they are not strictly required.
271275
272- - [ GitHub's signing commits docs] [ docs-commit-signing ]
276+ ### How should we approach feature development?
277+
278+ For new features, first open an issue if one doesn’t exist. Once the feature request
279+ has been accepted (indicated by the issue's status transitioning from "Sorting" to
280+ "Refinement"), create a specification to gather early feedback. This can include
281+ mockups, API/command references, a written plan in the issue, and sample CLI
282+ arguments (without functionality).
283+
284+ ### What is our change process?
285+
286+ For larger features, break down the work into smaller, manageable issues
287+ that are added to the backlog. As long as a feature remains on the roadmap
288+ or backlog, do not create long-lived feature branches that span multiple
289+ pull requests. Instead, you should integrate small slices of an overall
290+ feature directly into the main branch to avoid complex integration challenges.
291+
292+ ### Should we make unrelated changes at the same time?
293+
294+ When making changes, try to follow the Campsite Rule to leave things better
295+ than when you found them. You should enhance the code you encounter, even if
296+ primary goal is unrelated. This could involve refactoring small sections,
297+ improving readability, or fixing minor bugs.
298+
299+ ## Code Review and Merging
300+
301+ ### What are the review requirements?
302+
303+ #### Standard Review
304+
305+ Most code changes require one reviewer from someone on the maintainer team for
306+ the repository. Instead of waiting for someone on the team to review it,
307+ directly requesting a review from the person you previously identified to work
308+ with is preferred to optimize teamwork. If you paired with them during
309+ development, continuous review counts as this requirement.
310+
311+ #### Second Review
312+
313+ Required only when the code author or the first reviewer feels like it is
314+ necessary to get another set of eyes on a proposed change. In this case, they
315+ add someone specific through GitHub's Request Review feature with a comment on
316+ what they want the person to look for.
317+
318+ ### What are the code review best practices?
319+
320+ If you are conducting a review, adhere to these best practices:
321+
322+ - Provide comprehensive feedback in the first review to minimize review rounds
323+ - Reserve Request Changes for blocking issues (bugs or other major problems) —
324+ Select Comment for suggestions and improvements
325+ - Follow-up reviews should focus on whether requested changes resolve original
326+ comments
327+ - Code should be production-ready and maintainable when merged, but doesn't
328+ need to be perfect
329+ - If providing feedback outside the core review focus (nitpicks, tips,
330+ suggestions), clearly mark these as non-blocking comments that don't need to
331+ be addressed before merging.
332+
333+ ### How do we merge code?
334+
335+ If you are the approving reviewer (typically the first reviewer, or the second
336+ reviewer when needed) and you have completed your review and approved the
337+ changes, you should merge the code immediately to maintain development
338+ velocity.
339+
340+ Normally, we use squash and merge to keep a clean git history. If you are
341+ merging a pull request, help ensure that the pull request title is updated.
273342
274343## Types of Issues
275344
276345### Standard Issue
277346
278- TODO
347+ Standard issues represent typical bug reports, feature requests, or other work
348+ items that have a clear definition and expected outcome.
279349
280350### Epics
281351
282- TODO
352+ Epics are large work items that can be broken down into smaller, more
353+ manageable issues. They typically represent major features or significant
354+ changes that span multiple iterations or releases. Relate the smaller
355+ issues to the epic using the sub-issues feature in GitHub.
283356
284357### Spikes
285358
0 commit comments