First off, thank you for taking the time to contribute! ❤️
All types of contributions are encouraged and valued. Please read the relevant section before making your contribution. This helps maintainers and smooths out the experience for everyone involved. We look forward to your contributions! 🎉
- Code of Conduct
- Question or Problem?
- Features vs Bugs
- For all Issues
- Submitting an Issue
- 'Needs Triage' Issue Label
- Submitting a Pull Request (PR)
- Reviewing a Pull Request
- Local Setup for Development
- Coding Rules
- Commit Message Guidelines
- Testing
If you enjoy the project but don’t have time to contribute, here are other ways you can support us:
- Star the project
- Share the project on social media
- Mention the project in your project's README
- Recommend the project to friends, colleagues, and at local meetups
This project and everyone participating is governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report any unacceptable behavior to the repository maintainers.
For general support, please do not open GitHub issues. Use Discussions for support-related questions, and we’ll be happy to help.
Understand the difference between a feature and a bug when creating issues:
- Feature: A request to implement something new.
- Bug: Fixing something that’s not working as expected.
Before working on an issue, open a discussion to outline your proposal so it can be reviewed and coordinated. This helps avoid duplication of effort and ensures smooth collaboration.
Before opening an issue, please search existing issues to check if the same problem has already been raised. Provide a minimal example of the issue for bug reports to help maintainers identify and fix the problem quickly.
Do not erase the issue template! Use the provided template to maintain consistency and clarity across all issues.
All new issues are labeled "needs triage" to be reviewed by maintainers. Once reviewed, this label will be removed, and the issue will be prioritized and assigned.
Before submitting a pull request (PR), ensure the following:
-
Search the repository for existing open or closed PRs that relate to your submission to avoid duplication.
-
Fork the repository.
-
Create a new branch for your work:
git checkout -b feature/your-feature-name
-
Make your changes, ensuring they follow the repository's tech stack:
- AnalogJS + Angular Material UI
- Commit your changes:
git commit -m "Add description of your changes"
- Push your changes to your forked repository:
git push origin feature/your-feature-name
- Open a Pull Request(PR) from your fork's branch to the main repository.
Use the PR template provided and make sure your PR follows the format of existing merged PRs.
The maintainer(s) reserve the right to reject pull requests that do not meet the project's contribution guidelines. All PRs must be reviewed and approved by a maintainer before they can be merged.
To set up the project locally, follow these steps:
- Install dependencies:
npm install
- Run the development server:
npm start
This will launch the free-editor
app in development mode on your local machine.
This will launch the free editor in development mode on your local machine.
- Maintain consistency with the project's existing file structure and code style.
- Use AnalogJS’s file-based routing to manage routes within the project. Pages and services should follow this routing structure for consistency.
- Follow SCSS guidelines for styling, using relative measurements like
rem
,vh
, or%
instead ofpx
.
To maintain a clear and organized version history, we follow a standardized commit message convention. This ensures that each commit provides valuable information about the changes made. Please adhere to the following guidelines when crafting your commit messages:
feat(component): add new feature X
fix(component): resolve issue with Y
docs(readme): update installation instructions
refactor(service): restructure data fetching logic
perf(api): optimize data retrieval for faster response
test(component): add unit tests for feature Z
build(pipeline): update dependencies and build scripts
chore: prepare for version 1.0.0 release
revert: revert changes from commit abc123
Ensure that your commit messages are descriptive and helpful for understanding the changes introduced.
When contributing to the project, two types of testing are essential:
- Programmatic Tests: These are automated tests that ensure your code does not break existing functionality. All programmatic tests must pass before submitting a pull request. You can run the tests locally with the following command:
npm test
- Functional Testing: This involves manually verifying that the feature or bug fix you worked on actually behaves as expected within the editor. This includes checking the user interface, ensuring buttons and features work, and confirming that the intended changes function properly when tested in a real-world scenario.
Both types of testing are important to ensure that new changes are reliable and meet the project's quality standards.
Mandatory Compliance with Coding Rules and Commit Message Guidelines for PR Merges
Kindly ensure that all pull requests strictly adhere to our Coding Rules and Commit Message Guidelines. Non-compliant PRs must be adjusted prior to acceptance.
Reviewers who approve PRs not in alignment with the Coding Rules and Commit Message Guidelines may face restrictions on their approval privileges.
Your contributions help shape the future of Free-Editor, and we’re excited to see what improvements and innovations you bring. Whether you’re fixing a bug, adding a new feature, or enhancing the codebase, your input is invaluable. Together, we’re building a tool that empowers developers and brings real value to the community.
We truly appreciate your effort and look forward to working with you to make Free-Editor the best it can be! 🚀