// SPDX-License-Identifier: CC-BY-SA-4.0
= CHANGELOG

<!--
SPDX-License-Identifier: MPL-2.0
SPDX-FileCopyrightText: 2025 The Rhodium Standard Contributors
-->

All notable changes to the Rhodium Standard Repositories project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

== [Unreleased]

=== In Progress
- Haskell registry implementation
- Additional example repositories (web, service)
- Repository templates for all major languages
- VS Code / Vim / Emacs extensions

== [1.0.0] - 2025-11-28

=== Added - Core Framework
- **RSR Audit System**: Comprehensive compliance checker with 100+ automated tests
  - Text, JSON, and HTML output formats
  - Exit codes for CI/CD integration (0=Gold, 1=Silver, 2=Bronze, 3=Non-Compliant)
  - Six major compliance categories validated
- **CLAUDE.md**: Complete AI assistant guidance for working with RSR repositories
- **COMPLIANCE_CHECKLIST.md**: Detailed 150+ point compliance checklist
- **RSR-AUDIT-GUIDE.md**: Quick reference for using the audit system
- **RSR-AUDIT-SHOWCASE.md**: Comprehensive showcase of audit capabilities

=== Added - Documentation
- **README.adoc**: Comprehensive project documentation in AsciiDoc format
- **LICENSE.txt**: Dual MIT + Palimpsest-0.8 license
- **SECURITY.md**: Security policy with 10+ dimension security architecture
- **MAINTAINERS.md**: Maintainer attribution and TPCF progression path
- **GOVERNANCE.adoc**: Complete governance structure with TPCF framework
- **CODE_OF_CONDUCT.adoc**: Community standards and enforcement procedures
- **CONTRIBUTING.adoc**: Contribution guidelines with tri-perimeter model
- **FUNDING.yml**: Funding transparency configuration
- **CHANGELOG.md**: This file - semantic versioning changelog

=== Added - .well-known/ Directory
- **security.txt**: RFC 9116 compliant security contact information
- **ai.txt**: AI training and crawling policies (open-source allowed, proprietary denied)
- **humans.txt**: Attribution, team information, and project values
- **consent-required.txt**: HTTP 430 consent protocol implementation
- **provenance.json**: JSON-LD provenance chains and verifiable credentials

=== Added - Git Configuration
- **.gitignore**: Comprehensive ignore patterns for multi-language projects
- **.gitattributes**: Line ending normalization and export-ignore directives

=== Added - Examples
- **rhodium-minimal**: Minimal CLI tool example achieving Silver+ RSR compliance (95.59%)
  - Rust-based for memory safety
  - Complete TPCF documentation
  - SPDX headers on all source files
  - .well-known/ directory with all required files
  - Comprehensive governance (GOVERNANCE.md)
  - Funding transparency (FUNDING.yml)
  - GitLab CI/CD integration

=== Added - Design Documents
- **docs/haskell-registry-design.md**: Complete specification for production Haskell validation service
  - Ed25519 cryptographic attestations
  - JSON-LD attestation format
  - PostgreSQL persistence schema
  - Servant type-safe REST API
  - shields.io badge integration

=== Added - Manifesto & Philosophy
- **CCCP-MANIFESTO.md**: Campaign for Cooler Coding and Programming philosophy
- **PROJECT-STATUS.md**: Current development status and roadmap

=== Changed
- **Audit script**: Removed `-e` from `set` options to allow complete audits without early exit
- **flake.lock**: Added to rhodium-minimal for Nix reproducibility

=== Fixed
- **rsr-audit.sh**: Fixed early exit bug preventing completion of full compliance scoring
- **Git workflow**: Corrected pathspec issues during commit operations

== [0.2.0] - 2025-11-22 (Pre-release)

=== Added
- Initial RSR audit script (prototype)
- CCCP manifesto draft
- Project status tracking
- Template structures

=== Changed
- Refined RSR compliance criteria
- Updated CLAUDE.md with comprehensive guidance

== [0.1.0] - 2025-01-15 (Initial Commit)

=== Added
- Project initialization
- Basic repository structure
- Initial documentation framework
- License selection (MIT + Palimpsest)

---

== Version History Legend

=== Types of Changes
- `Added` - New features or capabilities
- `Changed` - Changes in existing functionality
- `Deprecated` - Soon-to-be removed features (with migration path)
- `Removed` - Removed features (with justification)
- `Fixed` - Bug fixes
- `Security` - Security vulnerability fixes (with CVE if applicable)

=== Semantic Versioning

Given a version number MAJOR.MINOR.PATCH:

- **MAJOR**: Incompatible API changes or architectural overhauls
- **MINOR**: Backwards-compatible functionality additions
- **PATCH**: Backwards-compatible bug fixes

=== Special Version Tags

- `[Unreleased]`: Changes in main branch not yet released
- `[X.Y.Z] - YYYY-MM-DD`: Released versions with date
- `(Pre-release)`: Alpha/beta releases for testing
- `(Security Release)`: Urgent security fixes
- `(LTS)`: Long-term support versions

---

== Migration Guides

=== Migrating to 1.0.0

No migration needed - this is the first stable release.

For projects adopting RSR:
1. Review COMPLIANCE_CHECKLIST.md
2. Run `./rsr-audit.sh /path/to/your/repo`
3. Address failed checks systematically
4. Aim for Bronze (75%) minimum, Silver (90%) for production
5. Consider Gold (100%) for critical infrastructure

---

== Deprecation Policy

Per RSR standards:
- Features are deprecated one version ahead
- Deprecation warnings in code and docs
- Migration guide provided
- Minimum 3-month notice before removal
- Security exceptions may bypass this policy

---

== Security Releases

Security vulnerabilities will be disclosed in this CHANGELOG with:
- CVE identifier (if assigned)
- Severity level (Critical/High/Medium/Low)
- Affected versions
- Fixed version
- Credit to reporter (if consented)

See SECURITY.md for our coordinated disclosure policy.

---

== Contributing to CHANGELOG

When opening a merge request, add your changes to the `[Unreleased]` section:

[source,markdown]
----
=== Added
- Description of new feature (#MR-number) @contributor

=== Fixed
- Description of bug fix (#issue-number, #MR-number) @contributor
[source,]
----

Maintainers will move entries to version sections during release.

---

== Release Checklist

Before releasing a new version, maintainers must:

- [ ] Update version in all relevant files
- [ ] Move `[Unreleased]` to new version section with date
- [ ] Generate git tag: `git tag -s v1.0.0 -m "Release v1.0.0"`
- [ ] Update RSR compliance badge (if changed)
- [ ] Run full audit: `just validate`
- [ ] Build all examples: `just build-all`
- [ ] Generate SBOM: `just sbom-generate`
- [ ] Update documentation if needed
- [ ] Announce on Matrix/GitLab/social media
- [ ] Close related issues and milestone

---

**Changelog Maintainer**: Core Team
**Last Updated**: 2025-11-28
**Format Version**: 1.0.0 (Keep a Changelog)
**Versioning**: SemVer 2.0.0

_"Every change is a choice. Every choice shapes the future. Choose carefully, document clearly."_

— The Rhodium Standard
