Coder Social home page Coder Social logo

pumpkinseed / oss-standard Goto Github PK

View Code? Open in Web Editor NEW
10.0 4.0 3.0 22 KB

Maintainability guidelines of Open-Source Software development

License: Apache License 2.0

oss open-source open-source-community open-source-project open-source-product-design

oss-standard's Introduction

OSS Standard

  • Maintainability guidelines of Open-Source Software development
  • Guidelines aplicable for newly started software projects
  • Any pieces of advice for the improvement of the guideline is warmly accepted.

Issues

  • The first step should always be the issue/ticket
  • If there isn't an issue template try to provide as many additional details as possible, like main issue, how to replicate, version(s) of software(s) used when the issue occured
  • After the discussion and having the possible solution clarified go to the implementation following the basic guidelines

Basic guidelines

Development flow

  1. Pull the master branch to get the most up-to-date version of the system/application/service
  2. Create a feature branch following the branch naming conventions, git branch I332-short-name
  3. Push frequently based on the smaller parts of the sections, follow the push guidelines
  4. Create Pull Request once the development reaches a state where the solution is considered to be done based on the requirements, follow the guidelines of pull request
  5. Accept the reviews and do the change requests

Maintainer flow

  1. Accept pull request on master
  2. Based on the size of the team responsible for the codebase add half of the team as reviewer
  3. Setup additional content for the pull request, in case of Github
    • If half of the reviewers (so 1/4 of the team) approve the changes
    • and all of the change requests get done
    • and the newly added code has at least 80% of code coverage
    • and the automated test system or CI tool runs successfully then merge it following the merge guidelines
  4. When the develop reaches the goals of the next version, release a new version based on the release-guidelines

Third-party developer flow

  1. Fork the original repository
  2. Clone it and the remote origin points to the forked version
  3. Set the remote upstream to the original repository
  4. Frequently do pulls on upstream's master and merge it into the origin's working branch to keep the development up-to-date
  5. Do the steps of the Development flow
  6. Create pull request between forks against the master branch

Branch naming conventions

  • First letter must be I if issue, or T if board ticket, strongly platform restricted
  • After the first letter, add the number of the ticket, ex.: 432
  • After that add the short name of the ticket with dashes in kebab-case, ex.: short-name
  • ex.: I432-short-name or T432-payment-bug-fix

Push guidelines

  • Never use * or . in git add, it helps to overview the files and avoid the pushes of unecessary files (ex.: binaries)
  • Never use -m in git commit, it helps to have an additional overview of the files and makes it possible to format the commit message properly
  • Use git push --set-upstream origin I12-branch-name at the first time
  • Never push changes on the master

Pull request

  • Add well-meaning title so that the maintainer can quickly recognize the purpose of the pull request.
  • Write detailed description in the body, what main issue this PR solves and how is it testable to prove the validity of the solution.
  • Create pull request against master.

Merge guidelines

  • Use Squash to keep the commit line clean from the thousands of commits

Release guidelines

  • In special cases let's handle it in an automated way or go with the following steps by hand
  • Use Semver 2 or language-specific best practices
  • Create annotated tag with git tag -a v1.2.3
  • Push the new changes git push --tags

Github PR additionals

  • Assignes, yourself or an other team member who should deal with the PR
  • Labels, determine the kind of the PR and provide more information about
  • Projects, determine the project where the PR belongs to
  • Milestones, determine the version number where the PR will be released

oss-standard's People

Contributors

pumpkinseed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

oss-standard's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.