http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/Rakefile ---------------------------------------------------------------------- diff --git a/website-old/front/Rakefile b/website-old/front/Rakefile new file mode 100755 index 0000000..183ca1e --- /dev/null +++ b/website-old/front/Rakefile @@ -0,0 +1,306 @@ +require "rubygems" +require 'rake' +require 'yaml' +require 'time' + +SOURCE = "." +CONFIG = { + 'version' => "0.3.0", + 'themes' => File.join(SOURCE, "_includes", "themes"), + 'layouts' => File.join(SOURCE, "_layouts"), + 'posts' => File.join(SOURCE, "_posts"), + 'post_ext' => "md", + 'theme_package_version' => "0.1.0" +} + +# Path configuration helper +module JB + class Path + SOURCE = "." + Paths = { + :layouts => "_layouts", + :themes => "_includes/themes", + :theme_assets => "assets/themes", + :theme_packages => "_theme_packages", + :posts => "_posts" + } + + def self.base + SOURCE + end + + # build a path relative to configured path settings. + def self.build(path, opts = {}) + opts[:root] ||= SOURCE + path = "#{opts[:root]}/#{Paths[path.to_sym]}/#{opts[:node]}".split("/") + path.compact! + File.__send__ :join, path + end + + end #Path +end #JB + +# Usage: rake post title="A Title" [date="2012-02-09"] [tags=[tag1,tag2]] [category="category"] +desc "Begin a new post in #{CONFIG['posts']}" +task :post do + abort("rake aborted: '#{CONFIG['posts']}' directory not found.") unless FileTest.directory?(CONFIG['posts']) + title = ENV["title"] || "new-post" + tags = ENV["tags"] || "[]" + category = ENV["category"] || "" + category = "\"#{category.gsub(/-/,' ')}\"" if !category.empty? + slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') + begin + date = (ENV['date'] ? Time.parse(ENV['date']) : Time.now).strftime('%Y-%m-%d') + rescue => e + puts "Error - date format must be YYYY-MM-DD, please check you typed it correctly!" + exit -1 + end + filename = File.join(CONFIG['posts'], "#{date}-#{slug}.#{CONFIG['post_ext']}") + if File.exist?(filename) + abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n' + end + + puts "Creating new post: #{filename}" + open(filename, 'w') do |post| + post.puts "---" + post.puts "layout: post" + post.puts "title: \"#{title.gsub(/-/,' ')}\"" + post.puts 'description: ""' + post.puts "category: #{category}" + post.puts "tags: #{tags}" + post.puts "---" + post.puts "{% include JB/setup %}" + end +end # task :post + +# Usage: rake page name="about.html" +# You can also specify a sub-directory path. +# If you don't specify a file extention we create an index.html at the path specified +desc "Create a new page." +task :page do + name = ENV["name"] || "new-page.md" + filename = File.join(SOURCE, "#{name}") + filename = File.join(filename, "index.html") if File.extname(filename) == "" + title = File.basename(filename, File.extname(filename)).gsub(/[\W\_]/, " ").gsub(/\b\w/){$&.upcase} + if File.exist?(filename) + abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n' + end + + mkdir_p File.dirname(filename) + puts "Creating new page: #{filename}" + open(filename, 'w') do |post| + post.puts "---" + post.puts "layout: page" + post.puts "title: \"#{title}\"" + post.puts 'description: ""' + post.puts "---" + post.puts "{% include JB/setup %}" + end +end # task :page + +desc "Launch preview environment" +task :preview do + system "jekyll serve -w" +end # task :preview + +# Public: Alias - Maintains backwards compatability for theme switching. +task :switch_theme => "theme:switch" + +namespace :theme do + + # Public: Switch from one theme to another for your blog. + # + # name - String, Required. name of the theme you want to switch to. + # The theme must be installed into your JB framework. + # + # Examples + # + # rake theme:switch name="the-program" + # + # Returns Success/failure messages. + desc "Switch between Jekyll-bootstrap themes." + task :switch do + theme_name = ENV["name"].to_s + theme_path = File.join(CONFIG['themes'], theme_name) + settings_file = File.join(theme_path, "settings.yml") + non_layout_files = ["settings.yml"] + + abort("rake aborted: name cannot be blank") if theme_name.empty? + abort("rake aborted: '#{theme_path}' directory not found.") unless FileTest.directory?(theme_path) + abort("rake aborted: '#{CONFIG['layouts']}' directory not found.") unless FileTest.directory?(CONFIG['layouts']) + + Dir.glob("#{theme_path}/*") do |filename| + next if non_layout_files.include?(File.basename(filename).downcase) + puts "Generating '#{theme_name}' layout: #{File.basename(filename)}" + + open(File.join(CONFIG['layouts'], File.basename(filename)), 'w') do |page| + page.puts "---" + page.puts File.read(settings_file) if File.exist?(settings_file) + page.puts "layout: default" unless File.basename(filename, ".html").downcase == "default" + page.puts "---" + page.puts "{% include JB/setup %}" + page.puts "{% include themes/#{theme_name}/#{File.basename(filename)} %}" + end + end + + puts "=> Theme successfully switched!" + puts "=> Reload your web-page to check it out =)" + end # task :switch + + # Public: Install a theme using the theme packager. + # Version 0.1.0 simple 1:1 file matching. + # + # git - String, Optional path to the git repository of the theme to be installed. + # name - String, Optional name of the theme you want to install. + # Passing name requires that the theme package already exist. + # + # Examples + # + # rake theme:install git="https://github.com/jekyllbootstrap/theme-twitter.git" + # rake theme:install name="cool-theme" + # + # Returns Success/failure messages. + desc "Install theme" + task :install do + if ENV["git"] + manifest = theme_from_git_url(ENV["git"]) + name = manifest["name"] + else + name = ENV["name"].to_s.downcase + end + + packaged_theme_path = JB::Path.build(:theme_packages, :node => name) + + abort("rake aborted! + => ERROR: 'name' cannot be blank") if name.empty? + abort("rake aborted! + => ERROR: '#{packaged_theme_path}' directory not found. + => Installable themes can be added via git. You can find some here: http://github.com/jekyllbootstrap + => To download+install run: `rake theme:install git='[PUBLIC-CLONE-URL]'` + => example : rake theme:install git='[email protected]:jekyllbootstrap/theme-the-program.git' + ") unless FileTest.directory?(packaged_theme_path) + + manifest = verify_manifest(packaged_theme_path) + + # Get relative paths to packaged theme files + # Exclude directories as they'll be recursively created. Exclude meta-data files. + packaged_theme_files = [] + FileUtils.cd(packaged_theme_path) { + Dir.glob("**/*.*") { |f| + next if ( FileTest.directory?(f) || f =~ /^(manifest|readme|packager)/i ) + packaged_theme_files << f + } + } + + # Mirror each file into the framework making sure to prompt if already exists. + packaged_theme_files.each do |filename| + file_install_path = File.join(JB::Path.base, filename) + if File.exist? file_install_path and ask("#{file_install_path} already exists. Do you want to overwrite?", ['y', 'n']) == 'n' + next + else + mkdir_p File.dirname(file_install_path) + cp_r File.join(packaged_theme_path, filename), file_install_path + end + end + + puts "=> #{name} theme has been installed!" + puts "=> ---" + if ask("=> Want to switch themes now?", ['y', 'n']) == 'y' + system("rake switch_theme name='#{name}'") + end + end + + # Public: Package a theme using the theme packager. + # The theme must be structured using valid JB API. + # In other words packaging is essentially the reverse of installing. + # + # name - String, Required name of the theme you want to package. + # + # Examples + # + # rake theme:package name="twitter" + # + # Returns Success/failure messages. + desc "Package theme" + task :package do + name = ENV["name"].to_s.downcase + theme_path = JB::Path.build(:themes, :node => name) + asset_path = JB::Path.build(:theme_assets, :node => name) + + abort("rake aborted: name cannot be blank") if name.empty? + abort("rake aborted: '#{theme_path}' directory not found.") unless FileTest.directory?(theme_path) + abort("rake aborted: '#{asset_path}' directory not found.") unless FileTest.directory?(asset_path) + + ## Mirror theme's template directory (_includes) + packaged_theme_path = JB::Path.build(:themes, :root => JB::Path.build(:theme_packages, :node => name)) + mkdir_p packaged_theme_path + cp_r theme_path, packaged_theme_path + + ## Mirror theme's asset directory + packaged_theme_assets_path = JB::Path.build(:theme_assets, :root => JB::Path.build(:theme_packages, :node => name)) + mkdir_p packaged_theme_assets_path + cp_r asset_path, packaged_theme_assets_path + + ## Log packager version + packager = {"packager" => {"version" => CONFIG["theme_package_version"].to_s } } + open(JB::Path.build(:theme_packages, :node => "#{name}/packager.yml"), "w") do |page| + page.puts packager.to_yaml + end + + puts "=> '#{name}' theme is packaged and available at: #{JB::Path.build(:theme_packages, :node => name)}" + end + +end # end namespace :theme + +# Internal: Download and process a theme from a git url. +# Notice we don't know the name of the theme until we look it up in the manifest. +# So we'll have to change the folder name once we get the name. +# +# url - String, Required url to git repository. +# +# Returns theme manifest hash +def theme_from_git_url(url) + tmp_path = JB::Path.build(:theme_packages, :node => "_tmp") + abort("rake aborted: system call to git clone failed") if !system("git clone #{url} #{tmp_path}") + manifest = verify_manifest(tmp_path) + new_path = JB::Path.build(:theme_packages, :node => manifest["name"]) + if File.exist?(new_path) && ask("=> #{new_path} theme package already exists. Override?", ['y', 'n']) == 'n' + remove_dir(tmp_path) + abort("rake aborted: '#{manifest["name"]}' already exists as theme package.") + end + + remove_dir(new_path) if File.exist?(new_path) + mv(tmp_path, new_path) + manifest +end + +# Internal: Process theme package manifest file. +# +# theme_path - String, Required. File path to theme package. +# +# Returns theme manifest hash +def verify_manifest(theme_path) + manifest_path = File.join(theme_path, "manifest.yml") + manifest_file = File.open( manifest_path ) + abort("rake aborted: repo must contain valid manifest.yml") unless File.exist? manifest_file + manifest = YAML.load( manifest_file ) + manifest_file.close + manifest +end + +def ask(message, valid_options) + if valid_options + answer = get_stdin("#{message} #{valid_options.to_s.gsub(/"/, '').gsub(/, /,'/')} ") while !valid_options.include?(answer) + else + answer = get_stdin(message) + end + answer +end + +def get_stdin(message) + print message + STDIN.gets.chomp +end + +#Load custom rake scripts +Dir['_rake/*.rake'].each { |r| load r }
http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_config.yml ---------------------------------------------------------------------- diff --git a/website-old/front/_config.yml b/website-old/front/_config.yml new file mode 100644 index 0000000..346fec9 --- /dev/null +++ b/website-old/front/_config.yml @@ -0,0 +1,134 @@ +# This is the default format. +# For more see: http://jekyllrb.com/docs/permalinks/ +permalink: /:categories/:year/:month/:day/:title + +exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md", "vendor", "node_modules", "scss", "screenshots", "Gemfile.lock", "Gemfile"] +#pygments: true +highlighter: rouge +markdown: kramdown +redcarpet: + extensions: ["tables"] +encoding: utf-8 + +# Themes are encouraged to use these universal variables +# so be sure to set them if your theme uses them. +# +title : Apache Mahout +tagline: Distributed Linear Algebra +author : + name : The Apache Software Foundation + email : [email protected] + github : apache + twitter : ASF + feedburner : feedname + +# Serving +detach: false +port: 4000 +host: 127.0.0.1 +baseurl: "" # does not include hostname + +MAHOUT_VERSION : 0.13.1 + +# The production_url is only used when full-domain names are needed +# such as sitemap.txt +# Most places will/should use BASE_PATH to make the urls +# +# If you have set a CNAME (pages.github.com) set your custom domain here. +# Else if you are pushing to username.github.io, replace with your username. +# Finally if you are pushing to a GitHub project page, include the project name at the end. +# +production_url : http://mahout.apache.org/ +# All Jekyll-Bootstrap specific configurations are namespaced into this hash +# +JB : + version : 0.3.0 + + # All links will be namespaced by BASE_PATH if defined. + # Links in your website should always be prefixed with {{BASE_PATH}} + # however this value will be dynamically changed depending on your deployment situation. + # + # CNAME (http://yourcustomdomain.com) + # DO NOT SET BASE_PATH + # (urls will be prefixed with "/" and work relatively) + # + # GitHub Pages (http://username.github.io) + # DO NOT SET BASE_PATH + # (urls will be prefixed with "/" and work relatively) + # + # GitHub Project Pages (http://username.github.io/project-name) + # + # A GitHub Project site exists in the `gh-pages` branch of one of your repositories. + # REQUIRED! Set BASE_PATH to: http://username.github.io/project-name + # + # CAUTION: + # - When in Localhost, your site will run from root "/" regardless of BASE_PATH + # - Only the following values are falsy: ["", null, false] + # - When setting BASE_PATH it must be a valid url. + # This means always setting the protocol (http|https) or prefixing with "/" + BASE_PATH : + + # By default, the asset_path is automatically defined relative to BASE_PATH plus the enabled theme. + # ex: [BASE_PATH]/assets/themes/[THEME-NAME] + # + # Override this by defining an absolute path to assets here. + # ex: + # http://s3.amazonaws.com/yoursite/themes/watermelon + # /assets + # + ASSET_PATH : false + + # These paths are to the main pages Jekyll-Bootstrap ships with. + # Some JB helpers refer to these paths; change them here if needed. + # + archive_path: /archive.html + categories_path : /categories.html + tags_path : /tags.html + atom_path : /atom.xml + rss_path : /rss.xml + + # Settings for comments helper + # Set 'provider' to the comment provider you want to use. + # Set 'provider' to false to turn commenting off globally. + # +# comments : +# provider : disqus +# disqus : +# short_name : jekyllbootstrap +# livefyre : +# site_id : 123 +# intensedebate : +# account : 123abc +# facebook : +# appid : 123 +# num_posts: 5 +# width: 580 +# colorscheme: light + + # Settings for analytics helper + # Set 'provider' to the analytics provider you want to use. + # Set 'provider' to false to turn analytics off globally. + + # Settings for sharing helper. + # Sharing is for things like tweet, plusone, like, reddit buttons etc. + # Set 'provider' to the sharing provider you want to use. + # Set 'provider' to false to turn sharing off globally. + # + sharing : + provider : false + + # Settings for all other include helpers can be defined by creating + # a hash with key named for the given helper. ex: + # + # pages_list : + # provider : "custom" + # + # Setting any helper's provider to 'custom' will bypass the helper code + # and include your custom code. Your custom file must be defined at: + # ./_includes/custom/[HELPER] + + + analytics : + provider : google + google : + tracking_id : 'UA-98314020-1' \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_includes/JB ---------------------------------------------------------------------- diff --git a/website-old/front/_includes/JB b/website-old/front/_includes/JB new file mode 120000 index 0000000..78a010c --- /dev/null +++ b/website-old/front/_includes/JB @@ -0,0 +1 @@ +../../_includes/JB \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_includes/navbar.html ---------------------------------------------------------------------- diff --git a/website-old/front/_includes/navbar.html b/website-old/front/_includes/navbar.html new file mode 100644 index 0000000..787b3d5 --- /dev/null +++ b/website-old/front/_includes/navbar.html @@ -0,0 +1,91 @@ +{% include JB/setup %} +<div class="collapse navbar-collapse" id="main-navbar"> + <ul class="nav navbar-nav"> + + <!-- Download --> + <li><a href="{{ BASE_PATH }}/downloads.html">Download Mahout</a></li> + + <!-- Developers --> + <li id="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Developers<span class="caret"></span></a> + <ul class="dropdown-menu"> + <!--<li><a href="/developers/key-concepts.html">Key-Concepts</a></li> needs to be filled out --> + <!--<li><a href="/developers/index.html">Developer Resources</a></li> moved to docs --> + <!--<li><a href="/developers/patch-check-list.html">Patch Check List</a></li> going to github template --> + <!--<li><a href="/developers/reference.html">References</a></li> a lot of overlap with books, talks, etc. page --> + <!--<li><a href="/developers/thirdparty-dependencies.html">Third Party Dependencies</a></li> is our site the reasonable place for this? --> + <!--<li><a href="/developers/version-control.html">Version Control</a></li>--> + <li class="divider"></li> + <li class="nav-header"> <b>How Tos</b></li> + <li><a href="/developers/how-to-contribute.html">How to Contribute</a></li> + <li><a href="/developers/buildingmahout.html">How to Build Mahout</a></li> + <li><a href="/developers/githubPRs.html">How to Merge a Github PR</a></li> <!-- gtg, added new info for develop and feature branching --> + <li><a href="/developers/how-to-become-a-committer.html">How to Become a Committer</a></li> + <li><a href="/developers/how-to-release.html">How to Release</a></li> + <li><a href="/developers/how-to-update-the-website.html">How to Update the Website</a></li> + <li><a href="/developers/publish-website.html">How to Publish the Website</a></li> + <li class="divider"></li> + <li class="nav-header"> <b>Miscellaneous</b></li> + <li><a href="/developers/issue-tracker.html">Issues Tracking (JIRA)</a></li> + <li><a href="/developers/release-notes.html">Release Notes</a></li> + + </ul> + </li> + + <!-- Docs --> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Docs <span class="caret"></span></a> <ul class="dropdown-menu"> + <li><span><b> Release</b></span></li> + <li><a href="/docs/0.13.0">0.13.0</a></li> + <li><a href="/tbd">Older Versions</a></li> + <li role="separator" class="divider"></li> + <li><span><b> Snapshot</b> (development) <span></li> + <li><a href="/docs/0.13.1-SNAPSHOT">0.13.1-SNAPSHOT</a></li> + </ul> + </li> + + + <!-- Community --> + <li id="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/community/history.html">History of the Apache Mahout Project</a></li> + <li><a href="/community/blogs.html">Blog Posts About Mahout</a></li> + <li><a href="/community/recent-upcoming-talks.html">Recent and Upcoming Talks</a></li> + <!--<li><a href="/community/books-tutorials-and-talks.html">Books Tutorials and Talks</a></li>--> + <!--<li><a href="/community/faq.html">FAQ</a></li> needs a lot of updating --> + <li><a href="/community/gsoc.html">GSoC</a></li> <!-- Is OK- updated Map/Reduce verbage to reflect Samsara --> + <!--<li><a href="/community/mahout-benchmarks.html">Mahout Benchmarks</a></li> These are old, Keep them? --> + <!--<li><a href="/community/mahout-wiki.html">Mahout Wiki</a></li> at very least needs links cleanedup - do we still want this even?--> + <li><a href="/community/mailing-lists.html">Mailing Lists</a></li> <!-- Clean and pretty --> + <!--<li><a href="/community/powered-by-mahout.html">Powered By Mahout</a></li> needs update --> + <li><a href="/community/privacy-policy.html">Privacy Policy</a></li> + <!--<li><a href="/community/professional-support.html">Professional Support</a></li> update if we even want to keep --> + <li><a href="/community/who-we-are.html">Who We Are</a></li> <!-- nikolai needs to add himself --> + </ul> + </li> + <!--<li><a href="/docs/0.13.1-SNAPSHOT/index.html">Overview</a></li> not sure this need to be--> + + </ul> + <form class="navbar-form navbar-left"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search"> + </div> + <button type="submit" class="btn btn-default">Submit</button> + </form> + <ul class="nav navbar-nav navbar-right"> + <li><a href="http://github.com/apache/mahout">Github</a></li> + + <!-- Apache --> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Apache <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="http://www.apache.org/foundation/how-it-works.html">Apache Software Foundation</a></li> + <li><a href="http://www.apache.org/licenses/">Apache License</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + </ul> + </li> + + </ul> +</div><!-- /.navbar-collapse --> http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_includes/themes ---------------------------------------------------------------------- diff --git a/website-old/front/_includes/themes b/website-old/front/_includes/themes new file mode 120000 index 0000000..b1d44e6 --- /dev/null +++ b/website-old/front/_includes/themes @@ -0,0 +1 @@ +../../_includes/themes \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_layouts/default.html ---------------------------------------------------------------------- diff --git a/website-old/front/_layouts/default.html b/website-old/front/_layouts/default.html new file mode 100755 index 0000000..ec60279 --- /dev/null +++ b/website-old/front/_layouts/default.html @@ -0,0 +1,6 @@ +--- +theme : + name : mahout3 +--- +{% include JB/setup %} +{% include themes/mahout3/default.html %} http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_layouts/page.html ---------------------------------------------------------------------- diff --git a/website-old/front/_layouts/page.html b/website-old/front/_layouts/page.html new file mode 100755 index 0000000..0e123f9 --- /dev/null +++ b/website-old/front/_layouts/page.html @@ -0,0 +1,7 @@ +--- +theme : + name : mahout3 +layout: default +--- +{% include JB/setup %} +{% include themes/mahout3/page.html %} http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_layouts/post.html ---------------------------------------------------------------------- diff --git a/website-old/front/_layouts/post.html b/website-old/front/_layouts/post.html new file mode 100755 index 0000000..9b8f584 --- /dev/null +++ b/website-old/front/_layouts/post.html @@ -0,0 +1,7 @@ +--- +theme : + name : mahout3 +layout: default +--- +{% include JB/setup %} +{% include themes/mahout3/post.html %} http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/_plugins/debug.rb ---------------------------------------------------------------------- diff --git a/website-old/front/_plugins/debug.rb b/website-old/front/_plugins/debug.rb new file mode 100755 index 0000000..e1dde39 --- /dev/null +++ b/website-old/front/_plugins/debug.rb @@ -0,0 +1,38 @@ +# A simple way to inspect liquid template variables. +# Usage: +# Can be used anywhere liquid syntax is parsed (templates, includes, posts/pages) +# {{ site | debug }} +# {{ site.posts | debug }} +# +require 'pp' +module Jekyll + # Need to overwrite the inspect method here because the original + # uses < > to encapsulate the psuedo post/page objects in which case + # the output is taken for HTML tags and hidden from view. + # + class Post + def inspect + "#Jekyll:Post @id=#{self.id.inspect}" + end + end + + class Page + def inspect + "#Jekyll:Page @name=#{self.name.inspect}" + end + end + +end # Jekyll + +module Jekyll + module DebugFilter + + def debug(obj, stdout=false) + puts obj.pretty_inspect if stdout + "<pre>#{obj.class}\n#{obj.pretty_inspect}</pre>" + end + + end # DebugFilter +end # Jekyll + +Liquid::Template.register_filter(Jekyll::DebugFilter) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/archive.html ---------------------------------------------------------------------- diff --git a/website-old/front/archive.html b/website-old/front/archive.html new file mode 100755 index 0000000..dc7c054 --- /dev/null +++ b/website-old/front/archive.html @@ -0,0 +1,10 @@ +--- +layout: page +title : Archive +header : Post Archive +group: navigation +--- +{% include JB/setup %} + +{% assign posts_collate = site.posts %} +{% include JB/posts_collate %} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/assets ---------------------------------------------------------------------- diff --git a/website-old/front/assets b/website-old/front/assets new file mode 120000 index 0000000..ec2e4be --- /dev/null +++ b/website-old/front/assets @@ -0,0 +1 @@ +../assets \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/categories.html ---------------------------------------------------------------------- diff --git a/website-old/front/categories.html b/website-old/front/categories.html new file mode 100755 index 0000000..cdb8789 --- /dev/null +++ b/website-old/front/categories.html @@ -0,0 +1,22 @@ +--- +layout: page +title: Categories +header: Posts By Category +group: navigation +--- +{% include JB/setup %} + +<ul class="tag_box inline"> + {% assign categories_list = site.categories %} + {% include JB/categories_list %} +</ul> + + +{% for category in site.categories %} + <h2 id="{{ category[0] }}-ref">{{ category[0] | join: "/" }}</h2> + <ul> + {% assign pages_list = category[1] %} + {% include JB/pages_list %} + </ul> +{% endfor %} + http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/changelog.md ---------------------------------------------------------------------- diff --git a/website-old/front/changelog.md b/website-old/front/changelog.md new file mode 100755 index 0000000..7965e9d --- /dev/null +++ b/website-old/front/changelog.md @@ -0,0 +1,70 @@ +## Changelog + +Public releases are all root nodes. +Incremental version bumps that were not released publicly are nested where appropriate. + +P.S. If there is a standard (popular) changelog format, please let me know. + +- **0.3.0 : 2013.02.24** + - **Features** + - Update twitter bootstrap to 2.2.2. Add responsiveness and update design a bit. + - @techotaku fixes custom tagline support (finally made it in!) + - @opie4624 adds ability to set tags from the command-line. + - @lax adds support for RSS feed. Adds rss and atom html links for discovery. + - Small typo fixes. + + - **Bug Fixes** + - @xuhdev fixes theme:install bug which does not overwrite theme even if saying 'yes'. + +- **0.2.13 : 2012.03.24** + - **Features** + - 0.2.13 : @mjpieters Updates pages_list helper to only show pages having a title. + - 0.2.12 : @sway recommends showing page tagline only if tagline is set. + - 0.2.11 : @LukasKnuth adds 'description' meta-data field to post/page scaffold. + + - **Bug Fixes** + - 0.2.10 : @koriroys fixes typo in atom feed + +- **0.2.9 : 2012.03.01** + - **Bug Fixes** + - 0.2.9 : @alishutc Fixes the error on post creation if date was not specified. + +- **0.2.8 : 2012.03.01** + - **Features** + - 0.2.8 : @metalelf0 Added option to specify a custom date when creating post. + - 0.2.7 : @daz Updates twitter theme framework to use 2.x while still maintaining core layout. #50 + @philips and @treggats add support for page.tagline metadata. #31 & #48 + - 0.2.6 : @koomar Adds Mixpanel analytics provider. #49 + - 0.2.5 : @nolith Adds ability to load custom rake scripts. #33 + - 0.2.4 : @tommyblue Updated disqus comments provider to be compatible with posts imported from Wordpress. #47 + + - **Bug Fixes** + - 0.2.3 : @3martini Adds Windows MSYS Support and error checks for git system calls. #40 + - 0.2.2 : @sstar Resolved an issue preventing disabling comments for individual pages #44 + - 0.2.1 : Resolve incorrect HOME\_PATH/BASE\_PATH settings + +- **0.2.0 : 2012.02.01** + Features + - Add Theme Packages v 0.1.0 + All themes should be tracked and maintained outside of JB core. + Themes get "installed" via the Theme Installer. + Theme Packages versioning is done separately from JB core with + the main intent being to make sure theme versions are compatible with the given installer. + + - 0.1.2 : @jamesFleeting adds facebook comments support + - 0.1.1 : @SegFaultAX adds tagline as site-wide configuration + +- **0.1.0 : 2012.01.24** + First major versioned release. + Features + - Standardize Public API + - Use name-spacing and modulation where possible. + - Ability to override public methods with custom code. + - Publish the theme API. + - Ship with comments, analytics integration. + +- **0.0.1 : 2011.12.30** + First public release, lots of updates =p + Thank you everybody for dealing with the fast changes and helping + me work out the API to a manageable state. + http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/blogs.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/blogs.md b/website-old/front/community/blogs.md new file mode 100644 index 0000000..3b2da80 --- /dev/null +++ b/website-old/front/community/blogs.md @@ -0,0 +1,28 @@ +--- +layout: default +title: History of Apache Mahout +theme: + name: mahout2 +--- + +<!-- Add to this collection, newest date on top in following format: +### [Title](Link to Post) +**Author**, _MM/DD/YYYY_, Name of Host +Description +--> + +### [Precanned Algorithms in Apache Mahout](https://rawkintrevo.org/2017/05/02/introducing-pre-canned-algorithms-apache-mahout/) +**Trevor Grant** | _05/02/2017_ | rawkintrevo.org + +An introduction to the new Algorithms Framework + +### [Getting Started With Apache Mahout](https://datascience.ibm.com/blog/getting-started-with-apache-mahout-2/) +**Trevor Grant** | _04/25/2017_ | datascience.ibm.com/blog + +How to setup Apache Mahout in IBM's Datascience Experience Notebooking Environment, and run a few trivial programs. + +### [Mahout 0.10.x: first Mahout release as a programming environment](http://www.weatheringthroughtechdays.com/2015/04/mahout-010x-first-mahout-release-as.html) +**Dmitriy Lyubimov, Andrew Palumbo** | _04/09/2017_ | http://weatheringthrutechdays.blogspot.com/ + +Introduces Apache Mahout of the post-MapReduce era, and lays out motivations for change in focus. + http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/buildingmahout.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/buildingmahout.md b/website-old/front/community/buildingmahout.md new file mode 100644 index 0000000..f6e33d2 --- /dev/null +++ b/website-old/front/community/buildingmahout.md @@ -0,0 +1,128 @@ +--- +layout: default +title: Building Mahout +theme: + name: mahout2 +--- + + +# Building Mahout from Source + +## Prerequisites + +* Java JDK 1.7 +* Apache Maven 3.3.9 + + +## Getting the source code + +Checkout the sources from the [Mahout GitHub repository](https://github.com/apache/mahout) +either via + + git clone [email protected]:apache/mahout.git +or + + git clone https://github.com/apache/mahout.git + +## Building From Source + +###### Prerequisites: + +Linux Environment (preferably Ubuntu 16.04.x) Note: Currently only the JVM-only build will work on a Mac. +gcc > 4.x +NVIDIA Card (installed with OpenCL drivers alongside usual GPU drivers) + +###### Downloads + +Install java 1.7+ in an easily accessible directory (for this example, ~/java/) +http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html + +Create a directory ~/apache/ . + +Download apache Maven 3.3.9 and un-tar/gunzip to ~/apache/apache-maven-3.3.9/ . +https://maven.apache.org/download.cgi + +Download and un-tar/gunzip Hadoop 2.4.1 to ~/apache/hadoop-2.4.1/ . +https://archive.apache.org/dist/hadoop/common/hadoop-2.4.1/ + +Download and un-tar/gunzip spark-1.6.3-bin-hadoop2.4 to ~/apache/ . +http://spark.apache.org/downloads.html +Choose release: Spark-1.6.3 (Nov 07 2016) +Choose package type: Pre-Built for Hadoop 2.4 + +Install ViennaCL 1.7.0+ +If running Ubuntu 16.04+ + +``` +sudo apt-get install libviennacl-dev +``` + +Otherwise if your distributionâs package manager does not have a viennniacl-dev package >1.7.0, clone it directly into the directory which will be included in when being compiled by Mahout: + +``` +mkdir ~/tmp +cd ~/tmp && git clone https://github.com/viennacl/viennacl-dev.git +cp -r viennacl/ /usr/local/ +cp -r CL/ /usr/local/ +``` + +Ensure that the OpenCL 1.2+ drivers are installed (packed with most consumer grade NVIDIA drivers). Not sure about higher end cards. + +Clone mahout repository into `~/apache`. + +``` +git clone https://github.com/apache/mahout.git +``` + +###### Configuration + +When building mahout for a spark backend, we need four System Environment variables set: +``` + export MAHOUT_HOME=/home/<user>/apache/mahout + export HADOOP_HOME=/home/<user>/apache/hadoop-2.4.1 + export SPARK_HOME=/home/<user>/apache/spark-1.6.3-bin-hadoop2.4 + export JAVA_HOME=/home/<user>/java/jdk-1.8.121 +``` + +Mahout on Spark regularly uses one more env variable, the IP of the Spark clusterâs master node (usually the node which one would be logged into). + +To use 4 local cores (Spark master need not be running) +``` +export MASTER=local[4] +``` +To use all available local cores (again, Spark master need not be running) +``` +export MASTER=local[*] +``` +To point to a cluster with spark running: +``` +export MASTER=spark://master.ip.address:7077 +``` + +We then add these to the path: + +``` + PATH=$PATH$:MAHOUT_HOME/bin:$HADOOP_HOME/bin:$SPARK_HOME/bin:$JAVA_HOME/bin +``` + +These should be added to the your ~/.bashrc file. + + +###### Building Mahout with Apache Maven + +Currently Mahout has 3 builds. From the $MAHOUT_HOME directory we may issue the commands to build each using mvn profiles. + +JVM only: +``` +mvn clean install -DskipTests +``` + +JVM with native OpenMP level 2 and level 3 matrix/vector Multiplication +``` +mvn clean install -Pviennacl-omp -Phadoop2 -DskipTests +``` +JVM with native OpenMP and OpenCL for Level 2 and level 3 matrix/vector Multiplication. (GPU errors fall back to OpenMP, currently only a single GPU/node is supported). +``` +mvn clean install -Pviennacl -Phadoop2 -DskipTests +``` + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/gsoc.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/gsoc.md b/website-old/front/community/gsoc.md new file mode 100644 index 0000000..125a567 --- /dev/null +++ b/website-old/front/community/gsoc.md @@ -0,0 +1,64 @@ +--- +layout: default +title: Google Summer of Code +theme: + name: mahout2 +--- + +# Google Summer of Code + +Mahout has been mentoring students in Google Summer of Code (GSoC) for as long as +the project has existed. To help students better understand what is +expected of them, this page lays out common advice, links and other tips +and tricks for successfully creating a GSoC proposal for Mahout. + +Be warned, however, that GSoC, particularly at the Apache Software +Foundation (ASF), is fairly competitive. Not only are you competing +against others within Mahout, but Mahout is competing with other projects +in the ASF. Therefore, it is very important that proposals be well +referenced and well thought out. Even if you don't get selected, consider +sticking around. Open source is fun, a great career builder and can open up many +opportunities for you. + +## Tips on Good Proposals + +* Interact with the community before proposal time. This is actually part +of how we rate proposals. Having a good idea is just one part of the +process. You must show you can communicate and work within the community +parameters. You might even consider putting up a patch or two that shows +you get how things work. See [How To Contribute](how-to-contribute.html). +* Since Machine Learning is fairly academic, be sure to cite your sources +in your proposal. +* Provide a realistic timeline. Be sure you indicate what other +obligations you have during the summer. It may seem worthwhile to lie +here, but we have failed students mid-term in the past because they did not +participate as they said they would. Failing mid-term means not getting +paid. +* Do not mail mentors off list privately unless it is something truly +personal (most things are not). This will likely decrease your chances of +being selected, not increase them. +* DO NOT BITE OFF MORE THAN YOU CAN CHEW. Every year, there are a few +students who propose to implement 3-5 machine learning algorithms, all in a two month period. They NEVER get selected. Be +realistic. All successful projects to date follow, more or less, the +following formula: Implement algorithm in Samsara (Mahout's R-Like Scala DSL). Write Unit Tests. +Do some bigger scale tests. Write 1 or 2 examples. Write Website +documentation. That's it. Trust us, it takes a summer to do these things. + + +## What to expect once selected + +* Just as in the proposals, almost all interaction should take place on the +mailing lists. Only personal matters related to your whereabouts or your +evaluation will take place privately. +* Show up. Ask questions. Be engaged. We don't care if you know it all +about what you are implementing. We care about you contributing to open +source. You learn. We learn. Win-win. +* Enjoy it! Contributing to open source can open some amazing doors for +your career. + +<a name="GSOC-References"></a> +## References + + * [GSoC Home](http://code.google.com/soc/) - official GSoC page + * [GSoC FAQ](http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs) - official FAQ + * [Apache GSoC coordination](http://community.apache.org/gsoc.html) - official Apache GSoC documentation, especially important if you want to become a mentor \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/history.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/history.md b/website-old/front/community/history.md new file mode 100644 index 0000000..bebc2f9 --- /dev/null +++ b/website-old/front/community/history.md @@ -0,0 +1,20 @@ +--- +layout: default +title: History of Apache Mahout +theme: + name: mahout2 +--- + + +TODO: Would really like to get perspective of multiple people here + +## Pre-Apache + +## Decision to Move to ASF + +## Early Releases + +## The 0.9.x Major Vendor Freeze + +## Mahout Samsara 0.10.0+ + http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/mailing-lists.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/mailing-lists.md b/website-old/front/community/mailing-lists.md new file mode 100644 index 0000000..c33baba --- /dev/null +++ b/website-old/front/community/mailing-lists.md @@ -0,0 +1,47 @@ +--- +layout: default +title: Mailing Lists, IRC and Archives +theme: + name: mahout2 +--- +# General + +Communication at Mahout happens primarily online via mailing lists. We have +a user as well as a dev list for discussion. In addition there is a commit +list so we are able to monitor what happens on the wiki and in svn. + +<div class="container-fluid"> + <div class="row"> + <div class="col-md-8"><div class="mahoutMailListBox1"> + <b>User</b> - This list is for users of Mahout to ask questions, share knowledge, and + discuss issues. Do send mail to this list with usage and configuration + questions and problems. Also, please send questions to this list to verify + your problem before filing issues in JIRA. + </div></div> + <div class="col-md-2"><div class="mahoutMailListBox1"><a href="mailto:[email protected]">Subscribe</a></div></div> + <div class="col-md-2"><div class="mahoutMailListBox1"><a href="mailto:[email protected]">Un-Subscribe</a></div></div> + </div> + <div class="row"> + <div class="col-md-8"><div class="mahoutMailListBox2"> + <b>Developers</b> - This is the list where participating developers of the Mahout project meet + and discuss issues concerning Mahout internals, code changes/additions, + etc. Do not send mail to this list with usage questions or configuration + questions and problems. + </div></div> + <div class="col-md-2"><div class="mahoutMailListBox2"><a href="mailto:[email protected]">Subscribe</a></div></div> + <div class="col-md-2"><div class="mahoutMailListBox2"><a href="mailto:[email protected]">Un-Subscribe</a></div></div> + </div> + <div class="row"> + <div class="col-md-8"><div class="mahoutMailListBox1"><b>Commits</b></div></div> + <div class="col-md-2"><div class="mahoutMailListBox1"><a href="mailto:[email protected]">Subscribe</a></div></div> + <div class="col-md-2"><div class="mahoutMailListBox1"><a href="mailto:[email protected]">Un-Subscribe</a></div></div> + </div> + +</div> + +## Official Apache Archive + +* [New Pony Mail [email protected]](https://lists.apache.org/[email protected]) +* [New Pony Mail [email protected]](https://lists.apache.org/[email protected]) +* [Old Apache Mail Archives [email protected]](http://mail-archives.apache.org/mod_mbox/mahout-dev/) +* [Old Apache Mail Archives [email protected]](http://mail-archives.apache.org/mod_mbox/mahout-user/) http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/privacy-policy.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/privacy-policy.md b/website-old/front/community/privacy-policy.md new file mode 100644 index 0000000..9b51f6e --- /dev/null +++ b/website-old/front/community/privacy-policy.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Privacy Policy +theme: + name: mahout2 +--- + + +Information about your use of this website is collected using server access +logs and a tracking cookie. The collected information consists of the +following: + +* The IP address from which you access the website; +* The type of browser and operating system you use to access our site; +* The date and time you access our site; +* The pages you visit; and +* The addresses of pages from where you followed a link to our site. + +Part of this information is gathered using a tracking cookie set by the +Google Analytics service and handled by Google as described in their +privacy policy. See your browser documentation for instructions on how to +disable the cookie if you prefer not to share this data with Google. + +We use the gathered information to help us make our site more useful to +visitors and to better understand how and when our site is used. We do not +track or collect personally identifiable information or associate gathered +data with any personally identifying information from other sources. + +By using this website, you consent to the collection of this data in the +manner and for the purpose described above. http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/recent-upcoming-talks.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/recent-upcoming-talks.md b/website-old/front/community/recent-upcoming-talks.md new file mode 100644 index 0000000..ae09874 --- /dev/null +++ b/website-old/front/community/recent-upcoming-talks.md @@ -0,0 +1,19 @@ +--- +layout: default +title: Recent and Upcoming Talks +theme: + name: mahout2 +--- + + +**APACHE MAHOUT'S NEW RECOMMENDER ALGORITHM AND USING GPUS TO SPEED MODEL CREATION** _Pat Ferrel, Andy Palumbo_. [GPU Technology Conference](https://gputechconf2017.smarteventscloud.com/connect/sessionDetail.ww?SESSION_ID=118703). Silicon Valley, CA- May 11, 2017 + +**EXTENDING MAHOUT-SAMSARA LINEAR ALGEBRA DSL TO SUPPORT GPU CLUSTERS** _Suneel Marthi, Trevor Grant_. [GPU Technology Conference](https://gputechconf2017.smarteventscloud.com/connect/sessionDetail.ww?SESSION_ID=110060). Silicon Valley, CA- May 11, 2017 + +**Apacheâ âMahout:â âAnâ âExtendableâ âMachineâ âLearningâ âFrameworkâ âforâ âSparkâ âandâ âFlink** _Trevor Grant_. [Apache Big Data](https://apachebigdata2017.sched.com/event/9ztC/apache-mahout-an-extendable-machine-learning-framework-for-spark-and-flink-trevor-grant-ibm?iframe=no&w=&sidebar=yes&bg=no). Miami, FL- May 16, 2017 + +**An Apache Based Intelligent IoT Stack for Transportation** _Trevor Grant, Joe Olsen_. [ApacheCon IoT](https://apachecon2017.sched.com/event/9zos/an-apache-based-intelligent-iot-stack-for-transportation-trevor-grant-ibm?iframe=no&w=&sidebar=yes&bg=no). Miami, FL- May 18, 2017 + +**Apache Mahout: Distributed Matrix Math for Machine Learning** _Andrew Musselman_. [MLConf](http://mlconf.com/mlconf-2017-seattle/#andrew). Seattle, WA- May 19, 2017 + + http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/community/who-we-are.md ---------------------------------------------------------------------- diff --git a/website-old/front/community/who-we-are.md b/website-old/front/community/who-we-are.md new file mode 100644 index 0000000..ca3efc6 --- /dev/null +++ b/website-old/front/community/who-we-are.md @@ -0,0 +1,64 @@ +--- +layout: default +title: Who we are +theme: + name: mahout2 +--- + + +<a name="WhoWeAre-Whoweare"></a> +# Who we are + +Apache Mahout is maintained by a team of volunteer developers. + +<a name="WhoWeAre-CoreCommitters"></a> +## Core Committers + +(Please keep the list below in alphabetical order by first name.) + +Name | Mail | PMC | Comment +----|---------|------|------|---------- +Anand Avati | avati@... | No | Twitter: @anandavati +Andrew Musselman | akm@... | Yes | Twitter: @akm +Andrew Palumbo | apalumbo@... | Yes (Chair) | | +Benson Margulies | bimargulies@... | Yes | | +Dan Filimon | dfilimon@... | No | | +Dmitriy Lyubimov | dlyubimov@... | No (Emeritus) | +Drew Farris | drew@... | Yes | | +Ellen Friedman | ellenf@... | No | Twitter: @Ellen_Friedman +Frank Scholten | frankscholten@... | No | | +Gokhan Capan | gcapan@... | No | <a href="http://www.linkedin.com/in/gokhancapan">LinkedIn Profile</a> +Grant Ingersoll | gsingers@... | Yes | Twitter: @gsingers +Isabel Drost-Fromm | isabel@... | Yes | Passion for free software (development, but to some extend also the political and economic implications), interested in agile development and project management, lives in Germany. Follow me on Twitter @MaineC +Jacob Alexander Mannix | jmannix@... | Yes | | +Jeff Eastman | jeastman@... | No (Emeritus) | +Paritosh Ranjan | pranjan@... | Yes | Twitter: @paritoshranjan +Pat Ferrel | pat@... | Yes | Twitter: @occam +Robin Anil | robinanil@... | Yes | | +Sean Owen | srowen@... | No (Emeritus) | +Sebastian Schelter | ssc@... | Yes | | +Shannon Quinn | squinn@... | No | | +Stevo SlaviÄ| sslavic@... | No | Twitter: @sslavic +Suneel Marthi | smarthi@... | Yes | Twitter: @suneelmarthi +Ted Dunning | tdunning@... | Yes | +Tom Pierce | tcp@... | No | | +Trevor Grant | rawkintrevo@... | Yes | Twitter: @rawkintrevo , [Blog](http://rawkintrevo.org) + +<a name="WhoWeAre-EmeritusCommitters"></a> +## Emeritus Committers + +* Niranjan Balasubramanian (nbalasub@...) +* Otis Gospodnetic (otis@...) +* David Hall (dlwh@...) +* Erik Hatcher (ehatcher@...) +* Ozgur Yilmazel (oyilmazel@...) +* Dawid Weiss (dweiss@...) +* Karl Wettin (kalle@...) +* AbdelHakim Deneche (adeneche@...) + +Note that the email addresses above end with @apache.org. + +<a name="WhoWeAre-Contributors"></a> +## Contributors + +Apache Mahout contributors and their contributions to individual issues can be found at Apache <a href="http://issues.apache.org/jira/browse/MAHOUT">JIRA</a>. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/githubPRs.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/githubPRs.md b/website-old/front/developers/githubPRs.md new file mode 100644 index 0000000..50a2da6 --- /dev/null +++ b/website-old/front/developers/githubPRs.md @@ -0,0 +1,84 @@ +--- +layout: default +title: Github PRs +theme: + name: mahout2 +--- + + +# Handling Github PRs # + +---------- + + +## How to Create a PR (for contributers) + +Read [[1]]. + +Pull requests are made to apache/mahout repository on Github. + +## Merging a PR and Closing it (for committers). + +Remember that pull requests are equivalent to a remote branch with potentially a multitude of commits. +In this case it is recommended to squash remote commit history to have one commit per issue, rather +than merging in a multitude of contributer's commits. In order to do that, as well as close the PR at the +same time, it is recommended to use **squash commits**. + +Read [[2]] (merging locally). Merging pull requests are equivalent to merging contributor's branch: + + git checkout master # switch to local master branch + git pull apache master # fast-forward to current remote HEAD + git pull --squash https://github.com/cuser/mahout cbranch # merge to master + + +In this example we assume that contributor Github handle is "cuser" and the PR branch name is "cbranch" there. We also +assume that *apache* remote is configured as + + apache https://git-wip-us.apache.org/repos/asf/mahout.git (fetch) + apache https://git-wip-us.apache.org/repos/asf/mahout.git (push) + + +Squash pull ensures all PR history is squashed into single commit. Also, it is not yet committed, even if +fast forward is possible, so you get chance to change things before committing. + +At this point resolve conflicts, if any, or ask contributor to rebase on top of master, if PR went out of sync. + +Suppose everything is fine, you now can commit the squashed request + + git commit -a + +edit message to contain "MAHOUT-YYYY description **closes #ZZ**", where ZZ is the pull request number. +Including "closes #ZZ" will close PR automatically. More information [[3]]. + + push apache master + +(this will require credentials). + +Note on `master` branch: Minor patches, bug fixes, complete features, etc. may be merged to `master`. Features that +are still under development should be pushed to a feature branch with reasonable name or better yet `mahout-xxxx` where +`xxxx` is the JIRA number. + +Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are +difficult for merging. The workflow implies that every new PR starts with a new rebased branch. This is more +important for contributors to know, rather than for committers, because if new PR is not mergeable, github +would warn to begin with. Anyway, watch for dupe PRs (based on same source branches). This is a bad practice. + +## Closing a PR without committing + +When we want to reject a PR (close without committing), just do the following commit on master's HEAD +*without merging the PR*: + + git commit --allow-empty -m "closes #ZZ *Won't fix*" + git push apache master + +that should close PR without merging and any code modifications in the master repository. + +## Apache/github integration features + +Read [[4]]. Issue handles mentioned in comments and PR name should post to mailing lists and Jira. + + +[1]: https://help.github.com/articles/creating-a-pull-request +[2]: https://help.github.com/articles/merging-a-pull-request#merging-locally +[3]: https://help.github.com/articles/closing-issues-via-commit-messages +[4]: https://blogs.apache.org/infra/entry/improved_integration_between_apache_and http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/how-to-become-a-committer.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/how-to-become-a-committer.md b/website-old/front/developers/how-to-become-a-committer.md new file mode 100644 index 0000000..15fb076 --- /dev/null +++ b/website-old/front/developers/how-to-become-a-committer.md @@ -0,0 +1,28 @@ +--- +layout: default +title: How to Become a Commmiter +theme: + name: mahout2 +--- + +# How to Become a Committer + +While there's no exact criteria for becoming a committer, there is a fairly +obvious path to becoming a committer. + +For starters, one should be familiar with the [Apache Way ](http://www.apache.org/foundation/how-it-works.html), especially the part about meritocracy. + +Second, participate in the mailing lists, help answer questions when you +can and do so in a respectful manner. This is often more important than +writing amazing code. + +Third, write code, add patches, stick with them and be patient. Add unit +tests and documentation. In general, tackling 3 or 4 decent patches is +where the bar is at, but it depends on the state of the project. In the +earlier stages of the project, the bar is a bit lower, so it pays to join +early! + +Finally, it is then up to someone to nominate them to the PMC. Typically, +one of the existing committers does this by sending an email to the private +PMC mailing list ([email protected], where m.a.o is mahout.apache.org) and then +the PMC votes on it. Nominations often occur internal to the PMC as well. http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/how-to-contribute.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/how-to-contribute.md b/website-old/front/developers/how-to-contribute.md new file mode 100644 index 0000000..0d6f85b --- /dev/null +++ b/website-old/front/developers/how-to-contribute.md @@ -0,0 +1,155 @@ +--- +layout: default +title: How to Contribute +theme: + name: mahout2 +--- + + +# How to Contribute + +*Contributing to an Apache project* is about more than just writing code -- +it's about doing what you can to make the project better. There are lots +of ways to contribute! + +<a name="HowToContribute-BeInvolved"></a> +## Get Involved + +Discussions at Apache happen on the mailing list. To get involved, you should join the [Mahout mailing lists](/general/mailing-lists,-irc-and-archives.html). In particular: + +* The **user list** (to help others) +* The **development list** (to join discussions of changes) -- This is the best place +to understand where the project is headed. +* The **commit list** (to see changes as they are made) + +Please keep discussions about Mahout on list so that everyone benefits. +Emailing individual committers with questions about specific Mahout issues +is discouraged. See [http://people.apache.org/~hossman/#private_q](http://people.apache.org/~hossman/#private_q) +. Apache has a number of [email tips for contributors][1] as well. + +<a name="HowToContribute-WhattoWorkOn?"></a> +## What to Work On? + +What do you like to work on? There are a ton of things in Mahout that we +would love to have contributions for: documentation, performance improvements, better tests, etc. +The best place to start is by looking into our [issue tracker](https://issues.apache.org/jira/browse/MAHOUT) and +seeing what bugs have been reported and seeing if any look like you could +take them on. Small, well written, well tested patches are a great way to +get your feet wet. It could be something as simple as fixing a typo. The +more important piece is you are showing you understand the necessary steps +for making changes to the code. Mahout is a pretty big beast at this +point, so changes, especially from non-committers, need to be evolutionary +not revolutionary since it is often very difficult to evaluate the merits +of a very large patch. Think small, at least to start! + +Beyond JIRA, hang out on the dev@ mailing list. That's where we discuss +what we are working on in the internals and where you can get a sense of +where people are working. + +Also, documentation is a great way to familiarize yourself with the code +and is always a welcome addition to the codebase and this website. Feel free +to contribute texts and tutorials! Committers will make sure they are added +to this website, and we have a [guide for making website updates][2]. +We also have a [wide variety of books and slides][3] for learning more about +machine learning algorithms. + +If you are interested in working towards being a committer, [general guidelines are available online](/developers/how-to-become-a-committer.html). + +<a name="HowToContribute-ContributingCode(Features,BigFixes,Tests,etc...)"></a> +## Contributing Code (Features, Big Fixes, Tests, etc...) + +This section identifies the ''optimal'' steps community member can take to +submit a changes or additions to the Mahout code base. This can be new +features, bug fixes optimizations of existing features, or tests of +existing code to prove it works as advertised (and to make it more robust +against possible future changes). + +Please note that these are the "optimal" steps, and community members that +don't have the time or resources to do everything outlined on this below +should not be discouraged from submitting their ideas "as is" per "Yonik +Seeley's (Solr committer) Law of Patches": + +*A half-baked patch in Jira, with no documentation, no tests and no backwards compatibility is better than no patch at all.* + +Just because you may not have the time to write unit tests, or cleanup +backwards compatibility issues, or add documentation, doesn't mean other +people don't. Putting your patch out there allows other people to try it +and possibly improve it. + +<a name="HowToContribute-Gettingthesourcecode"></a> +## Getting the source code + +First of all, you need to get the [Mahout source code](/developers/version-control.html). Most development is done on the "trunk". Mahout mirrors its codebase on [GitHub](https://github.com/apache/mahout). The first step to making a contribution is to fork Mahout's master branch to your GitHub repository. + + +<a name="HowToContribute-MakingChanges"></a> +## Making Changes + +Before you start, you should send a message to the [Mahout developer mailing list](/general/mailing-lists,-irc-and-archives.html) +(note: you have to subscribe before you can post), or file a ticket in our [issue tracker](/developers/issue-tracker.html). +Describe your proposed changes and check that they fit in with what others are doing and have planned for the project. Be patient, it may take folks a while to understand your requirements. + + 1. Create a JIRA Issue (if one does not already exist or you haven't already) + 2. Pull the code from your GitHub repository + 3. Ensure that you are working with the latest code from the [apache/mahout](https://github.com/apache/mahout) master branch. + 3. Modify the source code and add some (very) nice features. + - Be sure to adhere to the following points: + - All public classes and methods should have informative Javadoc + comments. + - Code should be formatted according to standard + [Java coding conventions](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf), + with two exceptions: + - indent two spaces per level, not four. + - lines can be 120 characters, not 80. + - Contributions should pass existing unit tests. + - New unit tests should be provided to demonstrate bugs and fixes. + 4. Commit the changes to your local repository. + 4. Push the code back up to your GitHub repository. + 5. Create a [Pull Request](https://help.github.com/articles/creating-a-pull-request) to the to apache/mahout repository on Github. + - Include the corresponding JIRA Issue number and description in the title of the pull request: + - ie. MAHOUT-xxxx: < JIRA-Issue-Description > + 6. Committers and other members of the Mahout community can then comment on the Pull Request. Be sure to watch for comments, respond and make any necessary changes. + +Please be patient. Committers are busy people too. If no one responds to your Pull Request after a few days, please make friendly reminders on the mailing list. Please +incorporate other's suggestions into into your changes if you think they're reasonable. Finally, remember that even changes that are not committed are useful to the community. + +<a name="HowToContribute-UnitTests"></a> +#### Unit Tests + +Please make sure that all unit tests succeed before creating your Pull Request. + +Run *mvn clean test*, if you see *BUILD SUCCESSFUL* after the tests have finished, all is ok, but if you see *BUILD FAILED*, +please carefully read the errors messages and check your code. + +#### Do's and Don'ts + +Please do not: + +* reformat code unrelated to the bug being fixed: formatting changes should +be done in separate issues. +* comment out code that is now obsolete: just remove it. +* insert comments around each change, marking the change: folks can use +subversion to figure out what's changed and by whom. +* make things public which are not required by end users. + +Please do: + +* try to adhere to the coding style of files you edit; +* comment code whose function or rationale is not obvious; +* update documentation (e.g., ''package.html'' files, the website, etc.) + + +<a name="HowToContribute-Review/ImproveExistingPatches"></a> +## Review/Improve Existing Pull Requests + +If there's a JIRA issue that already has a Pull Request with changes that you think are really good, and works well for you -- please add a comment saying so. If there's room +for improvement (more tests, better javadocs, etc...) then make the changes on your GitHub branch and add a comment about them. If a lot of people review a Pull Request and give it a +thumbs up, that's a good sign for committers when deciding if it's worth spending time to review it -- and if other people have already put in +effort to improve the docs/tests for an issue, that helps even more. + +For more information see [Handling GitHub PRs](http://mahout.apache.org/developers/github.html). + + + [1]: http://www.apache.org/dev/contrib-email-tips + [2]: http://mahout.apache.org/developers/how-to-update-the-website.html + [3]: http://mahout.apache.org/general/books-tutorials-and-talks.html \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/how-to-release.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/how-to-release.md b/website-old/front/developers/how-to-release.md new file mode 100644 index 0000000..4d152b5 --- /dev/null +++ b/website-old/front/developers/how-to-release.md @@ -0,0 +1,241 @@ +--- +layout: default +title: How to Release Mahout +theme: + name: mahout2 +--- + + +Title: How To Release + +# How To Release Mahout + + +*This page is prepared for Mahout committers. You need committer rights to +create a new Mahout release.* + +<a name="HowToRelease-ReleasePlanning"></a> +# Release Planning + +Start a discussion on mahout-dev about having a release, questions to bring +up include: + + * Any [Unresolved JIRA issues for the upcoming release ](-https://issues.apache.org/jira/secure/issuenavigator!executeadvanced.jspa?jqlquery=project+%3d+mahout+and+resolution+%3d+unresolved+and+fixversion+%3d+%220.6%22&runquery=true&clear=true.html) + * Any [Resolved or Closed JIRA issues missing a "Fix Version" ](-https://issues.apache.org/jira/secure/issuenavigator!executeadvanced.jspa?jqlquery=project+%3d+mahout+and+%28status+%3d+resolved+or+status+%3d+closed%29+and+fixversion+is+null+and+resolution+%3d+fixed&runquery=true&clear=true.html) + that should be marked as fixed in this release? + * Does any documentation need an update? + * Who is going to be the "release engineer"? + * What day should be targeted for the release ? Leave buffer time for a +code freeze and release candidate testing; make sure at least a few people +commit to having time to help test the release candidates around the target +date. + + +<a name="HowToRelease-CodeFreeze"></a> +# Code Freeze + +For 7-14 days prior to the release target date, have a "code freeze" where +committers agree to only commit things if they: + + * Are documentation improvements (including fixes to eliminate Javadoc +warnings) + * Are new test cases that improve test coverage + * Are bug fixes found because of improved test coverage + * Are new tests and bug fixes for new bugs encountered by manually testing + +<a name="HowToRelease-StepsForReleaseEngineer"></a> +# Steps For Release Engineer + +<a name="HowToRelease-Beforebuildingrelease"></a> +## Before building release +1. Check that all tests pass after a clean compile: mvn clean test +1. Check that there are no remaining unresolved Jira issues with the +upcoming version number listed as the "Fix" version +1. Publish any prev. unpublished Third Party Deps: [Thirdparty Dependencies](thirdparty-dependencies.html) + +<a name="HowToRelease-PreviewingtheArtifacts"></a> +## Previewing the Artifacts +1. To build the artifacts: +1. # mvn -Pmahout-release,apache-release,hadoop2 package + +<a name="HowToRelease-Makingarelease"></a> +## Making a release +* Check if documentation needs an update +* Update the web site's news by updating a working copy of the SVN +directory at https://svn.apache.org/repos/asf/mahout/site/new_website +* Commit these changes. It is important to do this prior to the build so +that it is reflected in the copy of the website included with the release +for documentation purposes. +* If this is your first release, add your key to the KEYS file. The KEYS +file is located on Github at +https://github.com/apache/mahout/master/distribution/KEYS and copy it +to the release directory. +Make sure you commit your change. +See http://www.apache.org/dev/release-signing.html. +* Ensure you have set up standard Apache committer settings in + ~/.m2/settings.xml as per [this page](http://maven.apache.org/developers/committer-settings.html) +. +* Add a profile to your ~/.m2/settings.xml in the <profiles> section with: + + <blockquote> + <profiles> + <profile> + <id>mahout_release</id> + <properties> + <gpg.keyname>YOUR PGP KEY NAME</gpg.keyname> + <gpg.passphrase>YOUR SIGNING PASSCODE HERE</gpg.passphrase> + +<deploy.altRepository>mahout.releases::default::https://repository.apache.org/service/local/staging/deploy/maven2/</deploy.altRepository> + <username>USERNAME</username> + +<deploy.url>https://repository.apache.org/service/local/staging/deploy/maven2/</deploy.url> + </properties> + </profile> + </profiles> +</blockquote> + +* You may also need to add the following to the <servers> section in +~/.m2/settings.xml in order to upload artifacts (as the -Dusername= +-Dpassword= didn't work for Grant for 0.8, but this did): +<blockquote> +<server> + <id>apache.releases.https</id> + <username>USERNAME</username> + <password>PASSWORD</password> +</server> +</blockquote> + +* Set environment variable MAVEN_OPTS to -Xmx1024m to ensure the tests can +run +* export _JAVA_OPTIONS="-Xmx1g" +* If you are outside the US, then svn.apache.org may not resolve to the +main US-based Subversion servers. (Compare the IP address you get for +svn.apache.org with svn.us.apache.org to see if they are different.) This +will cause problems during the release since it will create a revision and +then immediately access, but, there is a replication lag of perhaps a +minute to the non-US servers. To temporarily force using the US-based +server, edit your equivalent of /etc/hosts and map the IP address of +svn.us.apache.org to svn.apache.org. +* Create the release candidate: + + mvn -Pmahout-release,apache-release,hadoop2 release:prepare release:perform + + If you have problems authenticating to svn.apache.org, try adding to the command line + + -Dusername=\[user]\ -Dpassword=\[password\] + + If it screws up, first try doing: + + mvn -Dmahout-release,apache-release,hadoop2 release:rollback. + + followed by + + mvn -Dmahout-release,apache-release,hadoop2 release:clean + + This will likely save you time and do the right thing. You may also need to delete the tag in source control: + + git tag -d mahout-X.XX.X; git push apache :refs/tags/mahout-X.XX.X + + You may also have to rollback the version numbers in the POM files. + + If you want to skip test cases while rebuilding, use + + mvn -DpreparationGoals="clean compile" release:prepare release:perform + +* Review the artifacts, etc. on the Apache Repository (using Sonatype's +Nexus application) site: https://repository.apache.org/. + You will need to login using your ASF SVN credentials and then +browse to the staging area. +* Once you have reviewed the artifacts, you will need to "Close" out +the staging area under Nexus, which then makes the artifacts available for +others to see. + * Log in to Nexus + * Click the Staging Repositories link in the left hand menu + * Click the Mahout staged one that was just uploaded by the +release:perform target + * Click Close in the toolbar. See +https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository +for a picture + * Copy the "Repository URL" link to your email; it should be like +https://repository.apache.org/content/repositories/orgapachemahout-024/ +* Call a VOTE on [email protected]. Votes require 3 days before +passing. See Apache [release policy|http://www.apache.org/foundation/voting.html#ReleaseVotes] + for more info. +* If there's a problem, you need to unwind the release and start all +over. + <blockquote> + mvn -Pmahout-release,apache-release,hadoop2 versions:set -DnewVersion=PREVIOUS_SNAPSHOT + + mvn -Pmahout-release,apache-release,hadoop2 versions:commit + + git commit + + git push --delete apache <tagname> (deletes the remote tag) + git tag -d tagname (deletes the local tag) + +* Release the artifact in the Nexus Repository in the same way you +Closed it earlier. +* Add your key to the KEYS file at +http://www.apache.org/dist/mahout/<version>/ +* Copy the assemblies and their supporting files (tar.gz, zip, tar.bz2, +plus .asc, .md5, .pom, .sha1 files) to the ASF mirrors at: +people.apache.org:/www/www.apache.org/dist/mahout/<version>/. You should +make sure the group "mahout" owns the files and that they are read only +(-r--r--r-- in UNIX-speak). See [Guide To Distributing Existing Releases Through The ASF Mirrors|http://jakarta.apache.org/site/convert-to-mirror.html?Step-By-Step] + and the links that are there. + * cd /www/www.apache.org/dist/mahout + * mkdir <VERSION> + * cd <VERSION> + * wget -e robots=off --no-check-certificate -np -r +https://repository.apache.org/content/groups/public/org/apache/mahout/apache-mahout-distribution/<VERSION>/ + * mv +repository.apache.org/content/groups/public/org/apache/mahout/mahout-distribution/0.8/* +. + * rm -rf repository.apache.org/ + * rm index.html +* Wait 24 hours for release to propagate to mirrors. +* Clean up JIRA: Bulk close all X.Y JIRA issues. Mark the Version +number as being released (see Manage Versions.) Add the next version +(X.Y+1) if necessary. +* Update release version on http://mahout.apache.org/ and +http://en.wikipedia.org/wiki/Apache_Mahout +* +https://cwiki.apache.org/confluence/display/MAHOUT/How+To+Update+The+Website +* Send announcements to the user and developer lists. + + + +See also: + +* http://maven.apache.org/developers/release/releasing.html +* +http://www.sonatype.com/books/nexus-book/reference/staging-sect-deployment.html +* http://www.sonatype.com/books/nexus-book/reference/index.html + + +### Post Release + +## Versioning +* Create the next version in JIRA (if it doesn't already exist) +* Mark the version as "released" in JIRA (noting the release date) + +## Documentation +* Change wiki to match current best practices (remove/change deprecations, +etc) + +## Publicity +* update freshmeat +* blog away +* Update MLOSS entry: http://mloss.org/revision/view/387/. See Grant for +details. + +## Related Resources + +* http://www.apache.org/dev/#releases +* http://www.apache.org/dev/#mirror + +# TODO: Things To Cleanup in this document + +* more specifics about things to test before starting or after packaging +(RAT, run scripts against example, etc...) +* include info about [Voting | http://www.apache.org/foundation/voting.html#ReleaseVotes] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/how-to-update-the-website.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/how-to-update-the-website.md b/website-old/front/developers/how-to-update-the-website.md new file mode 100644 index 0000000..373c27e --- /dev/null +++ b/website-old/front/developers/how-to-update-the-website.md @@ -0,0 +1,40 @@ +--- +layout: default +title: How to Update the Website +theme: + name: mahout2 +--- + +# How to update the Mahout Website + +<a name="HowToUpdateTheWebsite-Howtoupdatethemahouthomepage"></a> +## How to update the mahout home page +1. Clone Apache Mahout, the website is contained in the `website/` folder, and all pages are writtin in markdown. +1. Once you have made appropriate changes, please open a pull request. + +<a name="HowToUpdateTheWebsite-SomeDo'sandDont'sofupdatingthewiki"></a> +## Some Do's and Dont's of updating the web site +1. Keep all pages cleanly formatted - this includes using standard formatting for headers etc. +1. Try to keep a single page for a topic instead of starting multiple ones. +If the topics are related, put it under as a child under the similar page. +1. Notify the developers of orphaned or broken links. + +## How to push changes to the actual website (committers only) + +1. `svn co https://svn.apache.org/repos/asf/mahout asf-mahout` + +1. Run Terminal + ``` + JEKYLL_ENV=production bundle exec jekyll build + ``` + +Setting `JEKYLL_ENV=production ...` is going to build the docs with {{ BASE_PATH }} from `_config.yml` filled in. This +required when building `docs` especially (it sets to `/docs/[VERSION]`). + + +1. Copy `mahout/website/_site` to `asf-mahout/site/docs/<MAHOUT-VERSION>/` + +1. `svn commit` + +... `svnpubsub` will come into play... +https://reference.apache.org/committer/website \ No newline at end of file http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/index.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/index.md b/website-old/front/developers/index.md new file mode 100644 index 0000000..e4a8fee --- /dev/null +++ b/website-old/front/developers/index.md @@ -0,0 +1,47 @@ +--- +layout: default +title: Developers +theme: + name: mahout2 +--- + +<a name="DeveloperResources-MakingaContribution"></a> +## Making a Contribution + +Mahout is always looking for contributions, especially in the areas of +documentation. See our [How to contribute](/developers/how-to-contribute.html) page for details. + + +<a name="DeveloperResources-SourceCode"></a> +## Source Code + +The source files are stored using Git, our page on [version control](/developers/version-control.html) has details on how to access the sourcecode. + + +<a name="DeveloperResources-Documentation"></a> +## Documentation + +Javadoc and Scaladoc documentation is available online by module: + + * [Mahout Math](http://apache.github.io/mahout/0.10.1/docs/mahout-math/index.html) + * [Mahout Math Scala bindings](http://apache.github.io/mahout/0.10.1/docs/mahout-math-scala/index.html) + * [Mahout Spark bindings](http://apache.github.io/mahout/0.10.1/docs/mahout-spark/index.html) + * [Mahout Spark bindings shell](http://apache.github.io/mahout/0.10.1/docs/mahout-spark-shell/index.html) + * [Mahout H2O backend Scaladoc](http://apache.github.io/mahout/0.10.1/docs/mahout-h2o/scaladocs/index.html) + * [Mahout H2O backend Javadoc](http://apache.github.io/mahout/0.10.1/docs/mahout-h2o/javadoc/index.html) + * [Mahout HDFS](http://apache.github.io/mahout/0.10.1/docs/mahout-hdfs/index.html) + * [Mahout Map-Reduce](http://apache.github.io/mahout/0.10.1/docs/mahout-mr/index.html) + * [Mahout Examples](http://apache.github.io/mahout/0.10.1/docs/mahout-examples/index.html) + * [Mahout Integration](http://apache.github.io/mahout/0.10.1/docs/mahout-integration/index.html) + + +<a name="DeveloperResources-Issues"></a> +## Issues + +All bugs, improvements, [pull requests](http://mahout.apache.org/developers/github.html), etc. should be logged in our [issue tracker](/developers/issue-tracker.html). + +<a name="DeveloperResources-ContinuousIntegration"></a> +## Continuous Integration + +Mahout is continuously built on an hourly basis on the [Apache Jenkins](https://builds.apache.org/job/Mahout-Quality/) build system. + http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/issue-tracker.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/issue-tracker.md b/website-old/front/developers/issue-tracker.md new file mode 100644 index 0000000..8945342 --- /dev/null +++ b/website-old/front/developers/issue-tracker.md @@ -0,0 +1,46 @@ +--- +layout: default +title: Issue Tracker +theme: + name: mahout2 +--- + +# Issue tracker + + +Mahout's issue tracker is located [here](http://issues.apache.org/jira/browse/MAHOUT). +For most changes (apart from trivial stuff) Mahout works according to a review-then-commit model. +This means anything that is to be added is first presented as a patch in the issue tracker. All conversations in the issue tracker are automatically +echoed on the developer mailing list and people tend to respond or continue +conversations there rather in the issue tracker, so in order to follow an +issue you also have to read to the <a href="http://mahout.apache.org/general/mailing-lists,-irc-and-archives.html">mailing lists</a>. + +An issue does not literally have to be an issue. It could be a wish, task, +bug report, etc. and it does not have to contain a patch. + +Mahout uses [JIRA](https://confluence.atlassian.com/display/JIRA/JIRA+Documentation) by Atlassian. + +<a name="IssueTracker-Bestpractise"></a> +#### Best practices + +Don't create duplicate issues. Make sure your problem is a problem and that +nobody else already fixed it. If you are new to the project, it is often +preferred that the subject of an issue is discussed on one of our mailing +lists before an issue is created - in particular when it comes to adding new functionality. + +Quote only what it is you are responding to in comments. + +Patches should be created at trunk or trunk parent level and if possible be +a single uncompressed text file so it is easy to inspect the patch in a web +browser. (See [Patch Check List](/developers/patch-check-list.html) +.) + +Use the issue identity when referring to an issue in any discussion. +"MAHOUT-n" and not "mahout-n" or "n". MAHOUT-1 would automatically be +linked to [MAHOUT-1](http://issues.apache.org/jira/browse/MAHOUT-1) + in a better world. + +A note to committers: Make sure to mention the issue id in each commit. Not only has +JIRA the capability of auto-linking commits to the issue they are related to +that way, it also makes it easier to get further information for a specific commit +when browsing through the commit log and within the commit mailing list. http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/key-concepts.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/key-concepts.md b/website-old/front/developers/key-concepts.md new file mode 100644 index 0000000..9071bab --- /dev/null +++ b/website-old/front/developers/key-concepts.md @@ -0,0 +1,43 @@ +--- +layout: default +title: Key Concepts Overview +theme: + name: mahout2 +--- + + +Stub: +## Mahout-Samsara Mathematically Expressive Scala DSL + +High level over view of how user creates DRMs (which are actually wrappers around underlying bindings data structure) +How Samsara gives R-Like syntax to these DRMs with operations like `drmA.t %*% drmA`. How the spirit of this is to let +practitioners quickly develop their own distributed algorithms. + +## Distributed Bindings + +Here we'll talk a bit how the user can write distributed bindings for any engine they wish, how they must implement a few +linear algebra operations on the distributed engine in question. + +## Native Solvers + +How in JVM based distributed engines, computations happens at JVM on node, native solvers tell application how to dump +out of JVM and calculate natively, then load back into JVM for shipping. + + +## Linear Algebra Algorithms + +How algos like dssvd dspca dqr, etc make back bone of algos framework. + +## Reccomenders + +Mahout's long legacy as leader in Reccomenders in big data, and what is available today. + +## Distributed Statistics / Machine Learning Algos a.k.a. pre-canned algos. + +How we recognize that not everyone wants to re-invent K-means and linear regression so we are building up a collection of +common and essoteric algorithms that will come 'pre-canned' + +## Map Reduce + +How these are legacy but still exist. + http://git-wip-us.apache.org/repos/asf/mahout/blob/ec5eb314/website-old/front/developers/patch-check-list.md ---------------------------------------------------------------------- diff --git a/website-old/front/developers/patch-check-list.md b/website-old/front/developers/patch-check-list.md new file mode 100644 index 0000000..8f48ae9 --- /dev/null +++ b/website-old/front/developers/patch-check-list.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Pathc Check List +theme: + name: mahout2 +--- + + +# Patch Check List + +So, you want to merge a contribution- or you want to know in more detail what committers look for in your contribution? +Here are tips, traps, etc. for dealing with +PRs: + + - Did the author write unit tests? Are the unit tests worthwhile? + - Are the licenses correct on newly added files? Has an ASF license been +granted? + - Make sure you update JIRA by assigning the issue to you so that others +know you are working on it. + - How is the documentation, especially the javadocs? + - Before committing, make sure you add any new documents to your local Git repo. + - Run all unit tests, verify that all tests pass. + - Lastly, update the [CHANGELOG](https://github.com/apache/mahout/blob/master/CHANGELOG) file. Give proper credit to the authors. + +After the above steps are verified and completed, and the contribution is ready to merge, follow the steps in the "Merging a PR" section in: [Handling Github PRs](http://mahout.apache.org/developers/github.html). + + - Remember to update the issue status in JIRA when you have completed it. + + + \ No newline at end of file
