All Projects โ†’ KatherineMichel โ†’ setting-up-an-open-source-project

KatherineMichel / setting-up-an-open-source-project

Licence: other
๐Ÿ” Setting Up An Open Source Project

Projects that are alternatives of or similar to setting-up-an-open-source-project

BotSmartScheduler
Enhance your planning capabilities with this smart bot!
Stars: โœญ 44 (+214.29%)
Mutual labels:  planning
Robotics-Planning-Dynamics-and-Control
RPDC : This contains all my MATLAB codes for the Robotics, Planning, Dynamics and Control . The implementations model various kinds of manipulators and mobile robots for position control, trajectory planning and path planning problems.
Stars: โœญ 171 (+1121.43%)
Mutual labels:  planning
GoPlan-app
An intuitive portfolio mangaer !
Stars: โœญ 27 (+92.86%)
Mutual labels:  planning
Angry-HEX
An artificial player for the popular video game Angry Birds
Stars: โœญ 16 (+14.29%)
Mutual labels:  planning
scrum-planning-poker
Please feel FREE to try it and give feedback by searching Scrumๆ•ๆทไผฐ็ฎ— in WeChat mini program.
Stars: โœญ 30 (+114.29%)
Mutual labels:  planning
mapus
A map tool with real-time collaboration ๐Ÿ—บ๏ธ
Stars: โœญ 2,687 (+19092.86%)
Mutual labels:  planning
leap
Official codebase for LEAP: Planning with Goal Conditioned Policies
Stars: โœญ 38 (+171.43%)
Mutual labels:  planning
taxi
Hierarchical Online Planning and Reinforcement Learning on Taxi
Stars: โœญ 24 (+71.43%)
Mutual labels:  planning
DnaWeaver
A route planner for DNA assembly
Stars: โœญ 20 (+42.86%)
Mutual labels:  planning
planning-wiki
By the community, for everyone. Planning.wiki is the online guide to AI Planning
Stars: โœญ 54 (+285.71%)
Mutual labels:  planning
planner
Lightweight, interactive planning tool that visualizes a series of tasks using an HTML canvas
Stars: โœญ 502 (+3485.71%)
Mutual labels:  planning
awesome-agi-cocosci
An awesome & curated list for Artificial General Intelligence, an emerging inter-discipline field that combines artificial intelligence and computational cognitive sciences.
Stars: โœญ 81 (+478.57%)
Mutual labels:  planning
jpp
Joint Perception and Planning For Efficient Obstacle Avoidance Using Stereo Vision
Stars: โœญ 42 (+200%)
Mutual labels:  planning
interval
This PHP library provides some tools to handle intervals. For instance, you can compute the union or intersection of two intervals.
Stars: โœญ 25 (+78.57%)
Mutual labels:  planning
nuplan-devkit
The devkit of the nuPlan dataset.
Stars: โœญ 107 (+664.29%)
Mutual labels:  planning
scrumonline
Always up to date scrumonline docker build
Stars: โœญ 18 (+28.57%)
Mutual labels:  planning
language-planner
Official Code for "Language Models as Zero-Shot Planners: Extracting Actionable Knowledge for Embodied Agents"
Stars: โœญ 84 (+500%)
Mutual labels:  planning
Annotated-Angular-Roadmap
More details about each item in the Angular roadmap (https://angular.io/guide/roadmap)
Stars: โœญ 41 (+192.86%)
Mutual labels:  planning
plasp
๐Ÿ—บ๏ธ ASP planning tools for PDDL
Stars: โœญ 24 (+71.43%)
Mutual labels:  planning
l5kit
L5Kit - https://level-5.global/
Stars: โœญ 683 (+4778.57%)
Mutual labels:  planning

Setting Up An Open Source Project

Photo Credit: Pete McCarthy

Table of Contents


About

While looking through GitHub repositories and reading/watching coding tutorials, I have come across a number of best practices for setting up projects. I've never seen these best practices in one place, so I decided to create my own list. Though some are more common than others, a few are obscure, but highly useful! This list is fairly unopinionated. Depending on the language/framework used in a project, additional config files will be needed.

๐Ÿ” back to top


Testimonials

โ€œGreat idea and that's really useful.โ€
โ€” Jeff

โ€œCool :) This looks really useful. I'll have to follow the suggestions there.โ€
โ€” Mariatta

๐Ÿ” back to top


Documentation File Types

Markdown

GitHub project documentation is often created using Markdown files (files that end in .md). Markdown tends to be simpler and easier to use than regular HTML. See GitHub flavored Markdown for instructions.

Dotfiles

Dotfiles begin with a dot and often contain configuration info specific to the developer or project. Dotfiles (or folders) are normally hidden from view.

๐Ÿ” back to top


Initial Documentation

README.md

A README is a file that contains project information and instructions.

Wiki

A README usually suffices for providing project information. If not, every GitHub repo comes with a wiki. The project wiki is enabled by default under Settings -> Features. Editing can be restricted to collaborators only. GitHub wikis can be created using GitHub flavored Markdown and hyperlinks can be created across pages.

LICENSE.md

A Software License specifies the terms under which open source code can be used and redistributed. GitHub offers guidance for choosing a license. A repo that does not contain a license is considered copyrighted and therefore cannot be used publicly without permission.

Presentation

Consider adding a presentation using GitPitch. Create a PITCHME.md using markdown. A presentation URL such as the one for this repo, will be automatically created.

๐Ÿ” back to top


Editor Configs, Environment, Git

.editconfig

A .editconfig is a dotfile in which a developer or project maintainers can specify local editor preferences. For example, if developers are working on different operating systems (Linux, Mac OS, Windows), .editconfig settings can be used to standardize line endings across all machines.

.env

A .env file is a dotfile used to store environmental variables. Beware pushing a .env file to a public repo. Include the .env in the .gitignore (see below), or, set the environmental variables through the command line/bash or host dashboard.

.gitignore

When running code locally, some files may be generated that are only for your own local use. A .gitignore is a dotfile used to instruct Git to not include these files when pushing code to GitHub, where they would be unncessary. GitHub provides .gitignore templates that vary by language or framework. Alternatively, files to be ignored can be stored in hidden folders named .git/info/exclude.

.gitattributes

.gitconfig

A .gitconfig is a dotfile in which a developer or project maintainers can specify local Git preferences.

config.yml

๐Ÿ” back to top


Build Automation

makefile

A makefile contains code for build automation.

Earthly

An Earthfile contains code for containerized build automation.

๐Ÿ” back to top


DNS

CNAME

A CNAME file is used to specify a domain name.

๐Ÿ” back to top


Advanced Work Flow

Git Flow

GitHub Flow is GitHub's "lightweight, branch-based workflow."

A Successful Git Branching Model

A Successful Git Branching Model is a popular Git workflow methodology referenced often by professional developers.

Comparison between Git Flow and A Successful Git Branching Model

Scott Chacon, a GitHub developer, wrote in a blog post called "Issues with git-flow" that GitHub Flow is a simple process that can be used to deploy often. In contrast, git-flow (from A Successful Git Branching Model), is a sophisticated process focused on major releases, and may be more complicated than what most developers need.

Startup Engineering MOOC

Startup Engineering MOOC is currently out of commission, but is a highly recommended introduction to staged deployment using GitHub, Heroku, and AWS.

Semver

Semver is a popular versioning methodology used for software releases.

๐Ÿ” back to top


Release Documentation

Roadmap

A Roadmap is a schedule for future project goals. A roadmap could be communicated through a Markdown file or through a project.

Project Example

  • Project name is version name
  • Example columns: To Do, In Progress, Testing, Done

CHANGELOG.md

A CHANGELOG.md file lists notable changes made to the project.

RELEASING.md

A RELEASING.md file gives instructions for how to complete a software release.

๐Ÿ” back to top


Collaboration

Organizations

Organization accounts are for code owned by groups (companies, OSS projects).

Teams

Teams make permission management easier. A developer added to a team now has access to repos based on team access.

Repository Access

  • Public repo- anyone can access
  • Private repo- only designated members can access

๐Ÿ” back to top


Common Project Contributor Tasks

Backend

  • Code
  • Plugin/utility libraries
  • Tools
  • Infrastructure (Hosting, Build-Tools, etc)
  • Tests
  • Bug reports
  • Examples
  • Translation

Frontend

  • Design

Support

  • Reviewed Pull Requests
  • Documentation
  • Answering Questions (in Issues, Stack Overflow, Gitter, Slack, etc.)

Media

  • Blogposts
  • Tutorials
  • Videos
  • Talks

๐Ÿ” back to top


Workflow Tools

GitHub provides a number of special features that help with workflow.

Projects

GitHub projects are a feature that can be used to prioritize and track workflow through a board of columns and cards.

Issues

Issues are discussion threads used to ask questions, propose new functionality, and report bugs. Issues can be assigned to people, associated with a milestone, or tagged with one or more labels (which can also be found through GitHub search). Issues that are no longer relevant can be closed.

Example Difficulty Level Labels

  • difficulty: easy, difficulty: medium , difficulty: hard

Example New Comer and Help Wanted Labels

  • help wanted, up-for-grabs, first-timers-only, beginner friendly

Example General Labels

  • question, for discussion, docs, feature, bug, enhancement

Types of GitHub Comments

  • On the pull request
  • On the commit
  • On a line

Commenting Enhancements

  • @ mentioning

Mention an issue in a commit and it will show up in the issue and notify anyone subscribed to issue. Include "fixes" "closes" or "resolves to auto close the issue when merged in default branch (probably master)

$ git commit -m "Should help with issue #1"
$ git commit -m "Fixes #1"

Milestones

Milestones are a scheduling tool used to track the progress of activity.

Pull Requests

A pull request is a submission of a proposed change to a code base.

Code Review

Code review is examination of code to determine quality.

Branch Protection

Branch Protection prevents collaborators from making irrevocable changes to the branch.

Repository Statistics

๐Ÿ” back to top


Contributing Templates

When an issues or pull request template is added to a repository, the template contents will automatically populate in the issue or pull request form body. These templates can be stored in the root or a hidden directory named .github.

ISSUE_TEMPLATE.md

PULL_REQUEST_TEMPLATE.md

๐Ÿ” back to top


Contributing Documentation

CODE_OF_CONDUCT.md

A Code of Conduct sets forth the standard of conduct expected of project contributors.

CONTRIBUTING.md

A CONTRIBUTING.md file provides guidance to contributors about best practices for contributing to the project.

Styleguide

Similarly to a journalistic styleguide, a programming styleguide illustrates the project's preferred coding conventions.

๐Ÿ” back to top


New Contributors

Ideally, make project welcoming to newcomers, with user-friendly documentation. Include a mentor list, if applicable.

๐Ÿ” back to top


Helpful Resources

Git and GitHub Documentation

Git Cheat Sheets and Tutorials

GitHub Markdown Documentation

Presentation Tools

Project Funding

๐Ÿ” back to top


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].