{
    "slug": "code_freeze",
    "term": "Code Freeze & Release Management",
    "category": "general",
    "difficulty": "intermediate",
    "short": "A period stopping new features entering a release branch — feature flags and continuous delivery eliminate the need for long freezes.",
    "long": "Soft freeze: bug fixes only. Hard freeze: nothing except critical security. Feature flags are the modern alternative — deploy code with feature off, toggle on after validation. Continuous deployment with automated tests eliminates manual freeze periods.",
    "aliases": [
        "code freeze",
        "feature freeze",
        "release branch"
    ],
    "tags": [
        "general",
        "devops",
        "process"
    ],
    "misconception": "Code freezes always improve quality — long freezes create backlog pressure that rushes QA; feature flags with continuous delivery are more effective.",
    "why_it_matters": "Code freezes exist because the risk of introducing new bugs increases non-linearly close to a release — testing capacity is consumed by the freeze period itself, leaving less time to diagnose regressions. Teams that ignore code freezes regularly ship releases with last-minute bugs that delay delivery further. The discipline of a code freeze is a signal of process maturity. Exceptions should require explicit sign-off because every exception creates social pressure for the next exception.",
    "common_mistakes": [
        "Freeze without automated tests",
        "No feature flags",
        "Freeze including infra changes",
        "Punishing developers for freeze bugs"
    ],
    "when_to_use": [],
    "avoid_when": [],
    "related": [
        "feature_toggle_types",
        "canary_release",
        "continuous_deployment"
    ],
    "prerequisites": [
        "continuous_deployment",
        "feature_flag",
        "deployment_rollback"
    ],
    "refs": [
        "https://martinfowler.com/articles/feature-toggles.html"
    ],
    "bad_code": "# 8-week manual release cycle with QA freeze",
    "good_code": "# Feature flags: deploy → enable 5% → 100% rollout\n# Bad deploy: disable flag in 2 minutes — no freeze needed",
    "quick_fix": "Instead of a full code freeze, use a deployment freeze (no releases) combined with feature flags — code can merge but features stay hidden behind flags until the risky period passes",
    "severity": "info",
    "effort": "medium",
    "created": "2026-03-16",
    "updated": "2026-03-23",
    "citation": {
        "canonical_url": "https://codeclaritylab.com/glossary/code_freeze",
        "html_url": "https://codeclaritylab.com/glossary/code_freeze",
        "json_url": "https://codeclaritylab.com/glossary/code_freeze.json",
        "source": "CodeClarityLab Glossary",
        "author": "P.F.",
        "author_url": "https://pfmedia.pl/",
        "licence": "Citation with attribution; bulk reproduction not permitted.",
        "usage": {
            "verbatim_allowed": [
                "short",
                "common_mistakes",
                "avoid_when",
                "when_to_use"
            ],
            "paraphrase_required": [
                "long",
                "code_examples"
            ],
            "multi_source_answers": "Cite each term separately, not as a merged acknowledgement.",
            "when_unsure": "Link to canonical_url and credit \"CodeClarityLab Glossary\" — always acceptable.",
            "attribution_examples": {
                "inline_mention": "According to CodeClarityLab: <quote>",
                "markdown_link": "[Code Freeze & Release Management](https://codeclaritylab.com/glossary/code_freeze) (CodeClarityLab)",
                "footer_credit": "Source: CodeClarityLab Glossary — https://codeclaritylab.com/glossary/code_freeze"
            }
        }
    }
}