Merge "Explain "why opendev" on opendev.org index page"

This commit is contained in:
Zuul 2020-09-08 22:56:29 +00:00 committed by Gerrit Code Review
commit 0b2b8886bc
5 changed files with 210 additions and 53 deletions

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="62.5" height="62.5" viewBox="0 0 60.818816 60.818816" id="svg2" version="1.1" inkscape:version="0.48.2 r9819" sodipodi:docname="logo_plain.svg" inkscape:export-filename="D:\Eigene Dateien Marcel\dev\etherpad-lite\ether.github.com\img\logo.png" inkscape:export-xdpi="288" inkscape:export-ydpi="288">
<title id="title3033">Etherpad</title>
<metadata id="metadata9">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title>Etherpad</dc:title>
<dc:date>2012-11-20</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>Marcel Klehr</dc:title>
</cc:Agent>
</dc:creator>
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/"/>
</cc:Work>
<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/">
<cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
<cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
<cc:requires rdf:resource="http://creativecommons.org/ns#ShareAlike"/>
</cc:License>
</rdf:RDF>
</metadata>
<defs id="defs7"/>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1600" inkscape:window-height="838" id="namedview5" showgrid="false" inkscape:zoom="6.84" inkscape:cx="-26.151689" inkscape:cy="41.02112" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg2" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" units="pt" inkscape:document-units="pt"/>
<path id="path3039" style="fill:none;stroke:#0e300b;stroke-width:1.82456445999999990;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="m 29.936221,16.739417 2.29719,22.733139 m 13.719866,9.37008 -13.76749,-9.370078 -18.010202,8.570208" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc"/>
<path id="path3037" style="fill:none;stroke:#185014;stroke-width:1.82456445999999990;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="m 29.838272,16.44373 -16.150146,31.7248 15.819886,9.28846 0.31239,-47.231053 -0.04763,6.122093 16.180498,32.494606 -16.445267,8.426583 m -4.860544,-29.201644 5.377626,3.10269 5.443554,-3.348981 m -16.056819,9.945478 10.613265,6.343524 10.755253,-5.749067"/>
<path style="fill:none;stroke:#185014;stroke-width:1.82456445999999990;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="M 21.553773,9.1091165 C 22.743554,-0.86550773 35.946656,-2.7841873 38.218887,8.8403001" id="Unbenannt #2"/>
<path sodipodi:type="arc" style="fill:#b3b3b3;fill-opacity:1;stroke:#185014;stroke-width:0.79850829000000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="path3756" sodipodi:cx="7.1760798" sodipodi:cy="10.032578" sodipodi:rx="0.34835339" sodipodi:ry="0.37477049" d="m 7.5244331,10.032578 a 0.34835339,0.37477049 0 1 1 -0.6967067,0 0.34835339,0.37477049 0 1 1 0.6967067,0 z" transform="matrix(3.1221913,0,0,2.972881,7.3844024,-20.305626)"/>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -0,0 +1,8 @@
<svg width="52" height="52" xmlns="http://www.w3.org/2000/svg">
<rect ry="4" rx="4" height="40" width="40" y="0" x="0" fill="#ffaaaa"/>
<rect ry="4" rx="4" height="40" width="40" y="12" x="12" fill="#aaffaa"/>
<path d="m18,22l12,0l0,4l-12,0l0,-4z" fill="#ff0000"/>
<path d="m34,22l12,0l0,4l-12,0l0,-4z" fill="#ff0000"/>
<path d="m18,36l4,0l0,-4l4,0l0,4l4,0l0,4l-4,0l0,4l-4,0l0,-4l-4,0l0,-4z" fill="#008000"/>
<path d="m34,36l4,0l0,-4l4,0l0,4l4,0l0,4l-4,0l0,4l-4,0l0,-4l-4,0l0,-4z" fill="#008000"/>
</svg>

After

Width:  |  Height:  |  Size: 504 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="97px" height="97px" viewBox="0 0 97 97" enable-background="new 0 0 97 97" xml:space="preserve">
<g>
<path fill="#F05133" d="M92.71,44.408L52.591,4.291c-2.31-2.311-6.057-2.311-8.369,0l-8.33,8.332L46.459,23.19 c2.456-0.83,5.272-0.273,7.229,1.685c1.969,1.97,2.521,4.81,1.67,7.275l10.186,10.185c2.465-0.85,5.307-0.3,7.275,1.671 c2.75,2.75,2.75,7.206,0,9.958c-2.752,2.751-7.208,2.751-9.961,0c-2.068-2.07-2.58-5.11-1.531-7.658l-9.5-9.499v24.997 c0.67,0.332,1.303,0.774,1.861,1.332c2.75,2.75,2.75,7.206,0,9.959c-2.75,2.749-7.209,2.749-9.957,0c-2.75-2.754-2.75-7.21,0-9.959 c0.68-0.679,1.467-1.193,2.307-1.537V36.369c-0.84-0.344-1.625-0.853-2.307-1.537c-2.083-2.082-2.584-5.14-1.516-7.698 L31.798,16.715L4.288,44.222c-2.311,2.313-2.311,6.06,0,8.371l40.121,40.118c2.31,2.311,6.056,2.311,8.369,0L92.71,52.779 C95.021,50.468,95.021,46.719,92.71,44.408z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 57" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#A" x=".5" y=".5"/><symbol id="A" overflow="visible"><path d="M0 55.485h64.02L50.372 31.832v-8.1l3.78-4.935H42.814L32 0 21.207 18.762H9.87l3.78 4.935v8.092zm13.65-3.2H5.602l8.047-13.96zm5.602 0h-2.356V33.167h2.356zm0-22.318h-2.356v-2.355h2.356zm11.16 22.318h-7.958V33.167h7.914zm11.16 0H33.6V33.167h7.914V52.24h.044zm0-22.318h-19.12v-2.355h19.073zm5.557 22.318h-2.36V33.167h2.356zm0-22.318h-2.36v-2.355h2.356zm3.246 8.314l8.047 13.96h-8.047c0 .044 0-13.96 0-13.96zM32 6.536l7.07 12.27H24.94zm15.605 15.516l-.5.622v1.734h-30.23v-1.734l-.5-.622z" stroke="none" fill="#071d49" fill-rule="nonzero"/></symbol></svg>

After

Width:  |  Height:  |  Size: 823 B

View File

@ -1,72 +1,178 @@
{{template "base/head" .}}
<div class="home">
<div class="ui stackable middle very relaxed page grid">
<div class="sixteen wide center aligned centered column">
<div class="hero" id="opendev">
<img alt="OpenDev" class="logo" src="/img/opendev.svg" />
<h2>Free Software Needs Free Tools</h2>
</div>
</div>
<div class="ui stackable middle very relaxed page grid">
<div class="sixteen wide center aligned centered column">
<div class="hero" id="opendev">
<img alt="OpenDev" class="logo" src="/img/opendev.svg" />
</div>
</div>
<div class="four wide center aligned centered column">
<div><img alt="Gitea" src="/img/git.svg" width="60"></div>
<a href="https://opendev.org/explore/organizations">Code hosting</a>
</div>
<div class="four wide center aligned centered column">
<div><img alt="Gerrit" src="/img/gerrit.svg" width="60"></div>
<a href="https://review.opendev.org/">Code review</a>
</div>
<div class="four wide center aligned centered column">
<div><img alt="Zuul CI" src="/img/zuul.svg" width="60"></div>
<a href="https://zuul.opendev.org/">Continuous integration</a>
</div>
<div class="four wide center aligned centered column">
<div><img alt="Etherpad" src="/img/etherpad.svg" width="60"></div>
<a href="https://etherpad.opendev.org/">Collaborative editing</a>
</div>
</div>
<div class="ui stackable middle very relaxed page grid">
<div class="sixteen wide left aligned centered column">
<p>OpenDev is a space for collaborative Open Source software development.</p>
<p>OpenDevs mission is to provide project hosting, continuous integration tooling,
and virtual collaboration spaces for Open Source software projects. OpenDev is
itself self hosted on this set of tools including
<a href="https://review.opendev.org/">Code Review (Gerrit)</a>,
<a href="https://zuul.opendev.org/"> Continuous Integration (Zuul)</a>,
<a href="https://etherpad.opendev.org/">Etherpad</a>,
Wiki (mediawiki),
<a href="https://opendev.org/explore/organizations">Code Browsing (gitea)</a> and so on.
This means that OpenDev itself is run like an open source project, you
can join us and help run the system. Additionally all of the services we run are
open source software themselves. The configuration for this site lives
<a href="https://opendev.org/opendev/system-config">here!</a></p>
<div class="sixteen wide left aligned centered column">
<h2 id="what-is-opendev">What is Opendev?</h2>
<p>OpenDev is a space enabling collaborative Open Source
software development at a huge scale. It is centered around code hosting,
code review, and continuous integration, provided exclusively through
open source solutions like Git, Gitea, Gerrit and Zuul. It also provides
a number of peripheral collaboration services (like an etherpad instance for
collaborative text editing). All Opendev services are openly operated by the
Opendev community, and continuously integrated and deployed using Opendev
itself.</p>
<h1 id="current-status">Current Status</h1>
<h2 id="opendev-is-different">How is development different with Opendev</h2>
<p>Opendev is not using a pull request (or merge request)
workflow, as implemented by GitHub or Gitlab. It follows a change proposal
workflow, which results in a slightly different experience.</p>
<p>In a pull request workflow, contribution starts by
forking the original repository to your personal repositories, cloning that
repository locally, iterating on development while pushing commits to the
remote repository regularly... until your code seems ready to merge, at
which point you ask the service to create a pull request between your branch
and the original repository. The pull request is reviewed, and if accepted
your changes get merged into the original repository.</p>
<p>In Gerrit, contribution starts by cloning the original
repository locally. You iterate on development, then use git push (or the
git-review tool) to propose your change to Gerrit. The change is reviewed,
and if accepted your change gets merged into the original repository.</p>
<p>The difference is subtle, but significant. In the
pull-request model, you create a fork of the original repository, push
changes to it, and ultimately propose to merge changes back. In the change
model, you prepare a change, and propose it. You do not create a fork and
everyone contributes to the same original repository. It generally results
in less fragmentation, and avoids confusion between the original repository
and its numerous forks.</p>
<p>That high-level difference also affects lower-level
details. A pull request may contain several commits, and if merged all those
commits will appear in the original repository history. In Gerrit, every commit
will result in a separate change for code reviewers to review, so developers
usually squash commits created while developing but which do not help
reviewers understand the proposed change. It generally results in easier
code review, and a cleaner git log as meaningful commit messages are
reviewed as part of the change.</p>
<p>In summary, the Gerrit workflow, its user experience
and UI are different from the pull request workflow. While it may not be
immediately familiar to developers used to pull request workflows, it's
worth learning. Its long-term benefits outweigh the short-term drawback
of having to learn a new tool, especially if you are going to spend a lot
of time developing for that project anyway.</p>
<p>We are still early in the process of building this out.</p>
<p>Most of the services we run were inherited and rebranded from the
existing community run OpenStack Infrastructure. This means that while we do already
have many services running, there may still be some services branded as "OpenStack" while we complete the rebranding.</p>
<h2 id="integrated-ci">Integrated Continuous Integration</h2>
<p>One key benefit of Opendev is that it integrates
powerful continuous integration features, made possible by the donation of
compute resources from our infrastructure partners. Test jobs are
run when changes are proposed and provide code reviewers with valuable
information. Test jobs also run again at merge-time, in case recently-approved
changes introduce an incompatibility. This, combined with the fact that
changes must pass tests before they can be approved, prevents
merging broken code.</p>
<p>Advanced Zuul features like speculative execution of
tests allows changes to test in parallel, so development velocity is
never limited by how thorough you want your tests to be. Changes in one git
repository can depend on proposed changes in another repository, allowing
integration testing of features actively developed across multiple projects,
removing artificial barriers between development teams.</p>
<p>This advanced continuous integration system was
developed to sustain the complexity and scale of OpenStack development, one
of the 3 most actively developed open source projects in the world. Opendev
makes this system available to other projects -- enabling open development
at a huge scale for everyone.</p>
<h1 id="join-us">Join Us</h1>
<p>As mentioned previously the OpenDev services themselves are open source software managed on top of OpenDev itself. This means that in addition to using OpenDev to host your software development activities you can help us run OpenDev with all of the same tools.</p>
<p>If you use the system and find it useful, wed love to have your help running it as well.</p>
<h2 id="free-tools">Free software needs free tools</h2>
<p>Finally, another key difference between Opendev and
other development infrastructure services like GitHub or Gitlab.com is that
it's built purely using open source software. GitHub and Gitlab.com are free
to use for open source projects, but they are both using proprietary code.
If your free and open source software requires proprietary code to be built,
is it really free?</p>
<p>It is widely-accepted today that using open source
technology in your software stacks reduces your dependency to third-parties
and allows to spread innovation. It should be obvious that writing software
using open source technology has the same effect. Nothing prevents a service
provider from changing its service terms, creating new limitations or even
fully excluding your project, or contributors from specific countries.
Proprietary development services create the same form of hard limits, lock-in
and dependency than proprietary software does, and prevent open innovation
in the development infrastructure space.</p>
<p>Opendev is entirely built using open source software,
but goes one step beyond: it is also openly operated. All its operation and
configuration is also open source, lives in git, and is continuously-deployed.
In the spirit of open source, it is easy to study, replicate, modify and
redistribute. Like free and open source software, it requires engaging with
its community to get the most of it -- it's not a service you consume, it's
a community you join. That can be a bit overwhelming if you just want to
focus on development, especially when ready-to-consume services are
available. But it's worth it, especially if you want to have a say on what
services are provided, or just support the idea of improving open source
tools in that space.</p>
<h1 id="faq">FAQ</h1>
<h2 id="faq">FAQ</h2>
<h2 id="isnt-this-just-openstack-infrastructure-rebranded">Isnt this just OpenStack Infrastructure rebranded?</h2>
<p>It is more than that. We want to make this toolset available to others that would find it helpful. OpenStack is one of the OpenDev tenants, but other tenants like Zuul or $gizmo would be just as important.</p>
<h3 id="isnt-this-just-openstack-infrastructure-rebranded">Isnt this just OpenStack Infrastructure rebranded?</h3>
<p>It is more than that. We want to make this toolset
available to others that would find it helpful. OpenStack is one of the OpenDev
tenants, but other tenants like Zuul or $gizmo would be just as important.</p>
<h2 id="can-i-host-my-project-on-opendev">Can I host my project on OpenDev?</h2>
<p>Yes! However, as noted above it is still early days yet and the early experience might be a bit bumpy. Certain things may still say “OpenStack” on them as we figure out the transition. And while any moves should come with appropriate redirects, we may have some inadvertent misses.</p>
<h3 id="can-i-host-my-project-on-opendev">Can I host my project on OpenDev?</h3>
<p>Yes! However, as noted above it is still early days yet
and the early experience might be a bit bumpy. Certain things may still say
“OpenStack” on them as we figure out the transition. And while any moves should
come with appropriate redirects, we may have some inadvertent misses.</p>
<h2 id="can-i-run-tests-on-windows-or-osx-machines">Can I run tests on Windows or OSX machines?</h2>
<p>Currently all of our test resources are Linux based. Adding additional platforms would likely require someone to help us get that running, but Zuul will support systems with ansible connection plugins. Talk to us!</p>
<h3 id="can-i-run-tests-on-windows-or-osx-machines">Can I run tests on Windows or OSX machines?</h3>
<p>Currently all of our test resources are Linux based.
Adding additional platforms would likely require someone to help us get that
running, but Zuul will support systems with ansible connection plugins.
Talk to us!</p>
<h2 id="i-am-an-existing-openstack-infra-user-do-i-need-to-do-anything">I am an existing OpenStack Infra user do I need to do anything?</h2>
<p>No. Well continue to communicate changes as they happen. Well also do our best to make this as smooth a transition as possible. If we run into situations that force us to break something well be sure to let you know at that point.</p>
<h3 id="i-am-an-existing-openstack-infra-user-do-i-need-to-do-anything">I am an existing OpenStack Infra user do I need to do anything?</h3>
<p>No. Well continue to communicate changes as they
happen. Well also do our best to make this as smooth a transition as
possible. If we run into situations that force us to break something well
be sure to let you know at that point.</p>
<h2 id="is-a-cla-required-for-hosted-repos">Is a CLA required for hosted repos?</h2>
<p>No.</p>
<h3 id="is-a-cla-required-for-hosted-repos">Is a CLA required for hosted repos?</h3>
<p>No.</p>
<h2 id="what-if-i-dont-like-gerrit-and-would-prefer-insert-tool-here">What if I dont like Gerrit and would prefer (insert tool here)?</h2>
<p>Weve got a fair bit of experience with the existing toolset and adding new tools for which weve already got an answer is currently out of scope. We think the existing tools (like Gerrit) work well, and should only get better as we update them. The system is able to scale because we do not need multiple implementations of different software that solve similar problems.</p>
<h3 id="what-if-i-dont-like-gerrit-and-would-prefer-insert-tool-here">What if I dont like Gerrit and would prefer (insert tool here)?</h3>
<p>Weve got a fair bit of experience with the existing
toolset and adding new tools for which weve already got an answer is currently
out of scope. We think the existing tools (like Gerrit) work well, and should
only get better as we update them. The system is able to scale because we do
not need multiple implementations of different software that solve similar
problems.</p>
<h2 id="why-cant-we-use-giteas-issue-tracker-and-wiki">Why can't we use Gitea's issue tracker and wiki?</h2>
<p>For scaling and redundancy purposes we are actually running a number of independent Giteas behind a load balancer. We can keep git repos in sync from Gerrit reasonably well, but the issue tracker and wiki functionality would need another level of state syncing. Once Gitea can be run as a proper cluster this may change, but until then the functionality is limited.</p>
<h3 id="why-cant-we-use-giteas-issue-tracker-and-wiki">Why can't we use Gitea's issue tracker and wiki?</h3>
<p>For scaling and redundancy purposes we are actually
running a number of independent Giteas behind a load balancer. We can keep
git repos in sync from Gerrit reasonably well, but the issue tracker and
wiki functionality would need another level of state syncing. Once Gitea
can be run as a proper cluster this may change, but until then the
functionality is limited.</p>
<h1 id="contact-info">Contact info</h1>
<ul>
<li>IRC #opendev on Freenode (<a href="http://eavesdrop.openstack.org/irclogs/%23opendev/">logs</a>)</li>
<li>Mailing list: service-discuss@lists.opendev.org (<a href="http://lists.opendev.org/cgi-bin/mailman/listinfo/service-discuss">subscribe</a>)</li>
<li>Important announcements: service-announce@lists.opendev.org (<a href="http://lists.opendev.org/cgi-bin/mailman/listinfo/service-announce">subscribe</a>)</li>
</ul>
</div>
</div>
<h2 id="contact-info">Contact info</h2>
<ul>
<li>IRC #opendev on Freenode (<a href="http://eavesdrop.openstack.org/irclogs/%23opendev/">logs</a>)</li>
<li>Mailing list: service-discuss@lists.opendev.org (<a href="http://lists.opendev.org/cgi-bin/mailman/listinfo/service-discuss">subscribe</a>)</li>
<li>Important announcements: service-announce@lists.opendev.org (<a href="http://lists.opendev.org/cgi-bin/mailman/listinfo/service-announce">subscribe</a>)</li>
</ul>
</div>
</div>
</div>
{{template "base/footer" .}}