Skip to content

Conversation

millerphp
Copy link

Enhanced RSS Feeds with RFC-Specific Features

Summary

This PR adds three new RSS feed modes to the PHP wiki with enhanced RFC tracking capabilities, providing the PHP community with comprehensive feeds for staying informed about RFC developments, voting activities, and general wiki changes.

Background

Currently, the PHP wiki provides a single RSS feed that combines all wiki changes. This makes it difficult for community members to:

  • Track only RFC-related activities
  • Monitor RFC status changes (Discussion → Voting → Implemented)
  • Follow voting processes and deadlines
  • Filter out non-RFC content when focusing on language development

This enhancement was discussed on a live podcast and addresses the community's need for better RFC change tracking.

Features Added

Three Distinct Feed Modes

  1. All wiki changes (?mode=recent) - Enhanced existing feed with RFC metadata
  2. RFC-only changes (?mode=rfc-only) - New feed focused exclusively on RFC activities
  3. Non-RFC changes (?mode=non-rfc) - New feed for all non-RFC wiki content

Enhanced RFC Processing

  • Status Change Detection - Automatically detects and highlights RFC status transitions
  • Rich Metadata Extraction - Parses RFC author, version, voting deadlines, target PHP version
  • Enhanced Titles - Includes status indicators like "[Status Changed: Discussion → Voting]"
  • Detailed Descriptions - Provides context with RFC metadata and change summaries
  • Smart Categorization - Categories like rfc-status-change, rfc-voting-start, rfc-new
  • Discussion Page Tracking - Monitors RFC-related discussion pages
  • Comment Detection - Identifies likely comment additions

Feed URLs

https://wiki.php.net/feed.php?mode=recent     # All changes (default, enhanced)
https://wiki.php.net/feed.php?mode=rfc-only   # RFC changes only
https://wiki.php.net/feed.php?mode=non-rfc    # Non-RFC changes only

RFC Enhancement Controls

https://wiki.php.net/feed.php?mode=rfc-only&rfc_enhanced=1     # Enhanced features (default)
https://wiki.php.net/feed.php?mode=rfc-only&rfc_status=1       # Status change detection
https://wiki.php.net/feed.php?mode=rfc-only&rfc_discussions=1  # Discussion tracking

Example Enhanced Feed Content

RFC Status Change

<item>
  <title>RFC: Add new array functions [Status Changed: Discussion → Voting]</title>
  <description>
    RFC status changed from Discussion to Voting.
    Voting has started!
    Voting deadline: 2024-02-15

    Change summary: Added implementation details and voting section.

    RFC Details:
    • Current Status: Voting
    • Author: John Doe
    • Version: 1.2
    • Target PHP Version: 8.4
    • Voting Deadline: 2024-02-15
  </description>
  <category>rfc-status-change</category>
  <category>rfc-voting-start</category>
</item>

Technical Implementation

Files Modified

  • dokuwiki/inc/Feed/FeedCreatorOptions.php - Added RFC enhancement options and new modes
  • dokuwiki/inc/Feed/FeedCreator.php - Added RFC filtering and processing logic
  • dokuwiki/feed.php - Updated documentation for new parameters

Files Added

  • dokuwiki/inc/Feed/RFCFeedItemProcessor.php - RFC-specific processing and metadata extraction

Backward Compatibility

  • All existing feeds continue to work unchanged
  • Default behavior remains identical
  • No breaking changes to existing URLs
  • Existing caching system preserved and enhanced
  • All feed formats (RSS, Atom) supported

Benefits

For RFC Authors

  • Get notified when RFCs receive comments
  • Track status changes and voting progress
  • Monitor discussion activity across related pages

For PHP Community

  • Stay informed about RFC developments without noise
  • Follow voting processes in real-time
  • Track implementation progress with rich context

For Tools and Aggregators

  • Rich categorization enables intelligent filtering
  • Enhanced metadata supports better presentation
  • Separate feeds allow targeted monitoring

Testing

The implementation includes comprehensive RFC detection and processing:

  • Namespace-based RFC identification (rfc:* pages)
  • ACL-based permission checking
  • Discussion page pattern matching
  • Content parsing for status and metadata
  • All existing DokuWiki functionality preserved

Impact

This enhancement provides the PHP community with the RSS feed functionality discussed in recent podcasts, enabling better tracking of RFC activities and more informed participation in PHP's development process.

@derickr
Copy link
Member

derickr commented Oct 1, 2025

I think this would be good to have, but we don't "own" the wiki software. It is dokuwiki, and we really shouldn't be patching the core system. (We make an exception for the doodle plugin, which is no longer maintained).

@millerphp
Copy link
Author

i wonder if this could be a separated plugin perhaps somehow? i can't actually find one for docuwiki that does it. i can't see a way of hooking into the feed without directly changing dokuwiki source (open to ideas and happy to work with people to make it happen)

Copy link
Member

@derickr derickr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks pretty good, but I've some comments, and suggested changes.

It would also be lovely to see a fully generated feed.


## Summary

This PR adds three new RSS feed modes to the PHP wiki with enhanced RFC tracking capabilities, providing the PHP community with comprehensive feeds for staying informed about RFC developments, voting activities, and general wiki changes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this DESCRIPTION.md file shouldn't be in the PR?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct - this was me planning how to describe it for the pr - will remove.

<item>
<title>RFC: Add new array functions [Status Changed: Discussion → Voting]</title>
<description>
RFC status changed from Discussion to Voting.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RSS feed item's content should be in HTML. Right now, my RSS feed reader would just cobble everything together in one line (like HTML and XML would). Changing the content of each item to properly marked up HTML (with escaping, if needed), is probably wise to do.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh interesting - i thought it was XML still - will change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants