Open Source Project Checklist place in CHECKLIST.md.
If you don't know what is some point mean you can go by link and read the description and check the examples.
To use checklist:
- Copy checklist from README below:
[Main points](https://github.com/libresource/open-source-checklist#main-points)
- [x] [Open Source Project Checklist](https://github.com/libresource/open-source-checklist#open-source-project-checklist)
- [ ] [Existing Analogues](https://github.com/libresource/open-source-checklist#existing-analogues)
- [ ] [Good Project Name](https://github.com/libresource/open-source-checklist#good-project-name)
- [ ] [Mission](https://github.com/libresource/open-source-checklist#mission)
- [ ] [State What the Project Is Free](https://github.com/libresource/open-source-checklist#state-what-the-project-is-free)
- [ ] [Features](https://github.com/libresource/open-source-checklist#features)
- [ ] [Requirements](https://github.com/libresource/open-source-checklist#requirements)
- [ ] [Development Status](https://github.com/libresource/open-source-checklist#development-status)
- [ ] [Download Page](https://github.com/libresource/open-source-checklist#download-page)
- [ ] [Version Control Access](https://github.com/libresource/open-source-checklist#version-control-access)
- [ ] [Bug Tracker Access](https://github.com/libresource/open-source-checklist#bug-tracker-access)
- [ ] [Communication Channels](https://github.com/libresource/open-source-checklist#communication-channels)
- - [ ] Discussions
- - [ ] Mailing List
- - [ ] Real-time chat
- - [ ] Forum
- [ ] [Developer Guidelines](https://github.com/libresource/open-source-checklist#developer-guidelines)
- [ ] [Documentation](https://github.com/libresource/open-source-checklist#documentation)
- [ ] [Developer Documentation](https://github.com/libresource/open-source-checklist#developer-documentation)
- [ ] [Availability of Documentation](https://github.com/libresource/open-source-checklist#availability-of-documentation)
- [ ] [FAQ](https://github.com/libresource/open-source-checklist#faq)
- [ ] [Examples Output and Screenshots](https://github.com/libresource/open-source-checklist#examples-output-and-screenshots)
- [ ] [License](https://github.com/libresource/open-source-checklist#license)
- [ ] [Code of Conduct](https://github.com/libresource/open-source-checklist#code-of-conduct)
- [ ] [Security Policy](https://github.com/libresource/open-source-checklist#security-policy)
- [ ] [Governance](https://github.com/libresource/open-source-checklist#governance)
- [ ] [Issue templates](https://github.com/libresource/open-source-checklist#issue-templates)
- [ ] [Pull Request Template](https://github.com/libresource/open-source-checklist#pull-request-template)
- [ ] [Support](https://github.com/libresource/open-source-checklist#support)
[CI and CD](https://github.com/libresource/open-source-checklist#ci-and-cd)
- [ ] Tests
- [ ] Test Coverage
- [ ] Test Coverage 100%
- [ ] Linters
- [ ] Build
- [ ] Deploy
- [ ] [New User Greetings](https://github.com/libresource/open-source-checklist#new-user-greetings)
- [ ] [Pull Request Size Labeler](https://github.com/libresource/open-source-checklist#pull-request-size-labeler)
- Copy raw code here
- Or you can use this repository as template. Because it contains another useful files:
Be free to fork this repository, change the checklist or any another file. Just enjoy yourself.
- Open Source Project Checklist
- Existing Analogues
- Good Project Name
- Mission
- State What the Project Is Free
- Features
- Requirements
- Development Status
- Download Page
- Version Control Access
- Bug Tracker Access
- Communication Channels
- Developer Guidelines
- Documentation
- Developer Documentation
- Availability of Documentation
- FAQ
- Examples Output and Screenshots
- License
- Code of Conduct
- Security Policy
- Governance
- Issue Templates
- Pull Request Template
- Support
- Tests
- Test Coverage
- Test Coverage 100%
- Linters
- Build
- Deploy
- New User Greetings
- Pull Request Size Labeler
Like "To understand recursion, you must first understand recursion", the first point is Checklist. Good checklist allow you to create a successful open source project. You can use this project checklist. Or explore the other solutions below in the Existing Analogues
- Open Source Checklist (This project): https://github.com/libresource/open-source-checklist/blob/main/CHECKLIST.md
- FindSimilar: https://github.com/findsimilar/find-similar/blob/main/CHECKLIST.md
- cfpb/open-source-project-template: https://github.com/cfpb/open-source-project-template/blob/main/opensource-checklist.md
Research existing projects or software that offer similar functionality to your open source project. Understanding the landscape of existing analogues helps you identify unique features and opportunities for innovation. Don't forget that in the open source world any person can fork any open project. But if the existing project has actual features you can become a part of community instead of create your own project.
- Open Source Checklist (This project): The point is to look on producing open source software from different view.
- cfpb/open-source-project-template: Very good checklist and descriptions
- checklist on checkli.com: Web checklist available to download
- post on redhat: Good open source projects description and requirements
A good project name is memorable, descriptive, and reflects the essence of your open source project. It should be unique, easy to spell, and related to the project's purpose or functionality. A clear and relevant name can attract users and contributors, making it easier for them to remember and search for your project.
- Open Source Checklist (This project): Not too unique but descriptive and easy to find
- FindSimilar: Python library to find similar objects
- Sql Alchemy: Popular ORM on python
A clear mission statement defines the project's goals, objectives, and purpose. It communicates the project's vision, target audience, and the problems it aims to solve. A well-defined mission provides direction and aligns the community towards a common goal.
- Open Source Checklist (This project): "The "Open Source Checklist" project is dedicated to simplifying the journey of open source development for creators and contributors alike. Our mission is to provide a comprehensive, user-friendly guide encompassing every essential aspect of open source projects."
- TensorFlow: "To enable efficient, flexible, and scalable machine learning through an open-source platform that empowers researchers and developers worldwide."
- Django: "To make it easier to build web applications by providing reusable, maintainable, and secure components, emphasizing rapid development and clean design."
- FindSimilar: "The mission of the "FindSimilar" project is to provide a powerful and versatile open source library that empowers developers to efficiently find similar objects and perform comparisons across a variety of data types. Whether dealing with texts, images, audio, or more, our project aims to simplify the process of identifying similarities and enhancing decision-making."
Clearly stating that the project is free to use and open for contribution encourages a collaborative atmosphere. It welcomes users to utilize the project without any cost and invites developers to contribute code, report issues, or suggest enhancements.
- Open Source Checklist (This project): This project is open and free for everyone to use. Contributions from developers and users are highly encouraged and valued. Feel free to fork the repository, submit pull requests, or report issues.
- TensorFlow: TensorFlow is an open source project available to the public for free. We welcome contributions from the community. Check out our contributing guidelines to get involved.
- Django: Django is free to use for any purpose. We appreciate contributions in any form: code, documentation, bug reports, feature requests, or financial support.
- FindSimilar: "FindSimilar" is an open source project, fostering collaboration and innovation. We welcome contributors from all backgrounds to join us in shaping the future of similarity comparisons across various data types.
Listing the current features of your project provides users and potential contributors with a clear understanding of what the project can do. It helps manage expectations and showcases the strengths of your open source software.
-
Open Source Checklist (This project):
- Checklist with md structure
- Full description about each point in checklist
- Several examples to each point in checklist
-
FindSimilar:
- Find similar text sentences
- Compare one text sentence with many
- Sort similar texts by match percentage
- Research laboratory with scripts to improve main algorithms
-
Django:
- Object-relational mapping for database interactions.
- Built-in administrative interface for managing site content.
- Extensive template system for flexible and dynamic web page rendering.
- ...
Clearly outlining the system requirements and dependencies needed to run your project is essential for users and developers. This information helps users ensure compatibility, and developers understand the environment needed for contribution and development.
-
Open Source Checklist (This project):
- No requirements yet
-
FindSimilar:
- python >= 3.9
- nltk, pymorphy2
-
Django:
- Python 3.6 or higher.
- Database system: PostgreSQL, MySQL, SQLite, or Oracle.
- Web server: Apache, Nginx.
Describing the development status of your project provides users and potential contributors with insights into the project's maturity and stability. It helps users understand if the software is ready for production use or if it's still in early development stages.
- Open Source Checklist (This project): Alpha - The project is in early development. Some features may be incomplete, and stability is not guaranteed.
- FindSimilar: Beta - Software is feature complete. External testing, fixing bugs and performance problems. Usability testing.
- Django: Production/Stable - The project is mature, feature-complete, and widely used in production environments.
Having a dedicated download page provides users with a centralized location to obtain the latest version of your open source project. It simplifies the installation process and ensures that users are getting the correct and official release.
- Open Source Checklist (This project): Download checklist. Later you can download checklist from the project website
- FindSimilar: Releases page on GitHub, Package on PyPi
- Django: Head to the Download Page on the Django website to find the latest stable release. Installation instructions for different operating systems are provided.
Providing version control access allows developers to contribute to your project, track changes, and collaborate effectively. It is essential for maintaining transparency and enabling a community-driven development environment.
- Open Source Checklist (This project): This project is hosted on GitHub. You can access the source code, contribute, and track changes by visiting our GitHub Repository.
- FindSimilar: FindSimilar's source code is available on GitHub. Developers can contribute and access the latest codebase from the GitHub Repository.
- Django: Django's version control is managed on GitHub. The source code and contribution guidelines can be found at the GitHub Repository.
A bug tracker provides a structured way to report, track, and manage issues within your project. Granting access to the bug tracker allows users and contributors to report bugs, suggest enhancements, and follow the progress of issue resolution.
- Open Source Checklist (This Project): To report bugs or suggest improvements, visit our GitHub Issues page. You can create new issues, track existing ones, and participate in discussions related to the project's development.
- FindSimilar: Issues and bug reports for FindSimilar are managed on GitHub. Users can report problems, suggest features, and follow the development progress here.
- Django: Django's bug tracker is hosted on GitHub. Users and developers can report bugs, propose changes, and discuss issues related to Django's development.
- Discussions
- Mailing List
- Real-time chat
- Forum
Setting up communication channels fosters interaction, collaboration, and community engagement. It provides users and developers with platforms to ask questions, share ideas, and participate in discussions related to the project.
- Open Source Checklist (This Project):
- Mailing List: Only in plans for now
- Chat: Only in plans for now
- GitHub Discussions: Available on GitHub
- IRC: Only in plans for now
- FindSimilar:
- GitHub Discussions: Available on GitHub
- Django:
- IRC: Django developers can be found on the
#django
channel on the Freenode IRC network for real-time chat and support. - Reddit: Engage with the Django community on the Django subreddit for discussions, news, and project-related content.
- Mailing list: Developer Mailing List
- Chat: Discord chat
- IRC: Django developers can be found on the
Developer guidelines provide crucial information for new and existing contributors, outlining the project's development process, communication norms, and bug reporting procedures. It helps maintain a consistent and productive collaboration environment.
- Open Source Checklist (This Project): Developer Guidelines in CONTRIBUTING.md
- FindSimilar: Developer Guidelines in DEVELOPER_GUIDELINES.md
- Django: Special page on the official site
Comprehensive documentation is essential for users and developers to understand how to install, configure, and use your open source project. Well-structured documentation enhances user experience, encourages contributions, and ensures a consistent understanding of the project's functionality.
- Open Source Checklist (This Project):
- On official site: will be later
- Quickstart: https://github.com/libresource/open-source-checklist#quick-start
- Extended Guide: https://github.com/libresource/open-source-checklist#extended-guide
- FindSimilar:
- Django:
- Getting Started: Django's Getting Started Guide offers a beginner-friendly introduction to setting up a Django project.
- Official Documentation: The Official Documentation provides detailed information on Django's features, components, and advanced usage scenarios.
Developer documentation provides technical details, guidelines, and best practices for developers contributing to your open source project. It empowers new and experienced developers to understand the codebase, follow coding standards, and contribute effectively.
- Open Source Checklist (This project):
- Nothing to run yet: There is no to run in this project. Maybe we will have something later.
- FindSimilar:
- In special md file: DEVELOPER_DOCUMENTATION.md
- In main readme file: Development section
- Source code documentation: Part of the official site
- Django:
- Codebase Architecture: Django's Developer Overview explains the project's architecture, including key components like models, views, and templates.
- Contributor's Guide: The Contributor's Guide outlines the steps for contributing code, reporting bugs, and engaging with the Django community.
- Codebase Conventions: Django follows specific coding conventions detailed in the Coding Style guide, ensuring consistency across the codebase.
Ensuring that documentation is easily accessible is crucial for user onboarding and developer contributions. Providing clear links to documentation sources simplifies the learning process and encourages users to explore and understand your project.
- Open Source Checklist (This Project):
- On official site: will be later
- Quickstart: https://github.com/libresource/open-source-checklist#quick-start
- Extended Guide: https://github.com/libresource/open-source-checklist#extended-guide
- FindSimilar:
- Installation: https://github.com/findsimilar/find-similar#installation
- Usage: https://github.com/findsimilar/find-similar#usage-example
- In special md file: DEVELOPER_DOCUMENTATION.md
- In main readme file: Development section
- Source code documentation: Part of the official site
- Django:
- Getting Started: Django's Getting Started Guide offers a beginner-friendly introduction to setting up a Django project.
- Official Documentation: The Official Documentation provides detailed information on Django's features, components, and advanced usage scenarios.
- Codebase Architecture: Django's Developer Overview explains the project's architecture, including key components like models, views, and templates.
- Contributor's Guide: The Contributor's Guide outlines the steps for contributing code, reporting bugs, and engaging with the Django community.
- Codebase Conventions: Django follows specific coding conventions detailed in the Coding Style guide, ensuring consistency across the codebase.
An FAQ section addresses common questions users might have about your open source project. While it might be empty at the project's start, it's a valuable addition as your project gains users. Anticipate questions users might ask and provide concise, helpful answers to enhance user experience.
- Open Source Checklist (This Project): will be later on the official website
- Django: https://docs.djangoproject.com/en/4.2/faq/
Providing real-world examples, output samples, and screenshots demonstrates your project's capabilities and helps users visualize its usage. Clear examples enhance user understanding and inspire confidence in the project's functionality.
- Open Source Checklist (This Project):
- Screenshot: Checklist Example
- FindSimilar:
- Demo project: http://demo.findsimlar.org
- Demo API: http://api.findsimilar.org
The license outlines the terms under which your open source project is distributed and used. Choosing an appropriate license is essential for legal and ethical reasons. It clarifies what others can and cannot do with your software, protecting both users and contributors.
- Open Source Checklist (This Project): is licensed under the GPL-3.0 license
- FindSimilar: is licensed under the MIT license
- Django: is open-source software distributed under the BSD License, allowing users to use, modify, and distribute the software for any purpose with proper attribution.
A Code of Conduct is a set of guidelines that outlines expected behavior and promotes a positive and inclusive environment within a community, project, or organization. It ensures respectful communication, inclusivity, and a safe space for all contributors, fostering a collaborative and welcoming atmosphere.
-
Open Source Checklist (This Project): CODE_OF_COUNDUCT.md
-
FindSimilar: CODE_OF_CONDUCT.md
-
Django: Special section on the official website
A Security Policy outlines the measures and practices your project adopts to ensure the security of the software and its users. It defines how security vulnerabilities are identified, reported, and addressed, creating a safe environment for users and contributors.
- Open Source Checklist (This Project): SECURITY.md
- FindSimilar: SECURITY.md
- Django: Special section on the official website
Governance in the context of an open-source project refers to the organizational structure, decision-making processes, and roles within the project community. A well-defined governance model clarifies how decisions are made, who has authority, and how contributors can participate in the decision-making process. It provides transparency and stability to the project, ensuring smooth collaboration and growth.
- Open Source Checklist (This Project): GOVERNANCE.md
- FindSimilar: GOVERNANCE.md
- Django Dry Tests: GOVERNANCE.md
Issue templates are predefined formats for creating new issues in a GitHub repository. They provide a structured way for users to report bugs, request features, or ask questions. By using issue templates, you ensure that contributors provide essential information, making it easier to understand and address their concerns effectively.
- Open Source Checklist (This Project): GitHub issue templates
- FindSimilar: GitHub issue templates
- Django Dry Tests: GitHub issue templates
Pull request templates are predefined formats for creating new pull request in a GitHub repository. When you add a pull request template to your repository, project contributors will automatically see the template's contents in the pull request body.
- Open Source Checklist (This Project): Pull Request Template
- SciPy: Pull Request Template
Support encompasses the different ways in which individuals can contribute to a project's growth, sustainability, and overall success. While support often includes financial donations, it also extends to non-monetary contributions like volunteering, spreading the word, and providing expertise. Projects thrive on a supportive community, and there are diverse avenues for individuals to get involved and make a positive impact.
- Open Source Checklist (This Project): SUPPORT.md, FUNDING.yml
- FindSimilar: SUPPORT.md, FUNDING.yml
- Django Dry Tests: SUPPORT.md
- Test Coverage 100%
- Tests
- Linters
- Build
- Deploy
Greetings of new user is the important part of open source project community. We can use GitHub action to automatize this procedure:
- Then user create a first issue
- Then user create a first pull request
- Open Source Checklist (This Project): greetings.yml
- Lavacactus: greetings.yml
- Django Dry Tests: greetings.yml
Big pull requests isn't good. There is the research about this case. In this research 400 line max pull request size was recommended.
To check pull request size we can use GitHub action
. For example:
Pull Request Size Labeler
- Open Source Checklist (This Project): labeler.yml