docs: add CONTRIBUTING.md guide for new contributors#93
docs: add CONTRIBUTING.md guide for new contributors#93pratiksanjaytigeranalytics wants to merge 1 commit into
Conversation
- Added comprehensive contribution guide - Documented project structure and key files - Included development workflow and coding standards - Added testing checklist and common questions Fixes mlc-ai#90
Summary of ChangesHello @pratiksanjaytigeranalytics, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a new Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
| │ │ └── prompt.ts # Prompt templates | ||
| │ ├── locales/ # Internationalization | ||
| │ ├── styles/ # Global styles (SCSS) | ||
| │ └── utils/ # Utility functions |
There was a problem hiding this comment.
The project structure diagram is missing the app/constant.ts file. This file is mentioned later as a key file for model integration and in the FAQ for adding new models. To avoid confusion for new contributors, it would be beneficial to add it to the diagram for consistency.
| │ └── utils/ # Utility functions | |
| │ ├── utils/ # Utility functions | |
| │ └── constant.ts # Model configurations and constants |
| - **`app/components/home.tsx`** - Main layout and sidebar | ||
| - **`app/components/settings.tsx`** - Settings and configuration UI | ||
| - **`app/components/model-select.tsx`** - Model selection component | ||
| - **`app/styles/*.scss`** - Styling for components |
There was a problem hiding this comment.
There's a slight inconsistency regarding the location of component styles. This line suggests styles are in app/styles/, but other sections (like 'Styling' standards on line 216 and the FAQ on line 283) indicate that component-specific styles are co-located as SCSS modules (e.g., app/components/chat.module.scss).
To avoid confusion, you might want to clarify this. For example, you could change this line to mention co-located .module.scss files and specify that app/styles/ is for global styles.
| git push origin feature/your-feature-name | ||
| ``` | ||
|
|
||
| 5. **Submit your contribution** - Follow the project's PR and issue guidelines for the submission process |
There was a problem hiding this comment.
This instruction is a bit generic. To make it more actionable for new contributors, you could provide a more specific guideline, such as mentioning the target branch for pull requests and referencing the PR template.
| 5. **Submit your contribution** - Follow the project's PR and issue guidelines for the submission process | |
| 5. **Submit your contribution** - Open a pull request to the `main` branch and follow the PR template to describe your changes. |
Arunvallal
left a comment
There was a problem hiding this comment.
Overall Assessment
Strengths:
- Comprehensive and well-organized structure
- Clear project structure overview helps newcomers navigate codebase
- Practical examples (commit messages, component structure)
- Good coverage of TypeScript, React, and Next.js best practices
- Manual testing checklist is valuable for this project
Areas for Improvement:
- Package manager consistency (project uses Yarn)
- File naming conventions don't match actual project files
- PR submission process needs more detail
- Missing info about Husky hooks and issue templates
Recommendation:
This is a great foundation! After addressing the inline comments about consistency with actual project conventions, this will be ready to merge.
Verdict: REQUEST_CHANGES - Minor updates needed to match project conventions
| - [Testing Your Changes](#testing-your-changes) | ||
| - [Getting Help](#getting-help) | ||
|
|
||
| ## Getting Started |
There was a problem hiding this comment.
Missing Important Info:
- No mention of Husky pre-commit hooks (exists in project)
- No reference to .github/ISSUE_TEMPLATE/ files
- Consider adding section on:
- Automated checks (lint runs on commit via Husky)
- Using issue templates for bug reports/features
| 4. **Push your changes** | ||
| ```bash | ||
| git push origin feature/your-feature-name | ||
| ``` |
There was a problem hiding this comment.
Vague Submission Process:
- "Follow the project's PR and issue guidelines" lacks specifics
- Suggest adding:
- Create PR from your fork
- Link to related issue
- Use PR template if available (check .github/PULL_REQUEST_TEMPLATE/)
- Wait for maintainer review
| - **Use Prettier formatting** - Code is auto-formatted | ||
| - **Use descriptive variable names** - Be clear, not clever | ||
| - **Add comments** for complex logic | ||
|
|
There was a problem hiding this comment.
File Naming Inconsistency:
- Existing component files use kebab-case:
chat.tsx,home.tsx,settings.tsx - Guide suggests PascalCase:
ChatMessage.tsx - Recommend updating to match actual project convention (kebab-case for files)
| # or | ||
| yarn install | ||
| # or | ||
| pnpm install |
There was a problem hiding this comment.
Package Manager Consistency:
- Project uses Yarn (see package.json "packageManager": "yarn@1.22.22")
- Suggest showing only yarn commands to avoid confusion
- Alternative: Add note that yarn is preferred
pratiksanjaytigeranalytics
left a comment
There was a problem hiding this comment.
Review Summary
Great work on creating the CONTRIBUTING.md file! This is a valuable addition that will help new contributors get started quickly. Here's my review:
✅ Strengths
- Clear project structure with visual tree layout
- Well-organized "Key Files to Know" section by contribution type
- Practical examples (component structure, commit conventions)
- Comprehensive testing checklist
- Good balance between detail and simplicity
💡 Suggestions for Improvement
Content:
- Add link to Code of Conduct if one exists separately
- Consider adding troubleshooting section for common setup issues
- Add example of good first issues or labels for beginners
- Include estimated time for first-time setup
Structure:
- Consider adding a "Quick Start for Experienced Developers" section at top
- Add visual badges (build status, license) if available
Technical:
- Verify all file paths match current project structure
- Add note about Node.js version compatibility testing
Minor Items
- Line 27: Consider mentioning fork sync process for long-term contributors
- Line 138: Conventional commits - consider linking to full spec
- Line 262: Add accessibility testing to manual checklist
- Line 298: Consider adding maintainer response time expectations
Overall Assessment
This PR successfully addresses issue #90 and provides clear guidance for contributors. The suggested improvements are optional enhancements that can be addressed in future iterations.
Ready for maintainer review! 🚀
Description
This PR adds a comprehensive
CONTRIBUTING.mdfile to help new contributors understand how to contribute to the WebLLM Chat project.What's Included
📚 Documentation Sections
🎯 Goals
✅ Benefits
Testing
Related Issues
Closes #90
Checklist