Skip to content

Changelog & Version Tracking

This section provides comprehensive documentation for tracking changes, versions, and updates to the Danish Parliamentary Open Data API (oda.ft.dk) and its documentation.

Overview

The Danish Parliament API follows a transparent change management approach to ensure users can track API evolution, understand compatibility implications, and plan for updates effectively.

What's Tracked

  • API Changes: Schema modifications, endpoint updates, behavior changes
  • Documentation Updates: Content additions, corrections, structural improvements
  • Data Model Evolution: Entity relationships, field additions, deprecations
  • Performance Improvements: Response time enhancements, query optimizations
  • Bug Fixes: Error corrections, data integrity improvements

Versioning Strategy

API Versioning Approach

The Danish Parliament API uses a stable versioning strategy focused on backward compatibility:

Current Version

  • API Version: OData 3.0 compliant
  • Base URL: https://oda.ft.dk/api/
  • Stability: Production-ready since initial deployment
  • Compatibility Promise: Breaking changes communicated 6+ months in advance

Version Identification

# API version information is available in metadata
curl "https://oda.ft.dk/api/%24metadata"

# Service document provides versioning details
curl "https://oda.ft.dk/api/"

Documentation Versioning

Documentation follows semantic principles:

  • Major Updates: Structural reorganization, new sections
  • Minor Updates: Content additions, new examples, enhanced guides
  • Patches: Corrections, clarifications, broken link fixes

Version Tracking

# Each documentation update includes
timestamp: "2025-09-10T12:00:00Z"
type: "minor|major|patch"
scope: "api-reference|guides|examples|all"
impact: "none|low|medium|high"

Change Classification

Impact Levels

Level Description Example Notice Period
Breaking Incompatible changes requiring code updates Field removal, endpoint deprecation 6+ months
Major New functionality, significant additions New entities, expanded relationships 1 month
Minor Enhancements, additional options New query parameters, optional fields 2 weeks
Patch Bug fixes, performance improvements Data corrections, response time optimization Immediate

Change Categories

API Schema Changes

  • Entity Additions: New parliamentary data types
  • Field Extensions: Additional properties on existing entities
  • Relationship Updates: New associations between entities
  • Deprecations: Planned removal of outdated elements

Data Content Changes

  • Historical Data Updates: Corrections to parliamentary records
  • New Period Coverage: Extension of historical data range
  • Data Quality Improvements: Enhanced accuracy and completeness
  • Real-time Updates: Changes to data refresh frequency

Performance & Infrastructure

  • Response Time Improvements: Query optimization results
  • Availability Enhancements: Uptime and reliability improvements
  • Capacity Scaling: Support for increased request volumes
  • Geographic Distribution: CDN and regional optimizations

Release Notes Format

Standard Release Entry

## [Version] - YYYY-MM-DD

### Added
- New functionality and features
- Additional API endpoints or parameters
- Enhanced documentation sections

### Changed
- Modifications to existing functionality
- Updated behavior or responses
- Documentation improvements

### Deprecated
- Features marked for future removal
- Migration timeline and alternatives
- Backward compatibility notes

### Removed
- Discontinued features or endpoints
- Cleanup of deprecated elements

### Fixed
- Bug fixes and corrections
- Data quality improvements
- Performance optimizations

### Security
- Security enhancements and updates
- Vulnerability fixes

Migration Guidance

Breaking Change Process

  1. Announcement: 6+ months advance notice via multiple channels
  2. Documentation: Detailed migration guides and examples
  3. Transition Period: Parallel support for old and new versions
  4. Developer Support: Direct assistance for complex migrations
  5. Final Migration: Coordinated transition with minimal disruption

Migration Tools

# Schema comparison utilities
curl "https://oda.ft.dk/api/tools/schema-diff?from=v1&to=v2"

# Compatibility checker
curl "https://oda.ft.dk/api/tools/compatibility-check" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["your-query-examples"]}'

Migration Best Practices

For Developers

  • Test Early: Use preview endpoints during transition periods
  • Monitor Deprecation Warnings: Watch for API response headers
  • Update Gradually: Migrate non-critical functionality first
  • Maintain Fallbacks: Keep working code during transitions

For Organizations

  • Change Management: Establish internal update procedures
  • Testing Protocols: Validate changes in staging environments
  • Documentation Updates: Keep internal docs synchronized
  • Team Communication: Ensure all developers are informed

Communication Channels

Notification Methods

  1. API Headers: Deprecation warnings in response headers
  2. Documentation Updates: Prominent notices in affected sections
  3. Email Alerts: Subscription-based notifications for registered users
  4. RSS Feed: Machine-readable update notifications
  5. GitHub Issues: Technical discussions and clarifications

Subscription Options

# Subscribe to API change notifications
curl "https://oda.ft.dk/api/notifications/subscribe" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"email": "your-email@domain.com", "types": ["breaking", "major"]}'

Historical Context

API Evolution Timeline

The Danish Parliament API has evolved significantly since its initial deployment:

Historical Milestones

  • Initial Release: Established core parliamentary data access
  • OData Compliance: Standardized query interface implementation
  • Performance Optimization: Response time improvements from seconds to milliseconds
  • Data Expansion: Extension from recent to historical parliamentary data
  • Documentation Overhaul: Comprehensive guide development

Lessons Learned

  • Stability Priority: Backward compatibility over rapid iteration
  • User Communication: Early and frequent notification of changes
  • Gradual Rollouts: Phased implementations for major updates
  • Community Feedback: User input drives enhancement priorities

Best Practices for Change Tracking

For API Consumers

Monitoring Strategies

  1. Automated Testing: Regular API response validation
  2. Schema Monitoring: Track metadata changes programmatically
  3. Performance Baselines: Monitor response time variations
  4. Data Consistency Checks: Validate expected data patterns

Code Organization

// Version-aware API client example
class ParliamentAPI {
  constructor(options = {}) {
    this.baseUrl = options.baseUrl || 'https://oda.ft.dk/api/';
    this.version = options.version || 'current';
    this.deprecationHandler = options.onDeprecation || console.warn;
  }

  async request(endpoint, params) {
    const response = await fetch(`${this.baseUrl}${endpoint}`, params);

    // Check for deprecation warnings
    const deprecationHeader = response.headers.get('X-Deprecated');
    if (deprecationHeader) {
      this.deprecationHandler(`Deprecated: ${deprecationHeader}`);
    }

    return response.json();
  }
}

For Documentation Maintenance

Update Procedures

  1. Content Validation: Verify all examples work with current API
  2. Link Verification: Ensure all references remain functional
  3. Version Synchronization: Keep documentation aligned with API state
  4. User Feedback Integration: Address reported issues promptly

Quality Assurance

# Documentation build validation
mkdocs build --strict --verbose

# Link checking
mkdocs serve --dev-addr localhost:8000 &
wget --spider -r -nd -nv -o links.log localhost:8000

Quick Reference

Key Dates and Versions

Component Current Version Last Updated Next Scheduled Update
Core API OData 3.0 2025-09-10 As needed
Documentation 2.1.0 2025-09-10 Monthly
Data Coverage 1948-2025 Daily Real-time
Performance SLA 99.9% uptime Ongoing Continuous

Emergency Procedures

Critical Issue Response

  1. Issue Identification: Monitoring systems detect problems
  2. Impact Assessment: Determine scope and user effect
  3. Immediate Response: Implement fixes or rollbacks
  4. Communication: Notify users through all channels
  5. Post-Incident Review: Document lessons and improvements

Contact Information

  • Technical Issues: Create GitHub issue with detailed reproduction steps
  • Data Questions: Reference specific entities and timestamps
  • Documentation Feedback: Suggest improvements with context
  • Partnership Inquiries: Contact maintainers for collaboration

Detailed Sections


Last updated: 2025-09-10
Documentation version: 2.1.0
API version: OData 3.0 compatible