Code Monkey home page Code Monkey logo

adfsopensource's Introduction

ADFS Open Source Guidance

What Belongs on ADFS Open Source?

ADFS Open Source projects should provide some benefit to ADFS customers, but not require internal ADFS changes. The general guidance for ADFS Open Source projects is that if a customer might want to use it, and it can be shipped out-of-band with ADFS, we should put it on GitHub.

Examples of projects that belong on ADFS Open Source include

  • All public scripts or tools related to ADFS diagnosability, debugging, management, etc. that are not strictly part of the ADFS codebase

  • All pluggable components that are not strictly part of the ADFS codebase (authentication adapters, relying parties, web customizations, etc.)

Who Supports ADFS Open Source?

The ADFS Product Group is invested in each project available through ADFS Open Source. However, there is no SLA for change requests, and no servicing process for hot fixes. A benefit of open source projects it that they are community-owned, so any bugs that are discovered, or feature requests that are proposed can be implemented by anyone in the community.

Release Requirements

* Code:

Before releasing a new project, or a change to an existing project, the contribution must have some core functionality working.

It is acceptable to have items marked as "TODO", "bug", etc. in the Dev branch of a project, but these issues must be resolved before merging to the release branch.

* Documentation:

All new projects must have basic documentation covering the following:

  • Project Overview (what is this project?)
  • Requirements to install (what do I need to have to run this project?)
  • Steps to install (how do I install/deploy this project?
  • Usage steps and examples (how do I use this project?)
  • Contributing changes (how do I make changes to this project? How do I validate I didn't break anything?)
  • Any special notes that are important for this project, where applicable

* Tests:

All projects must have a base level of test coverage, or a proposed plan for implementing test coverage.

Test coverage can include internal ADFS tests or internal production deployment. However, this is discouraged, as tests should allow community contributors to validate that their changes have not broken existing behavior.

* Code review:

Every change must be reviewed in accordance with the review process (see below)

Branching

Each project should contain two long-lived branches:

  • A Release branch (master), with tags at each major release, and
  • A Dev branch for pre-release changes and stabilization

All changes should be made in Feature branches first. Feature branches should be off the Dev branch for any bug fix, feature addition, doc change, etc.

Each project should maintain a long-lived Debug branch where appropriate (for example, maintaining JavaScript with verbose logging)

Branchest

Code Review Process

Each change will be reviewed when the Feature branch for the change is being merged to the Dev branch. Pull request must have at least one reviewer sign-off before merging to Dev. In the case where the merge is occuring from a forked project into the primary project Dev branch, this review sign-off will have to be by an ADFS Open Source team administrator.

Each change will also be batch-reviewed for release when the Dev branch is periodically merged to master. This review process will require sign-off from an ADFS Open Source team administrator.

Project Structure for Repositories

Each repository will be a collection of similar projects. The main repository should contain a readme with links to, and descriptions of, each project in the repo.

Project Release Cadence

Each project will maintain its own release cadence. Most projects will be released on an as-needed basis, and not on a calendar release basis. When the project owners feel that enough changes exist in the Dev branch to warrent a new release, a release will occur.

adfsopensource's People

Contributors

bongiovimatthew-microsoft avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adfsopensource'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.