Skip to content

libresource/open-source-checklist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Open Source Checklist

Quick start

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)

Be free to fork this repository, change the checklist or any another file. Just enjoy yourself.

Extended guide

Main points

CI and CD

Main points

Open Source Project Checklist

Description:

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

Examples:

Existing Analogues

Description:

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.

Examples:

Good Project Name

Description:

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.

Examples:

  • 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

Mission

Description:

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.

Examples:

  • 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."

State What the Project Is Free

Description:

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.

Examples:

  • 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.

Features

Description:

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.

Examples:

  • 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.
    • ...

Requirements

Description:

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.

Examples:

  • 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.

Development Status

Description:

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.

Examples:

  • 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.

Download Page

Description:

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.

Examples:

Version Control Access

Description:

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.

Examples:

  • 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.

Bug Tracker Access

Description:

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.

Examples:

  • 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.

Communication Channels

  • Discussions
  • Mailing List
  • Real-time chat
  • Forum

Description:

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.

Examples:

  • 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

Developer Guidelines

Description:

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.

Examples:

Documentation

Description:

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.

Examples:

Developer Documentation

Description:

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.

Examples:

  • Open Source Checklist (This project):
    • Nothing to run yet: There is no to run in this project. Maybe we will have something later.
  • FindSimilar:
  • 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.

Availability of Documentation

Description:

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.

Examples:

FAQ

Description:

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.

Examples:

Examples Output and Screenshots

Description:

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.

Examples:

License

Description:

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.

Examples:

  • 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.

Code of Conduct

Description:

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.

Examples:

Security Policy

Description:

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.

Examples:

Governance

Description:

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.

Examples:

Issue Templates

Description

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.

Examples:

Pull Request Template

Description

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.

Examples:

Support

Description

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.

Examples:

CI and CD

  • Test Coverage 100%
  • Tests
  • Linters
  • Build
  • Deploy

New User Greetings

Description

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

Examples:

Pull Request Size Labeler

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

Examples: