home-assistant.github.io/blog/2017/01/21/home-assistant-governance/index.html
2018-02-20 00:24:57 +00:00

253 lines
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Home Assistant Governance [updated] - Home Assistant</title>
<meta name="author" content="Paulus Schoutsen">
<meta name="description" content="Protecting Home Assistant for all, now and into the future">
<meta name="viewport" content="width=device-width">
<link rel="canonical" href="https://home-assistant.io/blog/2017/01/21/home-assistant-governance/">
<meta property="fb:app_id" content="338291289691179">
<meta property="og:title" content="Home Assistant Governance [updated]">
<meta property="og:site_name" content="Home Assistant">
<meta property="og:url" content="https://home-assistant.io/blog/2017/01/21/home-assistant-governance/">
<meta property="og:type" content="article">
<meta property="og:description" content="Protecting Home Assistant for all, now and into the future">
<meta property="og:image" content="https://home-assistant.io/images/default-social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@home_assistant">
<meta name="twitter:creator" content="@balloob">
<meta name="twitter:title" content="Home Assistant Governance [updated]">
<meta name="twitter:description" content="Protecting Home Assistant for all, now and into the future">
<meta name="twitter:image" content="https://home-assistant.io/images/default-social.png">
<link href="/stylesheets/screen.css" media="screen, projection, print" rel="stylesheet">
<link href="/atom.xml" rel="alternate" title="Home Assistant" type="application/atom+xml">
<link rel='shortcut icon' href='/images/favicon.ico' />
<link rel='icon' type='image/png' href='/images/favicon-192x192.png' sizes='192x192' />
</head>
<body >
<header class='site-header'>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item three-tenths lap-two-sixths palm-one-whole ha-title">
<a href="/" class="site-title">
<img width='40' src='/demo/favicon-192x192.png'>
<span>Home Assistant</span>
</a>
</div>
<div class="grid__item seven-tenths lap-four-sixths palm-one-whole">
<nav>
<input type="checkbox" id="toggle">
<label for="toggle" class="toggle" data-open="Main Menu" data-close="Close Menu"></label>
<ul class="menu pull-right">
<li><a href="/getting-started/">Getting started</a></li>
<li><a href="/components/">Components</a></li>
<li><a href="/docs/">Docs</a></li>
<li><a href="/cookbook/">Examples</a></li>
<li><a href="/developers/">Developers</a></li>
<li><a href="/blog/">Blog</a></li>
<li><a href="/help/">Need help?</a></li>
<li><a href='#' class='show-search'><i class="icon-search"></i></a></li>
</ul>
</nav>
<div class='search-container' style='display: none'>
<div class='search'>
<i class="icon-search"></i>
<input id='search' placeholder='Search the docs…'>
<a href='#' class='close'><i class="icon-remove-sign"></i></a>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="grid-wrapper">
<div class="grid grid-center">
<div class="grid__item two-thirds lap-one-whole palm-one-whole">
<article class="post">
<header>
<h1 class="title indent">Home Assistant Governance [updated]</h1>
<div class="meta clearfix">
<time datetime="2017-01-21T15:05:00+00:00" pubdate data-updated="true"><i class="icon-calendar"></i> January 21, 2017</time>
<span class="byline author vcard"><i class='icon-user'></i> Paulus Schoutsen</span>
<span><i class='icon-time'></i> five minutes reading time</span>
<span>
<i class="icon-tags"></i>
<ul class="tags unstyled">
<li>Organization</li>
</ul>
</span>
<a class='comments'
href="#post-comments"
>Comments</a>
</div>
</header>
<h3><a class="title-link" name="update-jan-28-2017" href="#update-jan-28-2017"></a> UPDATE JAN 28, 2017</h3>
<p>After feedback from the community we have updated <a href="/developers/cla/">the CLA</a> and the license that Home Assistant is distributed under. For the CLA, instead of enforcing requirements on the grants and code, we now require contributions to be licensed under the Apache 2.0 license. Special thanks to <a href="https://twitter.com/mjg59">Matthew Garrett</a> for his feedback and advice.</p>
<p>Starting with release 0.37, Home Assistant will re-license the current code under <a href="/developers/license/">the Apache 2.0 license</a>. This is the license that will be used moving forward for all projects under our organization.</p>
<hr />
<p>The Home Assistant project and community has seen enormous growth in the last three years. Many volunteers work tirelessly everyday to give you all the awesomeness that you see today. Much more work is involved than many people realize. Beyond simply coding Home Assistant, volunteers continually maintain related projects, update documentation, post examples, author blog posts, and moderate the forums and chat. This is something that we want to keep safe and functional, even as we grow.</p>
<p>Starting today we are announcing a few initiatives to help protect our users, contributors and community members.</p>
<a name="read-more"></a>
<h2><a class="title-link" name="code-of-conduct" href="#code-of-conduct"></a> Code of Conduct</h2>
<p>More people are getting to know and love Home Assistant every day and our community keeps growing. Our community consists of people from all over the world with different backgrounds and we want Home Assistant to be a place where everyone can feel at home. To help with this were introducing a Code of Conduct. The Code of Conduct describes what type of behavior is unacceptable, how we will enforce it and where to report incidents.</p>
<p>Moving forward this Code of Conduct will be active for all projects within the Home Assistant organization.</p>
<p><a href="/developers/code_of_conduct/">Read the Code of Conduct</a></p>
<h2><a class="title-link" name="contributor-license-agreement" href="#contributor-license-agreement"></a> Contributor License Agreement</h2>
<p>Moving forward we will also require that all contributors to any project have electronically signed our <a href="/developers/cla/">contributor license agreement (CLA)</a>. <del>We have adopted the CLA that GitHub uses for their projects</del> (see update at the top). Currently we have no plans to retroactively require a CLA for previous contributions, only those going forward.</p>
<p>Until a signed CLA is on file your pull request will not be reviewed or accepted. When you open a new pull request, if you do not have a CLA on file, our helpful bot will walk you through the steps to complete the process.</p>
<p><strong>We intend to require an electronically signed contributor licensing agreement for all contributors beginning with our next release (0.37), currently scheduled for release on Saturday, January 28th, 2017 (one week from today).</strong> The CLA is being added to all repositories today.</p>
<p>A CLA is difficult to describe but GitHub did an excellent job so this next section is taken from <a href="https://cla.github.com/">https://cla.github.com</a>:</p>
<h3><a class="title-link" name="what-is-a-contributor-license-agreement" href="#what-is-a-contributor-license-agreement"></a> What is a Contributor License Agreement?</h3>
<p>A Contributor License Agreement, known as a CLA, asks contributors to confirm that:</p>
<ol>
<li>Anyone can use your contributions anywhere, for free, forever.</li>
<li>Your contributions do not infringe on anyone elses rights.</li>
</ol>
<p>The GitHub CLA helps ensure the smooth operation and usability of the open source projects that we maintain.</p>
<h3><a class="title-link" name="why-is-a-cla-necessary" href="#why-is-a-cla-necessary"></a> Why is a CLA necessary?</h3>
<p>It depends on the jurisdiction, but in the United States, contributions are owned by the author or their employer. When the contribution is accepted, the project becomes a bundle of derivative works. The agreement of all contributors are necessary to maintain distribution of the complete project and to any licensing agreement.</p>
<h3><a class="title-link" name="isnt-that-the-purpose-of-an-open-source-license" href="#isnt-that-the-purpose-of-an-open-source-license"></a> Isnt that the purpose of an open source license?</h3>
<p>Most open source licenses deal with use of the original code, and dont refer to contributions, or derivatives of the original.</p>
<h3><a class="title-link" name="how-does-a-cla-protect-a-project" href="#how-does-a-cla-protect-a-project"></a> How does a CLA protect a project?</h3>
<p>If the owner of a contribution decides that they dont want the contribution to be part of the project or in any given distribution, the law is on their side. The project, contributors, and users may be subject to legal action. This may require payment of damages and could prevent further usage or contributions until the matter is resolved.</p>
<p>Even when there is no legal pursuit, too much ambiguity can jeopardize or doom a project by preventing those that cant risk legal action from getting involved.</p>
<h3><a class="title-link" name="why-does-it-seem-like-only-corporate-projects-have-a-cla" href="#why-does-it-seem-like-only-corporate-projects-have-a-cla"></a> Why does it seem like only “corporate” projects have a CLA?</h3>
<p>There are many projects without corporate ownership that use a CLA or even a copyright assignment: jQuery and Eclipse, for example. However, it is true that projects with financial backing tend to be at a higher risk of becoming a target, so they may have a lower tolerance for legal ambiguity.</p>
<h2><a class="title-link" name="security-requirements" href="#security-requirements"></a> Security requirements</h2>
<p>With more collaborators involved with Home Assistant we are also exposing ourselves to more risk as more people have write access. As such we taking the following steps.</p>
<ol>
<li>As of November 3rd, 2016, all collaborators have been required to have 2 factor authentication (2FA) enabled on their GitHub account.</li>
<li>Going forward, we will do an audit from time to time and strip collaborators from write access if they havent contributed for a while. This is in no sense meant to boot people, and you are absolutely eligible to get it back in the future when you wish start contributing again.</li>
</ol>
<h2><a class="title-link" name="licensing" href="#licensing"></a> Licensing</h2>
<p>We will now ensure that a <code class="highlighter-rouge">LICENSE.md</code> file exists in all projects under the Home Assistant organization and is an <a href="https://opensource.org/licenses">OSI approved open source license</a> or a <a href="https://creativecommons.org">Creative Commons</a> license.</p>
<h3><a class="title-link" name="code-license" href="#code-license"></a> Code License</h3>
<p>The chosen license for all code projects under the Home Assistant organization is <a href="/developers/license/">the Apache 2.0 license</a>.</p>
<h3><a class="title-link" name="documentation-license" href="#documentation-license"></a> Documentation License</h3>
<p>All content on home-assistant.io and all other documentation/asset projects under the Home Assistant organization will be licensed under the Creative Commons License, specifically the <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">Attribution-NonCommercial-ShareAlike 4.0 International</a> license.</p>
<h2><a class="title-link" name="crediting-contributors" href="#crediting-contributors"></a> Crediting contributors</h2>
<p>We have now mostly automated updating the <a href="/developers/credits/">Credits</a> page so that contributors get their attribution more quickly.</p>
<h2><a class="title-link" name="in-closing" href="#in-closing"></a> In closing</h2>
<p>We hope you understand that our desire with these changes is only to help protect the amazing community that has been built around Home Assistant. If you have any questions, please contact us via email, <a href="https://twitter.com/home_assistant">Twitter</a> or <a href="https://discord.gg/c5DvZ4e">Discord</a>.</p>
</article>
<div id='post-comments'></div>
<div id='discourse-comments'></div>
<script type="text/javascript">
DiscourseEmbed = { discourseUrl: 'https://community.home-assistant.io/',
discourseEmbedUrl: 'https://home-assistant.io/blog/2017/01/21/home-assistant-governance/' };
(function() {
var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
})();
</script>
</div>
<aside id="sidebar" class="grid__item one-third lap-one-whole palm-one-whole">
<div class="grid">
<section class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">About Home Assistant</h1>
<ul class="divided">
<li>
Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control.
</li>
<li><a href='/getting-started/'>Get started with Home Assistant</a></li>
<li><a href='/demo/'>Try the online demo</a></li>
<li><a class="twitter-follow-button" href="https://twitter.com/Home_Assistant">Follow Home Assistant on Twitter</a></li>
<li><div class="fb-like" data-href="https://www.facebook.com/homeassistantio/" data-layout="standard" data-action="like" data-size="small" data-show-faces="true" data-share="false"></div></li>
</ul>
</section>
<div id="fb-root"></div>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.async=true;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<script>(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.async=true;js.src="//connect.facebook.net/en_US/all.js#appId=338291289691179&xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));</script>
<section class="sharing aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Share this post</h1>
<a href="//twitter.com/share"
class="twitter-share-button"
data-via="home_assistant"
data-related="home_assistant"
data-url="https://home-assistant.io/blog/2017/01/21/home-assistant-governance/"
data-counturl="https://home-assistant.io/blog/2017/01/21/home-assistant-governance/" >Tweet</a>
<div class="fb-share-button" style='top: -6px;'
data-href="https://home-assistant.io/blog/2017/01/21/home-assistant-governance/"
data-layout="button_count">
</div>
<div class="g-plusone" data-size="standard"></div>
</section>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<section id="recent-posts" class="aside-module grid__item one-whole lap-one-half">
<h1 class="title delta">Recent Posts</h1>
<ul class="divided">
<li class="post">
<a href="/blog/2018/02/19/cloud-update/">Cloud Update</a>
</li>
<li class="post">
<a href="/blog/2018/02/10/release-63/">0.63: Entity Registry, SQL Sensor, Mercedes cars</a>
</li>
<li class="post">
<a href="/blog/2018/02/09/disabling-disqus/">Disabling Disqus comments</a>
</li>
<li class="post">
<a href="/blog/2018/01/27/release-62/">0.62: MyChevy, Iota and Venstar Thermostat</a>
</li>
<li class="post">
<a href="/blog/2018/01/21/clarification-emulated-hue/">Clarification about Emulated Hue</a>
</li>
</ul>
</section>
</div>
</aside>
</div>
</div>
<footer>
<div class="grid-wrapper">
<div class="grid">
<div class="grid__item">
<div class="copyright">
<a rel="me" href='https://twitter.com/home_assistant'><i class="icon-twitter"></i></a>
<a rel="me" href='https://facebook.com/homeassistantio'><i class="icon-facebook"></i></a>
<a rel="me" href='https://plus.google.com/110560654828510104551'><i class="icon-google-plus"></i></a>
<a rel="me" href='https://github.com/home-assistant/home-assistant'><i class="icon-github"></i></a>
<div class="credit">
Contact us at <a href='mailto:hello@home-assistant.io'>hello@home-assistant.io</a> (no support!).<br>
Website powered by <a href='http://jekyllrb.com/'>Jekyll</a> and the <a href='https://github.com/coogie/oscailte'>Oscalite theme</a>.<br />
Hosted by <a href='https://pages.github.com/'>GitHub</a> and served by <a href='https://cloudflare.com'>CloudFlare</a>.
</div>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">home-assistant.io</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
</div>
</div>
</div>
</div>
</footer>
<script>
var _gaq=[['_setAccount','UA-57927901-1'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));
</script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
<script type="text/javascript">
docsearch({
apiKey: 'ae96d94b201c5444c8a443093edf3efb',
indexName: 'home-assistant',
inputSelector: '#search',
debug: false // Set debug to true if you want to inspect the dropdown
});
document.querySelector('.search .close').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'none';
});
document.querySelector('.show-search').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'block';
document.getElementById('toggle').checked = false;
document.querySelector('.search-container input').focus();
});
</script>
</body>
</html>