<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6" -->

---
title: The Block and Tackle of Django's Code of Conduct Working...
description: Django's Code of Conduct Working Group details the technical and procedural mechanics behind adopting Contributor Covenant 3.0 in 2026, including governance...
canonical: https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The Block and Tackle of Django's Code of Conduct Working Group | daily.dev
og:description: Django's Code of Conduct Working Group details the technical and procedural mechanics behind adopting Contributor Covenant 3.0 in 2026, including governance...
og:url: https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6
og:image: https://api.daily.dev/og/posts/GDiL4B5t6.png
og:image:alt: The Block and Tackle of Django's Code of Conduct Working Group
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The Block and Tackle of Django's Code of Conduct Working Group

**[Django](https://daily.dev/sources/django)** · 12 min read · 0 upvotes · 0 comments

## Summary

Django's Code of Conduct Working Group details the technical and procedural mechanics behind adopting Contributor Covenant 3.0 in 2026, including governance splits between the working group and DSF board, a GitHub CODEOWNERS-enforced approval process, a 30-day public comment period automated via a GitHub Action, an auto-generated changelog documenting rationale for every decision, and a three-spreadsheet system (Report Tracker, Person Identity Key, Public Tracker) using randomly generated code names to track violation reports while protecting identities. Templates and scripts are shared publicly under CC BY 3.0 for other projects to fork.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.djangoproject.com/weblog/2026/aug/24/coc-block-tackle>

## Questions this post answers

### How does Django enforce that only the board can approve changes to its Code of Conduct text?

Django uses a two-line CODEOWNERS file in its code-of-conduct GitHub repository: one line requires the coc-committee team's review on every file, and a second line adds the dsf-board team as a required reviewer specifically for CODE_OF_CONDUCT.md. GitHub then refuses to merge any pull request touching that file unless both teams approve, turning the governance policy into something mechanically enforced rather than trusted to memory.

_Teams designing tiered approval workflows can find similar governance breakdowns on daily.dev._

### How long did it take Django to adopt Contributor Covenant 3.0?

The rewrite took about three months from start to finish. PR #68 first brought the documents into git on January 10, 2026, PR #91 merged the main policy rewrite on March 16 with +1,475/-790 lines, and PR #97 formally adopted Contributor Covenant 3 on April 15 with a smaller +217/-90 change. Most of that time was spent on the required public comment period rather than actual writing.

_daily.dev helps maintainers track how other projects structure large governance rewrites._

### How do open source projects track code of conduct violation reports without exposing real identities?

Django's Code of Conduct Working Group splits records across three spreadsheets with different access levels. The Report Tracker logs cases using randomly generated code names like 'home shelf' instead of real names; a separate, more restricted Person Identity Key is the only sheet mapping code names to real identities; and a Public Tracker pulls only aggregate annual stats via IMPORTRANGE for public disclosure.

_daily.dev surfaces practical playbooks like this for teams building their own reporting processes._

## Similar posts on daily.dev

- [Plan to Adopt Contributor Covenant 3 as Django’s New Code of Conduct](https://daily.dev/posts/plan-to-adopt-contributor-covenant-3-as-django-s-new-code-of-conduct-xcdgjhv9j) · Django · 0 upvotes · 0 comments
- [Django Code of Conduct Transparency Report 2025](https://daily.dev/posts/django-code-of-conduct-transparency-report-2025-kmhpzz4xi) · Django · 0 upvotes · 0 comments
- [Contributor Covenant, Security Team Expansion, and Django 6.1 Updates](https://daily.dev/posts/contributor-covenant-security-team-expansion-and-django-6-1-updates-6mw1ooook) · Django News · 0 upvotes · 0 comments
- [Issue 356: New technical governance approved for Django](https://daily.dev/posts/issue-356-new-technical-governance-approved-for-django-r34qhdacx) · Django News · 0 upvotes · 0 comments
- [One year with Codeberg — 2026 — Blog — GNU Guix](https://daily.dev/posts/one-year-with-codeberg-2026-blog-gnu-guix-d0b0aqlh0) · Lobsters · 0 upvotes · 0 comments

---

Tags: [#open-source](https://daily.dev/tags/open-source), [#community](https://daily.dev/tags/community), [#django](https://daily.dev/tags/django), [#github-actions](https://daily.dev/tags/github-actions)

[View this post on daily.dev](https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The Block and Tackle of Django's Code of Conduct Working Group","url":"https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6"},"datePublished":"2026-08-24T14:05:05.508Z","dateModified":"2026-08-24T14:05:28.015Z","description":"Django's Code of Conduct Working Group details the technical and procedural mechanics behind adopting Contributor Covenant 3.0 in 2026, including governance...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/71538c3530bf6c6bbacb396cf5ffc721?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/71538c3530bf6c6bbacb396cf5ffc721?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Django","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Django","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/4a658d547a52423e99fe641ecc576195","url":"https://daily.dev/sources/django"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"open-source,community,django,github-actions","timeRequired":"PT12M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Django","item":"https://daily.dev/sources/django"},{"@type":"ListItem","position":3,"name":"The Block and Tackle of Django's Code of Conduct Working Group"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/the-block-and-tackle-of-django-s-code-of-conduct-working-group-gdil4b5t6#faq","mainEntity":[{"@type":"Question","name":"How does Django enforce that only the board can approve changes to its Code of Conduct text?","acceptedAnswer":{"@type":"Answer","text":"Django uses a two-line CODEOWNERS file in its code-of-conduct GitHub repository: one line requires the coc-committee team's review on every file, and a second line adds the dsf-board team as a required reviewer specifically for CODE_OF_CONDUCT.md. GitHub then refuses to merge any pull request touching that file unless both teams approve, turning the governance policy into something mechanically enforced rather than trusted to memory. Teams designing tiered approval workflows can find similar governance breakdowns on daily.dev."}},{"@type":"Question","name":"How long did it take Django to adopt Contributor Covenant 3.0?","acceptedAnswer":{"@type":"Answer","text":"The rewrite took about three months from start to finish. PR #68 first brought the documents into git on January 10, 2026, PR #91 merged the main policy rewrite on March 16 with +1,475/-790 lines, and PR #97 formally adopted Contributor Covenant 3 on April 15 with a smaller +217/-90 change. Most of that time was spent on the required public comment period rather than actual writing. daily.dev helps maintainers track how other projects structure large governance rewrites."}},{"@type":"Question","name":"How do open source projects track code of conduct violation reports without exposing real identities?","acceptedAnswer":{"@type":"Answer","text":"Django's Code of Conduct Working Group splits records across three spreadsheets with different access levels. The Report Tracker logs cases using randomly generated code names like 'home shelf' instead of real names; a separate, more restricted Person Identity Key is the only sheet mapping code names to real identities; and a Public Tracker pulls only aggregate annual stats via IMPORTRANGE for public disclosure. daily.dev surfaces practical playbooks like this for teams building their own reporting processes."}}]}
```

