Contributing Guidelines
Contributing Guidelines
Section titled “Contributing Guidelines”Thank you for your interest in contributing to Podcast Framework! This guide explains how to contribute code, documentation, and ideas.
Ways to Contribute
Section titled “Ways to Contribute”1. Report Bugs
Section titled “1. Report Bugs”Found a bug? Report it on GitHub:
- Check existing issues
- If not found, create new issue
- Include:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Environment (OS, Node version, package versions)
- Screenshots/error messages
2. Suggest Features
Section titled “2. Suggest Features”Have an idea? Create a feature request:
- Check discussions
- Create new discussion in “Ideas” category
- Explain:
- Problem you’re solving
- Proposed solution
- Use cases
- Why it benefits the community
3. Contribute Code
Section titled “3. Contribute Code”Submit pull requests:
- Fork repository
- Create feature branch:
git checkout -b feature/my-feature - Make changes
- Add tests
- Ensure tests pass:
npm test - Commit:
git commit -m "feat: add feature" - Push:
git push origin feature/my-feature - Create pull request
4. Improve Documentation
Section titled “4. Improve Documentation”Documentation improvements welcome:
- Fork podcast-framework-docs
- Make changes to
.mdfiles - Test locally:
npm run dev - Create pull request
5. Help Others
Section titled “5. Help Others”Answer questions in:
Development Setup
Section titled “Development Setup”Clone Repository
Section titled “Clone Repository”git clone https://github.com/rejected-media/podcast-framework.gitcd podcast-frameworkInstall Dependencies
Section titled “Install Dependencies”npm installRun Tests
Section titled “Run Tests”npm testBuild Packages
Section titled “Build Packages”npm run buildLink Locally
Section titled “Link Locally”Test changes in your podcast:
# In podcast-frameworknpm link
# In your podcastnpm link @rejected-media/podcast-framework-coreCode Standards
Section titled “Code Standards”TypeScript
Section titled “TypeScript”- Use strict mode
- Add types for all functions
- Avoid
anytype
// ✅ Goodfunction formatDate(date: string): string { return new Date(date).toLocaleDateString();}
// ❌ Badfunction formatDate(date: any): any { return new Date(date).toLocaleDateString();}Naming Conventions
Section titled “Naming Conventions”- Components: PascalCase (
Header.astro) - Functions: camelCase (
formatDate()) - Files: kebab-case (
sanity-helpers.ts) - Types: PascalCase (
Episode,Theme)
Documentation
Section titled “Documentation”Add JSDoc comments:
/** * Format date to human-readable string * * @param dateString - ISO date string * @param locale - Locale for formatting (default: 'en-US') * @returns Formatted date * * @example * ```typescript * formatDate('2024-01-15') // "January 15, 2024" * ``` */export function formatDate(dateString: string, locale = 'en-US'): string { // ...}Testing
Section titled “Testing”Add tests for new features:
import { describe, test, expect } from 'vitest';import { formatDate } from '../src/lib/utils';
describe('formatDate', () => { test('formats ISO dates', () => { expect(formatDate('2024-01-15')).toBe('January 15, 2024'); });
test('supports locales', () => { expect(formatDate('2024-01-15', 'es-ES')).toBe('15 de enero de 2024'); });});Commit Messages
Section titled “Commit Messages”Use conventional commits:
feat: add episode search componentfix: correct date formatting bugdocs: update installation guidetest: add utils test coveragerefactor: simplify theme generationchore: update dependenciesFormat:
<type>: <description>
[optional body]
[optional footer]Types:
feat- New featurefix- Bug fixdocs- Documentationtest- Testsrefactor- Code refactoringchore- Maintenance
Pull Request Process
Section titled “Pull Request Process”- Fork repository
- Create branch from
main - Make changes
- Add tests for new features
- Run tests:
npm test - Build:
npm run build - Commit with conventional commit message
- Push to your fork
- Create pull request
- Address review feedback
PR Template
Section titled “PR Template”## DescriptionBrief description of changes
## Type of Change- [ ] Bug fix- [ ] New feature- [ ] Documentation- [ ] Refactor
## Testing- [ ] All tests pass- [ ] Added tests for new features- [ ] Tested manually
## Checklist- [ ] Code follows style guidelines- [ ] Self-review completed- [ ] Documentation updated- [ ] No breaking changes (or documented)Code Review
Section titled “Code Review”All PRs require review before merging:
- Automated: Tests must pass
- Manual: Code review by maintainer
- Timeline: Usually within 2-3 days
License
Section titled “License”By contributing, you agree that your contributions will be licensed under the MIT License.
Questions?
Section titled “Questions?”Ask in GitHub Discussions.
Related
Section titled “Related”- Development Setup - Detailed setup guide
- Roadmap - Future plans
Thank You!
Section titled “Thank You!”Every contribution helps make Podcast Framework better for everyone. Thank you for your support!