blob: 4975e2f80affa763b8f8dfbb4e7d1f5e665e9c13 [file] [log] [blame]
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" type="image/png" href="../../favicon-196x196.png" sizes="196x196"> <meta name="application-name" content="Apache Hop (Incubating)"> <link rel="manifest" href="../../site.webmanifest"> <title>Preview Release 0.10 - Hop</title> <link rel="canonical" href="../../news/release-preview-0-10/"> <link rel="stylesheet" href="../../_/css/site-f389897e03.css"> </head> <body class="article"> <div id="cookies-eu-banner" style="display: none;"> <div id="cookies-eu-content"> By continuing to visit this site, you accept the use of <a href="/cookie-info/">cookies.</a> <button id="cookies-eu-accept">Accept</button> </div> <button id="cookies-eu-reject">Reject</button> </div> <header class="header"> <nav class="navbar"> <div class="navbar-brand"> <a class="nav-logo" href="../../" title="Hop"><span>Hop</span></a> <div id="topbar-nav" class="navbar-menu"> <div class="navbar-end"> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="#">Documentation</a> <div class="navbar-dropdown"> <a class="navbar-item" href="../../manual/latest/getting-started.html">Getting started</a> <a class="navbar-item" href="../../manual/latest/">User manual</a> <a class="navbar-item" href="../../tech-manual/latest/">Technical Documentation</a> <a class="navbar-item" href="../../dev-manual/latest/">Developer Documentation</a> <a class="navbar-item" href="../../docs/architecture/">Architecture</a> <a class="navbar-item" href="../../docs/roadmap/">Roadmap</a> <a class="navbar-item" href="../../docs/qa">Q&amp;A</a> </div> </div> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="#">Community</a> <div class="navbar-dropdown"> <a class="navbar-item" href="../../community/contributing/">Contributing</a> <a class="navbar-item" href="../../community/tools/">Tools</a> <a class="navbar-item" href="../../community/team/">Team</a> </div> </div> <a class="navbar-item" href="../../download/download/">Download</a> <div class="navbar-item has-dropdown is-hoverable"> <a class="navbar-link" href="#">About</a> <div class="navbar-dropdown"> <a class="navbar-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a> </div> </div> </div> </div> <div class="navbar-search"> <input id="search-input" type="text" placeholder="Search docs" class="ds-input" autocomplete="off" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-owns="algolia-autocomplete-listbox-0" dir="auto"> </div> <div class="navbar-tools"> <a href="https://chat.project-hop.org" title="Chat with us" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path d="m 23.399705,7.0517653 c -0.811583,-1.755522 -1.98643,-3.2324028 -3.542396,-4.4727237 0.04144,0.8420009 0.131904,2.6427217 0.131904,2.6427217 0,0 0.09696,0.1272 0.13632,0.182401 1.572478,2.199681 2.147037,4.6376017 1.623358,7.2857637 -1.050239,5.309843 -6.218105,8.549046 -11.455186,7.224805 C 5.6960779,18.752172 2.6254257,14.043529 3.4949926,9.3753663 4.1813918,5.6900843 6.3558852,3.2350424 9.8870488,1.9875216 l 0.1279682,-0.048 0.100416,-0.072 C 10.543401,1.2611208 10.961,0.6477608 11.406631,0 6.0547335,0.2656 0.67230798,4.5661633 0.05570071,11.107927 -0.54103457,17.438011 3.7200163,23.083134 9.8089048,24.321855 16.154114,25.612736 22.194522,21.863214 24.019864,15.86257 24.932631,12.862008 24.719032,9.9083263 23.399704,7.0542453 Z M 8.2979624,11.010647 c 0.267552,2.546882 2.4715176,4.282562 5.0209866,4.000322 2.504829,-0.2776 4.335931,-2.731601 3.861787,-5.2146427 -0.3696,-1.936001 -0.77808,-3.864402 -1.170046,-5.796084 -0.162144,-0.7991999 -0.326208,-1.5984007 -0.49824,-2.4414407 -0.06784,0.056 -0.09936,0.0848 -0.128064,0.1128 -0.858239,0.84272 -1.715997,1.6859209 -2.574236,2.5285617 -1.045056,1.02632 -2.08867,2.053921 -3.1362212,3.077522 -1.0506224,1.02664 -1.5288936,2.279601 -1.3760624,3.7327217 z"/></svg></a> <a href="https://twitter.com/projhop" title="Follow us on Twitter" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6.5 8.778c-.441.196-.916.328-1.414.388.509-.305.898-.787 1.083-1.362-.476.282-1.003.487-1.564.597-.448-.479-1.089-.778-1.796-.778-1.59 0-2.758 1.483-2.399 3.023-2.045-.103-3.86-1.083-5.074-2.572-.645 1.106-.334 2.554.762 3.287-.403-.013-.782-.124-1.114-.308-.027 1.14.791 2.207 1.975 2.445-.346.094-.726.116-1.112.042.313.978 1.224 1.689 2.3 1.709-1.037.812-2.34 1.175-3.647 1.021 1.09.699 2.383 1.106 3.773 1.106 4.572 0 7.154-3.861 6.998-7.324.482-.346.899-.78 1.229-1.274z"/></svg></a> <a href="https://www.linkedin.com/company/hop-project/" title="Follow us on LinkedIn" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg></a> <a href="https://www.youtube.com/channel/UCGlcYslwe03Y2zbZ1W6DAGA" title="Subscribe to our YouTube channel" target="_blank"><svg height="30" width="30" viewBox="0 0 30 30" class="brand-icon"><path fill-rule="evenodd" d="M4.652 0h1.44l.988 3.702.916-3.702h1.454l-1.665 5.505v3.757h-1.431v-3.757l-1.702-5.505zm6.594 2.373c-1.119 0-1.861.74-1.861 1.835v3.349c0 1.204.629 1.831 1.861 1.831 1.022 0 1.826-.683 1.826-1.831v-3.349c0-1.069-.797-1.835-1.826-1.835zm.531 5.127c0 .372-.19.646-.532.646-.351 0-.554-.287-.554-.646v-3.179c0-.374.172-.651.529-.651.39 0 .557.269.557.651v3.179zm4.729-5.07v5.186c-.155.194-.5.512-.747.512-.271 0-.338-.186-.338-.46v-5.238h-1.27v5.71c0 .675.206 1.22.887 1.22.384 0 .918-.2 1.468-.853v.754h1.27v-6.831h-1.27zm2.203 13.858c-.448 0-.541.315-.541.763v.659h1.069v-.66c.001-.44-.092-.762-.528-.762zm-4.703.04c-.084.043-.167.109-.25.198v4.055c.099.106.194.182.287.229.197.1.485.107.619-.067.07-.092.105-.241.105-.449v-3.359c0-.22-.043-.386-.129-.5-.147-.193-.42-.214-.632-.107zm4.827-5.195c-2.604-.177-11.066-.177-13.666 0-2.814.192-3.146 1.892-3.167 6.367.021 4.467.35 6.175 3.167 6.367 2.6.177 11.062.177 13.666 0 2.814-.192 3.146-1.893 3.167-6.367-.021-4.467-.35-6.175-3.167-6.367zm-12.324 10.686h-1.363v-7.54h-1.41v-1.28h4.182v1.28h-1.41v7.54zm4.846 0h-1.21v-.718c-.223.265-.455.467-.696.605-.652.374-1.547.365-1.547-.955v-5.438h1.209v4.988c0 .262.063.438.322.438.236 0 .564-.303.711-.487v-4.939h1.21v6.506zm4.657-1.348c0 .805-.301 1.431-1.106 1.431-.443 0-.812-.162-1.149-.583v.5h-1.221v-8.82h1.221v2.84c.273-.333.644-.608 1.076-.608.886 0 1.18.749 1.18 1.631v3.609zm4.471-1.752h-2.314v1.228c0 .488.042.91.528.91.511 0 .541-.344.541-.91v-.452h1.245v.489c0 1.253-.538 2.013-1.813 2.013-1.155 0-1.746-.842-1.746-2.013v-2.921c0-1.129.746-1.914 1.837-1.914 1.161 0 1.721.738 1.721 1.914v1.656z"/></svg></a> <a href="https://github.com/project-hop/" title="Collaborate on GitHub" target="_blank"><svg class="brand-icon" width="30" height="30" viewBox="0 0 30 30"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg></a> </div> <button class="navbar-burger" data-target="topbar-nav" type="button"> <span></span> <span></span> <span></span> </button> </div> </nav> </header> <div class="body"> <main role="main"> <article class="static doc"> <h1>Preview Release 0.10</h1> <div id="preamble"> <div class="sectionbody"> <div class="paragraph"> <p>After more than half a year of hard work, we felt the time was right to show the world what we have been working on.</p> </div> <div class="paragraph"> <p>We&#8217;re happy to announce to availability of our 0.10 preview release. Please take it for a spin. If you find a bug, please create a <a href="https://jira.project-hop.org">bug ticket</a>, if there&#8217;s functionality you&#8217;d like to see, please create a <a href="https://jira.project-hop.org">feature request</a>.</p> </div> <div class="paragraph"> <p><strong>Direct download <a href="https://artifactory.project-hop.org/artifactory/hop-releases/org/hop/hop-assemblies-client/0.10/hop-assemblies-client-0.10.zip">here</a></strong></p> </div> <div class="paragraph"> <p><strong><a href="http://www.project-hop.org/docs/getting-started/">Getting Started Guide</a></strong></p> </div> <div class="paragraph"> <p><strong><a href="https://project-hop.atlassian.net/secure/ReleaseNote.jspa?projectId=10002&amp;version=10000">Release Notes</a></strong></p> </div> </div> </div> <div class="sect1"> <h2 id="_what_is_project_hop">What is Project Hop</h2> <div class="sectionbody"> <div class="paragraph"> <p>Project Hop&#8217;s goal is to provide an easy, flexible and metadata-driven way of data processing and data orchestration. We want you to spend as little time as possible on technical details, so you can focus on processing your data and orchestrating your pipelines.</p> </div> <div class="paragraph"> <p>We used the Kettle (Pentaho Data Integration) 8.2.0.7 code base to start building our architecture. Kettle was the start of a journey. We&#8217;ve come a long way from that starting point: a lot of the code base has been removed or changed, and a lot of new functionality has been added.</p> </div> <div class="paragraph"> <p>Let&#8217;s have a look at what to expect in this release.</p> </div> </div> </div> <div class="sect1"> <h2 id="_code_cleanup_refactoring">Code Cleanup, Refactoring</h2> <div class="sectionbody"> <div class="paragraph"> <p>We started with a huge spring cleaning session: Karaf, XUL, repositories and the old user interface (Spoon) are all gone.</p> </div> <div class="paragraph"> <p>Dependencies have been updated to the most recent versions available.</p> </div> <div class="paragraph"> <p>A lot of refactoring was required to bring the Hop code base up to date, more flexible and more pluggable. We&#8217;ve also massively refactored the code to reflect the Hop concepts.</p> </div> </div> </div> <div class="sect1"> <h2 id="_hop_concepts">Hop Concepts</h2> <div class="sectionbody"> <div class="paragraph"> <p>Hop&#8217;s tools reflect its Architecture, check out the <a href="http://www.project-hop.org/manual/latest/concepts.html">Concepts</a> page.</p> </div> <div class="paragraph"> <p>Our main concepts are:</p> </div> <div class="ulist"> <ul> <li> <p><strong>Workflows</strong> manage the orchestration of your Hop code. Workflows have <strong>actions</strong> as their main items of work.</p> </li> <li> <p><strong>Pipelines</strong> are where the real work is done. Pipelines consist of a number of <strong>transforms</strong> that each perform atomic tasks (read, transform, write) in your pipeline.</p> </li> </ul> </div> <div class="paragraph"> <p>The tools we have available at the moment are:</p> </div> <div class="ulist"> <ul> <li> <p><strong>hop-gui</strong>: a visual IDE to design, test and run your workflows and pipelines.</p> </li> <li> <p><strong>hop-run</strong>: a command line tool to run your workflows and pipelines</p> </li> <li> <p><strong>hop-server</strong>: a lightweight web server to run your workflows and pipelines over a REST interface</p> </li> <li> <p><strong>hop-translator</strong>: a helper tool to translate Hop into your language</p> </li> </ul> </div> </div> </div> <div class="sect1"> <h2 id="_plugins">Plugins</h2> <div class="sectionbody"> <div class="paragraph"> <p>We want to make Hop as robust and flexible as possible. We&#8217;ve done a lot of work to move Hop to a kernel-based architecture. To get there, we&#8217;ve moved all non-essential functionality out of the Hop engine and into plugins. Going forward, every single piece of functionality will be supported by the engine, but implemented as a plugin.</p> </div> <div class="paragraph"> <p>The current status of functionality that has been ported from the engine to plugins is:</p> </div> <div class="ulist"> <ul> <li> <p>Database plugins: all done (39)</p> </li> <li> <p>Workflow actions: all done (53)</p> </li> <li> <p>Transform actions: 60 done (about 80 to go, NOTE: porting the transforms to plugins is more complex since some of them need significant code refactoring.</p> </li> </ul> </div> </div> </div> <div class="sect1"> <h2 id="_ui">UI</h2> <div class="sectionbody"> <div class="paragraph"> <p>Hop comes with a completely new UI. Simplified, flexible and future proof.</p> </div> <div class="paragraph"> <p>Another one of our goals is to provide 100% UI coverage for all Hop functionality. Changing the behavior of your workflows and pipelines should be possible, but never required.</p> </div> <div class="paragraph"> <p>The Workflow editor:</p> </div> <div class="paragraph"> <p><span class="image"><a class="image" href="../../img/Roundup-2020-03/roundup-2020-03-0001.png"><img src="../../img/Roundup-2020-03/roundup-2020-03-0001.png" alt="Interface 1" width="75%"></a></span></p> </div> <div class="paragraph"> <p>The Transform chooser dialog:</p> </div> <div class="paragraph"> <p><span class="image"><a class="image" href="../../img/Roundup-2020-02/roundup-2020-02-0001.png"><img src="../../img/Roundup-2020-02/roundup-2020-02-0001.png" alt="Interface 1" width="75%"></a></span></p> </div> <div class="paragraph"> <p>Partitioning:</p> </div> <div class="paragraph"> <p><span class="image"><a class="image" href="../../img/Roundup-2020-03/roundup-2020-03-0002.png"><img src="../../img/Roundup-2020-03/roundup-2020-03-0002.png" alt="Partitioning" width="75%"></a></span></p> </div> <div class="paragraph"> <p>Extra options on transform action:</p> </div> <div class="paragraph"> <p><span class="image"><a class="image" href="../../img/Roundup-2020-03/roundup-2020-03-0003.png"><img src="../../img/Roundup-2020-03/roundup-2020-03-0003.png" alt="Transform action" width="75%"></a></span></p> </div> </div> </div> <div class="sect1"> <h2 id="_translations">Translations</h2> <div class="sectionbody"> <div class="paragraph"> <p>Hop is available in the following languages:</p> </div> <div class="ulist"> <ul> <li> <p>German (de_DE)</p> </li> <li> <p>American English (en_US)</p> </li> <li> <p>Argentinian Spanish (es_AR)</p> </li> <li> <p>French (fr_FR)</p> </li> <li> <p>Italian (it_IT)</p> </li> <li> <p>Japanese (ja_JP)</p> </li> <li> <p>Korean (ko_KR)</p> </li> <li> <p>Dutch (nl_NL)</p> </li> <li> <p>Brazilian Portugese (pt_BR, kindly contributed as the first new language in Hop!)</p> </li> <li> <p>Chinese (zh_CN)</p> </li> </ul> </div> <div class="paragraph"> <p>Check the <a href="http://www.project-hop.org/community/contribution-guides/translation-contribution-guide/">Translation Contribution Guide</a> to add or improve the Hop translation for your own native language.</p> </div> </div> </div> <div class="sect1"> <h2 id="_translator">Translator</h2> <div class="sectionbody"> <div class="paragraph"> <p>We also included the Hop Translator for community members who&#8217;d like to translate Hop to their native language, or complete the current translations for the project.</p> </div> <div class="paragraph"> <p><span class="image"><a class="image" href="../../img/Roundup-2020-03/roundup-2020-03-0004.png"><img src="../../img/Roundup-2020-03/roundup-2020-03-0004.png" alt="Translator" width="75%"></a></span></p> </div> <div class="paragraph"> <p>Check the <a href="http://www.project-hop.org/community/contribution-guides/translation-contribution-guide/">Translation Contribution Guide</a> to add or improve the Hop translation for your own native language.</p> </div> </div> </div> <div class="sect1"> <h2 id="_documentation">Documentation</h2> <div class="sectionbody"> <div class="paragraph"> <p>Documentation is a first class citizen at Project Hop. All documentation is written in asciidoc and is treated just like any other piece of code, so feel free to create <a href="https://jira.project-hop.org">bug tickets</a> or <a href="https://jira.project-hop.org">feature request</a> for documentation, just like you would for any other part of the project.</p> </div> </div> </div> <div class="sect1"> <h2 id="_future">Future</h2> <div class="sectionbody"> <div class="paragraph"> <p>Work isn&#8217;t done with this preview release.</p> </div> <div class="paragraph"> <p>Next up are pluggable runtime engine. The first engine we&#8217;ll support will be Apache Beam, but there will be many more.</p> </div> <div class="paragraph"> <p>We intend to start the Apache Incubation process soon. We strongly believe the move to Apache Hop will increase Project Hop&#8217;s adoption. We are looking forward to working with the Apache Software Foundation and to integrating with the great software they provide.</p> </div> </div> </div> <div class="sect1"> <h2 id="_call_for_contributors">Call For Contributors</h2> <div class="sectionbody"> <div class="paragraph"> <p>Project Hop is a team effort, we need your help to make this a success!</p> </div> <div class="paragraph"> <p>Contributing is much more than writing code. A couple of ways you can help out are</p> </div> <div class="ulist"> <ul> <li> <p>testing and creating <a href="https://jira.project-hop.org">bug tickets</a></p> </li> <li> <p>create <a href="https://jira.project-hop.org">feature requests</a></p> </li> <li> <p>write documentation</p> </li> <li> <p>spreading the word</p> </li> </ul> </div> <div class="paragraph"> <p>Check out the <a href="http://www.project-hop.org/community/contributing/">Contribution Guide</a> to find out how you can contribute.</p> </div> <div class="paragraph"> <p>Contributions in any shape or form are greatly appreciated!</p> </div> </div> </div> </article> </main> </div> <div class="edit"><a title="We would love your help &hearts;&hearts;&hearts;" href="https://github.com/apache/incubator-hop-website/edit/master/content/news/release-preview-0-10.adoc">Edit this Page</a></div> <footer> <div class="footer"> <dl> <dt>Overview</dt> <dd><a href="../../download/">Download</a></dd> <dd><a href="../../manual/latest/">Getting started</a></dd> </dl> <dl> <dt>Community</dt> <dd><a target="_blank" href="https://issues.apache.org/jira/projects/HOP/issues">Jira</a></dd> <dd><a target="_blank" href="https://chat.project-hop.org">Chat</a></dd> <dd><a href="../../community/team/">Team</a></dd> </dl> <dl> <dt>About</dt> <dd><a target="_blank" href="https://www.apache.org/licenses/" title="License">License</a></dd> </dl> <p> &copy; 2019-2020 The Hop Team.<br> All marks mentioned may be trademarks or registered trademarks of their respective owners. </p> </div> </footer> <script src="../../_/js/site-09ed3b68f0.js"></script> <script src="../../_/js/vendor/highlight-d2e825a26a.js"></script> <script src="../../_/js/vendor/cookies-eu-banner-d4a1518c50.js"></script> <script> new CookiesEuBanner(function () {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-151580460-1', 'auto' ,{'anonymize_ip':true});
ga('send', 'pageview');
}, true, false); </script> <script src="../../_/js/vendor/docsearch-00d66d525e.min.js"></script> <script> var search = docsearch({
appId: 'IEDZCR8JT4',
apiKey: '587e7bafb978fa5e4640ab18bfbd9b99',
indexName: 'hop-doc',
inputSelector: '#search-input',
autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
algoliaOptions: { hitsPerPage: 10 }
}).autocomplete
search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
function focusSearchInput () { document.querySelector('#search-input').focus() }
if (document.querySelector('.home-link.is-current')) window.addEventListener('load', focusSearchInput) </script> <script type="application/ld+json"> {
"@context": "http://schema.org",
"@type": "Organization",
"name": "Hop",
"url": "https:\/\/hop.apache.org\/"
, "sameAs": ["https://twitter.com/projhop"]
, "logo": "\/img\/hop-logo.svg"
, "description": "Hop"
} </script> <script type="application/ld+json"> {
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1 ,
"item": {
"@id": "https://hop.apache.org/",
"name": "Hop"
}
},{
"@type": "ListItem",
"position": 2 ,
"item": {
"@id": "https://hop.apache.org/news/",
"name": "news"
}
},{
"@type": "ListItem",
"position": 3 ,
"item": {
"@id": "https://hop.apache.org/news/release-preview-0-10/",
"name": "release-preview-0-10"
}
}]
} </script> </body> </html>