Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Bug Report
description: Report a bug or unexpected behavior
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to report a bug!
Please fill out the sections below to help us understand and reproduce the issue.

- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of the bug
placeholder: Describe what went wrong...
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Parse this feed: `...`
2. Access this field: `...`
3. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
placeholder: Describe what you expected...
validations:
required: true

- type: textarea
id: feed-sample
attributes:
label: Feed Sample
description: |
If applicable, provide a minimal feed sample that demonstrates the issue.
Please remove any sensitive information.
render: xml
placeholder: |
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Example</title>
<!-- minimal reproduction case -->
</channel>
</rss>
validations:
required: false

- type: dropdown
id: platform
attributes:
label: Platform
description: Which platform/binding are you using?
options:
- Rust (feedparser-rs-core)
- Node.js (feedparser-rs npm)
- Python (feedparser-rs-py)
validations:
required: true

- type: input
id: version
attributes:
label: Version
description: Which version of feedparser-rs are you using?
placeholder: "0.1.0"
validations:
required: true

- type: textarea
id: environment
attributes:
label: Environment
description: |
Please provide relevant environment information:
placeholder: |
- OS: macOS 14.0
- Rust: 1.88.0
- Node.js: 20.10.0 (if applicable)
- Python: 3.12 (if applicable)
validations:
required: false

- type: textarea
id: additional
attributes:
label: Additional Context
description: Any other context about the problem (logs, screenshots, related issues)
validations:
required: false
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Question or Discussion
url: https://github.com/bug-ops/feedparser-rs/discussions
about: Ask questions or start a discussion about feedparser-rs
- name: Security Vulnerability
url: https://github.com/bug-ops/feedparser-rs/security/advisories/new
about: Report a security vulnerability (please do not use public issues)
87 changes: 87 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Feature Request
description: Suggest a new feature or enhancement
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thank you for suggesting a feature!
Please describe your idea clearly so we can evaluate and prioritize it.

- type: textarea
id: problem
attributes:
label: Problem Statement
description: |
Is your feature request related to a problem? Please describe.
A clear description of what the problem is.
placeholder: I'm always frustrated when...
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: A clear and concise description of what you want to happen
placeholder: It would be great if feedparser-rs could...
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Any alternative solutions or workarounds you've considered
placeholder: I've tried... but it doesn't work because...
validations:
required: false

- type: dropdown
id: platform
attributes:
label: Affected Platform
description: Which platform(s) would benefit from this feature?
multiple: true
options:
- Rust (feedparser-rs-core)
- Node.js (feedparser-rs npm)
- Python (feedparser-rs-py)
- All platforms
validations:
required: true

- type: dropdown
id: feedparser-compat
attributes:
label: feedparser Compatibility
description: Is this feature present in Python feedparser?
options:
- Yes, feedparser has this feature
- No, this is a new feature
- Not sure
validations:
required: true

- type: textarea
id: api
attributes:
label: Proposed API
description: |
If applicable, describe or show what the API might look like
render: rust
placeholder: |
// Example API usage
let feed = parse_with_options(xml, Options {
new_feature: true,
})?;
validations:
required: false

- type: textarea
id: additional
attributes:
label: Additional Context
description: Any other context, links, or screenshots about the feature request
validations:
required: false
50 changes: 50 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
## Summary

<!-- Brief description of the changes in this PR -->

## Motivation

<!-- Why is this change needed? Link to related issues if applicable -->

Fixes # <!-- issue number, if applicable -->

## Changes

<!-- List the main changes made in this PR -->

-

## Type of Change

<!-- Check all that apply -->

- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactoring (no functional changes)
- [ ] Performance improvement
- [ ] Test addition or update

## Test Plan

<!-- Describe how you tested these changes -->

- [ ] Ran `cargo make test` (all tests pass)
- [ ] Ran `cargo make lint` (no warnings)
- [ ] Added new tests for the changes
- [ ] Tested manually with: <!-- describe manual testing -->

## Checklist

- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code where necessary
- [ ] I have updated the documentation accordingly
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix/feature works
- [ ] New and existing tests pass locally

## Additional Notes

<!-- Any additional information that reviewers should know -->
32 changes: 10 additions & 22 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

### Added
- Node.js bindings via napi-rs
- npm package `feedparser-rs`
- Criterion benchmarks for Rust
- CI/CD pipeline with GitHub Actions
- Cross-platform builds (Linux, macOS, Windows)
- TypeScript definitions
- Comprehensive Node.js test suite
- Benchmark comparison infrastructure
- Python feedparser benchmark baseline
- HTTP bindings for URL fetching with `http` feature
- `parse_url` and `parse_url_with_limits` functions
- Conditional GET support (ETag, Last-Modified) for bandwidth-efficient caching
- Automatic compression handling (gzip, deflate, brotli)
- Node.js `fetchAndParse` async function for URL fetching
- Podcast namespace support (iTunes and Podcast 2.0)
- CONTRIBUTING.md guide
- Improved README with GitHub callouts and better structure

### Changed
- N/A

### Deprecated
- N/A

### Removed
- N/A

### Fixed
- N/A

### Security
- N/A
- Default features now include `http` for URL fetching support
- Migrated to cargo-make for task automation

## [0.1.0] - 2025-12-14

Expand Down
Loading