diff --git a/_config.yml b/_config.yml
index 0c3d12bfe..8d7e45ef3 100644
--- a/_config.yml
+++ b/_config.yml
@@ -42,8 +42,6 @@ collections:
output: false
events:
output: false
- contribute_resources:
- output: false
downloads:
output: true
posts:
diff --git a/_contribute_resources/1-documentation.md b/_contribute_resources/1-documentation.md
deleted file mode 100644
index b39290a39..000000000
--- a/_contribute_resources/1-documentation.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Documentation
-link: /contribute/documentation.html
-icon: fa fa-file-text
----
-[Scaladoc (API)](/contribute/scala-standard-library-api-documentation.html), [docs.scala-lang.org](https://docs.scala-lang.org/contribute.html) and [scala-lang.org](https://github.com/scala/scala-lang).
diff --git a/_contribute_resources/2-bug-fixes.md b/_contribute_resources/2-bug-fixes.md
deleted file mode 100644
index cca6269e0..000000000
--- a/_contribute_resources/2-bug-fixes.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Bug fixes
-link: /contribute/guide.html
-icon: fa fa-pencil
----
-Issues with the tools, core libraries and compiler. Also you can help us by [reporting bugs](/contribute/bug-reporting-guide.html).
diff --git a/_contribute_resources/3-code-reviews.md b/_contribute_resources/3-code-reviews.md
deleted file mode 100644
index 2fc057eb0..000000000
--- a/_contribute_resources/3-code-reviews.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Code Reviews
-link: /contribute/codereviews.html
-icon: fa fa-eye
----
-Review pull requests against [scala/scala](https://github.com/scala/scala/pulls),
-[scala/scala-lang](https://github.com/scala/scala-lang/pulls),
-[scala/docs.scala-lang](https://github.com/scala/docs.scala-lang/pulls) and others.
diff --git a/_contribute_resources/4-core-libraries.md b/_contribute_resources/4-core-libraries.md
deleted file mode 100644
index 06f101847..000000000
--- a/_contribute_resources/4-core-libraries.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Core Libraries
-link: /contribute/corelibs.html
-icon: fa fa-clipboard
----
-Update and expand the capabilities of the core (and associated) Scala libraries.
diff --git a/_contribute_resources/5-ide-and-build-tools.md b/_contribute_resources/5-ide-and-build-tools.md
deleted file mode 100644
index 7202f0d95..000000000
--- a/_contribute_resources/5-ide-and-build-tools.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: IDE and Build Tools
-link: /contribute/tools.html
-icon: fa fa-terminal
----
-Enhance the Scala tools with features for build tools, IDE plug-ins and other related projects.
diff --git a/_contribute_resources/6-compiler-language.md b/_contribute_resources/6-compiler-language.md
deleted file mode 100644
index fcfea35d5..000000000
--- a/_contribute_resources/6-compiler-language.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Compiler/Language
-link: /contribute/guide.html#larger-changes-new-features
-icon: fa fa-gears
----
-Larger language features and compiler enhancements including language specification and SIPs.
diff --git a/_data/nav-header.yml b/_data/nav-header.yml
index f5df48b9f..a56166380 100644
--- a/_data/nav-header.yml
+++ b/_data/nav-header.yml
@@ -6,7 +6,5 @@
url: /community/
- title: Libraries
url: https://index.scala-lang.org
-- title: Contribute
- url: /contribute/
- title: Blog
url: /blog/
diff --git a/contribute/bug-reporting-guide.md b/contribute/bug-reporting-guide.md
index 88317da0c..40eae8d17 100644
--- a/contribute/bug-reporting-guide.md
+++ b/contribute/bug-reporting-guide.md
@@ -1,88 +1,6 @@
---
title: Bug Reporting
-layout: inner-page-no-masthead
# permalink: /contribute/bug-reporting-guide/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/bug-reporting-guide.html
---
-
-The Scala compiler and standard library bug tracker is located at [https://github.com/scala/bug](https://github.com/scala/bug). Before you submit a bug make sure that it is certainly a bug by following instructions in *Is it a Bug?*.
-
-## Is it a Bug?
-
-The first step in identifying a bug is to identify which component of the Scala distribution is affected. First, ensure that your issue falls within any of the following categories:
-
- - **Library** bugs typically manifest themselves as run-time exceptions, or as *unexpected*/*unintuitive* behavior of Scala Standard Library methods.
- - **Compiler** errors are manifested as compile time exceptions, unexpected behavior of your code at run time, or invalid behavior of the type system.
- - **Reflection** are bugs that appear in the ‘scala.reflect’ package. For the *reflection* bugs , the same rules apply as for the *library* bugs.
- - **Scaladoc** bugs are manifested as a logical problems in the information it presents (that is, the displayed information is incorrect, such as an incorrect subclassing relationship), or incorrect behavior of the user interface. If you'd like to suggest a change in the content of the documentation, please submit a pull request (possible to do in the browser using GitHub, which is easier and faster than filing a bug). Please file a bug about the content of documentation only if you cannot provide a suggestion for its fix.
-
-If your issue is related to any of the following external projects, make sure to use its appropriate issue tracker:
-
- - [Akka](https://doc.akka.io/docs/akka/current/project/issue-tracking.html)
- - [Play!](https://github.com/playframework/Play20/issues)
- - [Slick](https://github.com/slick/slick/issues)
- - [Scala IDE](https://scala-ide-portfolio.assembla.com/spaces/scala-ide/support/tickets)
- - [sbt](https://github.com/sbt/sbt/issues)
-
-The following are generally considered to be bugs:
-
-- **Scala Compiler Crash** If the Scala compiler is crashing with an internal error (compile time exception) you have certainly found a bug, and can move on to the next section of this document on reporting confirmed bugs.
-- **Regressions** If some code snippet worked in a previous Scala release, but now no longer compiles or results in an exception, it is probably a regression.
-- **Verify Errors** happen when the compiled Scala program is loaded to the Java Virtual Machine. If you're getting a *Verify Error*, you've usually found a bug. Make sure first that your project is not using stale `.class` files before reporting a new issue.
-
-If you have a code snippet that is resulting in bytecode which you believe is behaving incorrectly, you may or may not have found a bug. Before reporting your issue, please attempt the following:
-
-* Make sure you minimize your problem. To correctly minimize the problem follow the following instructions:
-
- 1. Gradually take apart the offensive code snippet until you believe you have the simplest representation of your problem.
-
- 2. Ensure that you have decoupled your code snippet from any library that could be introducing the offensive behavior. One way to achieve this is to try to recompile the offensive code snippet in isolation, outside of the context of any complex build environment. If your code depends on some strictly Java library and source code is available for it, make sure that the latter is also minimized.
-
- 3. Make sure you are compiling your project from a clean slate. Your problem could be related to separate compilation, which is difficult to detect without a clean build with new `.class` files.
-
- 4. If you have encountered a bug while building your code in the IDE, then please reproduce it on the command line. The same rule applies for build tools like `sbt` or `ant`.
-
- 5. If you want to file an improvement in the issue tracker please discuss it first on one of the mailing lists. They offer much bigger audience than issue tracker. The latter is not suitable for long discussions.
-
-* Keep in mind that the behavior you are witnessing could be intended. Good formal resources for verifying whether or not the language behavior is intended is either in the [Scala Improvement Proposal Documents](https://docs.scala-lang.org/sips/) or in the [Scala Language Specification](https://www.scala-lang.org/files/archive/spec/2.13/). If in doubt, you may always ask on the [Community Category](https://contributors.scala-lang.org/c/community) or [Stack Overflow](https://stackoverflow.com/questions/tagged/scala).
-
-In general, if you find yourself stuck on any of these steps, asking on [Scala Contributors](https://contributors.scala-lang.org/) can be helpful:
-
- - For unexpected behavior use the [Community Category](https://contributors.scala-lang.org/c/community).
- - For compiler bugs use the [Compiler Category](https://contributors.scala-lang.org/c/compiler).
-
-* Examples of exceptions reported by the compiler which usually are not bugs:
- 1. `StackOverflowError` is typically not a bug unless the stacktrace involves the internal packages of the compiler (like `scala.tools.nsc...`). Try to increase the Java stack size (`-Xss`), in most of the cases it helps.
- 2. `AbstractMethodError` can occur when you did not recompile all the necessary Scala files (build tools, like `sbt`, can prevent that from happening) or you are mixing external libraries compiled for different Scala versions (for example one uses `2.10.x` and the other `2.11.x`).
-
-## Reporting Confirmed Bugs is a Sin
-
-Before reporting your bug, make sure to check the issue tracker for other similar bugs. The exception name or a compiler phase are the best keywords to search for. If you are experiencing unexpected behavior search for method/class names where it happens. Your issue might already be reported, and a workaround might already be available for you take advantage of. If your issue *is* reported, be sure to add your test case as a comment if it is different from any of the existing ones.
-
-**Note:** reporting a bug that already exists creates an additional overhead for you, the Scala Team, and all people that search the issue database. To avoid this inconvenience make sure that you thoroughly search for an existing issue.
-
-If you cannot find your issue in the issue tracker, create a new bug. The details about creating a bug report are in the following section.
-
-## Creating a Bug Report
-
-Please make sure to fill in as many fields as possible. Make sure you've indicated the following:
-
- 1. **Exact Scala version** that you are using. For example, `2.10.1` or `2.11.0-RC`. If the bug happens in multiple versions indicate all of them.
- 2. **The component** that is affected by the bug. For example, the Standard Library, Scaladoc, etc.
- 3. **Labels** related to your issue. For example, if you think your issue is related to the typechecker, and if you have successfully minimized your issue, label your bug as "typechecker" and "minimized". Issue tracker will suggest names for existing labels as you type them so try not to create duplicates.
- 4. **Running environment**. Are you running on Linux? Windows? What JVM version are you using?
-
-In order for us to quickly triage the bug that you've found, it's important that the code snippet which produces the observed issue is as minimized as possible. For advice on minimizing your code snippet, please see the appropriate subsection of the above (Is it a Bug?).
-
-### Description
-
-In the description of your issue, be as detailed as you can. Bug reports which have the following information included are typically understood, triaged, and fixed very quickly:
-
- 1. Include a test case (minimized if possible) enabling us to reproduce the problematic behavior. Include your test case (and output) in proper formatting `{code}` blocks:
-
- {code}Here you put your classes{code}
-
- 2. The expected output.
- 3. The actual output, including the stacktrace.
- 4. Related discussion on the mailing lists, if applicable.
- 5. If you have already looked into the issue provide interesting insights or proposals for fixing the issue.
diff --git a/contribute/codereviews.md b/contribute/codereviews.md
index 6e0a2592b..93ad07883 100644
--- a/contribute/codereviews.md
+++ b/contribute/codereviews.md
@@ -1,54 +1,6 @@
---
title: Code Review Contributions
-layout: inner-page-no-masthead
# permalink: /contribute/codereviews/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/codereviews.html
---
-## Code Review Contributions
-
-In addition to [bug fixing](/contribute/guide.html), you can help us review
-[waiting pull requests](#pull-requests-awaiting-comment).
-This is also a good (and recommended) way to get to know the feel of
-the bug-fixing and submissions process before jumping in with your
-own pull requests.
-
-
-### Review Guidelines
-
-[Code of Conduct reminder]({{ site.baseurl }}/conduct.html)
-
-* Keep comments on-topic, concise and precise.
-* Attach comments to particular lines or regions they pertain to whenever possible.
-* Short code examples are often more descriptive than prose.
-* If you have thoroughly reviewed the PR and thought through all angles, LGTM (Looks Good To Me) is the preferred acceptance response.
-* Additional reviews should try to offer additional insights: "I also thought about it from this angle and it still looks good.."
-* Above all, remember that the people you are reviewing might be reviewing your PRs one day too.
-* If you are receiving the review, consider that the advice is being given to make you, and Scala, better rather than as a negative critique. Assume the best, rather than the worst.
-
-## Pull Requests Awaiting Comment
-
-
-
-
-
-
Scala bug fixes and changes in the language, core libs and included tools.
-
-
-
-
Scala documentation site.
-
-
-
-
-
-
-
The Scala language web site.
-
-
-
-
For other PRs, follow the scala project from here.
-
-
-
-
-Also note that the [Tools contributions](/contribute/tools.html) page has more projects that will generate pull requests.
diff --git a/contribute/corelibs.md b/contribute/corelibs.md
index 6b2cc5d95..3c9046484 100644
--- a/contribute/corelibs.md
+++ b/contribute/corelibs.md
@@ -1,19 +1,6 @@
---
title: Core Library Contributions
-layout: inner-page-no-masthead
# permalink: /contribute/corelibs/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/corelibs.html
---
-## Core Library Contributions
-
-There are several options for contributing to Scala's core libraries. You can:
-
-* Help with [Documentation](/contribute/documentation.html).
-* [Report Bugs or Issues](/contribute/bug-reporting-guide.html) against the core libraries.
-* [Fix Bugs or Issues](/contribute/guide.html) against the
- [reported library bugs/issues](https://github.com/scala/bug).
-
-### Significant changes
-
-For significant new functionality or a whole new API to be considered for inclusion in the core Scala distribution,
-please take into account [https://github.com/scala/scala-dev/issues/661] before doing so.
diff --git a/contribute/documentation.md b/contribute/documentation.md
index 967806de4..99d464bac 100644
--- a/contribute/documentation.md
+++ b/contribute/documentation.md
@@ -1,57 +1,6 @@
---
title: Documentation Contributions
-layout: inner-page-no-masthead
# permalink: /contribute/documentation/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/documentation.html
---
-## Contributing Documentation to the Scala project
-
-There are several ways you can help out with the improvement of Scala documentation. These include:
-
-* API Documentation in Scaladoc
-* Guides, Overviews, Tutorials, Cheat Sheets and more on the docs.scala-lang.org site
-* Updating scala-lang.org
-
-Please read this page, and the pages linked from this one, fully before contributing documentation. Many of the questions you have will be answered in these resources. If you have a question that isn't answered, feel free to ask on the [Scala Contributors](https://contributors.scala-lang.org/) mailing list and then, please, submit a pull request with updated documentation reflecting that answer.
-
-**General requirements** for documentation submissions include spell-checking all written language, ensuring code samples compile and run correctly, correct grammar, and clean formatting/layout of the documentation.
-
-Thanks
-
-### API Documentation (Scaladoc)
-
-The Scala API documentation lives with the scala project source code. There are many ways you can help with improving Scaladoc, including:
-
-* [Log issues for missing scaladoc documentation](/contribute/scala-standard-library-api-documentation.html#contribute-api-documentation-bug-reports) -
-Please *follow the issue submission process closely* to help prevent duplicate issues being created.
-* [Claim Scaladoc Issues and Provide Documentation](/contribute/scala-standard-library-api-documentation.html) - please claim issues prior to working on a specific scaladoc task to prevent duplication of effort. If you sit on an issue for too long without submitting a pull request, it will revert back to unassigned and you will need to re-claim it.
-* You can also just
-[submit new Scaladoc](/contribute/scala-standard-library-api-documentation.html)
-without creating an issue, but please look to see if there is an issue already submitted for your task and claim it if there is. If not, please post your intention to work on a specific scaladoc task on [Scala Contributors](https://contributors.scala-lang.org/) so that people know what you are doing.
-
-### The Main Scala Documentation Site
-
-[docs.scala-lang.org](https://docs.scala-lang.org/) houses the primary source of written, non-API documentation for Scala. It's a GitHub project that you can fork and submit pull requests from. It includes:
-
-* Overviews
-* Tutorials
-* Conversion Guides from Other Languages
-* Cheat Sheets
-* A Glossary
-* The Scala Style Guide
-* The Scala Language Specification
-* SIP (Scala Improvement Process) Proposals
-and more
-
-Please read [contributing to the docs.scala-lang.org site](https://docs.scala-lang.org/contribute.html) through before embarking on changes. The site uses
-the [Jekyll](https://jekyllrb.com/) markdown engine so you will need to follow the instructions to get that running as well.
-
-### Updating scala-lang.org
-
-Additional high-level documentation (including documentation on contributing
-to Scala and related projects) is provided on the main
-[Scala Language site](https://scala-lang.org), and is also kept in the
-[scala-lang GitHub project](https://github.com/scala/scala-lang) which may be forked to create pull requests.
-
-Please read both the
-[docs.scala-lang.org contribution](https://docs.scala-lang.org/contribute.html) document and the [scala-lang.org GitHub README](https://github.com/scala/scala-lang#scala-langorg) before embarking on any changes to the Scala language site, as it uses the same Jekyll markdown tool and many of the same conventions as the Scala documentation site.
diff --git a/contribute/guide.md b/contribute/guide.md
index 7e4f37500..55224ebc3 100644
--- a/contribute/guide.md
+++ b/contribute/guide.md
@@ -1,81 +1,6 @@
---
title: Contributing guide
-layout: inner-page-no-masthead
# permalink: /contribute/guide/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/guide.html
---
-
-
-
-
-
-
Get a peek into the inners of the Scala compiler.
-
-
-
-
File a bug report or a feature request.
-
-
-
-
-
-
-
Get cracking on some easy to approach issues.
-
-
-
-
Learn to write good code and improve your chances of contributing to the Scala galaxy.
-
-
-
-
-
-
-### Why contribute a patch to Scala?
-
-Just to name a few common reasons:
-
-* contributing a patch is the best way to make sure your desired changes will be available in the next Scala version
-* Scala is written in Scala, so going through the source code and patching it will improve your Scala-fu
-* last but not least, it only takes a few accepted commits to make it into the [Scala Contributor Hall of Fame](https://github.com/scala/scala/contributors).
-
-The main Scala project consists of the standard Scala library, the Scala reflection and macros library,
-the Scala compiler and the Scaladoc tool. This means there's plenty to choose from when deciding what to work on.
-Typically the scaladoc tool provides a low entry point for new committers, so it is a good first step into contributing.
-
-On the [Scala bug tracker](https://github.com/scala/bug) you will find the bugs that you could pick up. Once you decided on a ticket to look at, see the next step on how to proceed further.
-
-If you are interested in contributing code, we ask you to sign the
-[Scala Contributor License Agreement](https://www.lightbend.com/contribute/cla/scala),
-which allows us to ensure that all code submitted to the project is
-unencumbered by copyrights or patents.
-
-### Bug-fix Check List
-
-This is the impatient developer's checklist for the steps to submit a bug-fix pull request to the Scala project. For more information, description and justification for the steps, follow the links in that step. Further specific instructions for the release of Scala you are targeting can be found in the `CONTRIBUTING.md` file for that [GitHub branch](https://github.com/scala/scala)
-
-1. [Select a bug to fix from GitHub](/contribute/#community-tickets), or if you found the bug yourself and want to fix it, [create a GitHub issue](/contribute/bug-reporting-guide.html) (but please
-[make sure it's not a duplicate](/contribute/bug-reporting-guide.html#reporting-confirmed-bugs-is-a-sin)).
-2. Optional ([but recommended](/contribute/scala-internals/#why-its-a-good-idea)), announce your intention to work on the bug on [Scala Contributors](https://contributors.scala-lang.org/). After all, don't you want to work on a team with
-[these friendly people](/contribute/hacker-guide.html#1-connect) - it's one of the perks of contributing.
-3. [Fork the Scala repository](/contribute/hacker-guide.html#fork) and clone your fork (if you haven't already).
-4. [Create a feature branch](/contribute/hacker-guide.html#branch) to work on: use the branch name `issue/NNNN` where NNNN is the GitHub issue number.
-5. [Fix the bug, or implement the new small feature](/contribute/hacker-guide.html#implement), include new tests (yes, for bug fixes too).
-6. [Test, rinse](/contribute/hacker-guide.html#test) and [test some more](/contribute/partest-guide.html) until [all the tests pass](/contribute/hacker-guide.html#verify).
-7. [Commit your changes](/contribute/hacker-guide.html#commit) to your feature branch in your fork. Please choose your commit message based on the [Git Hygiene](https://github.com/scala/scala#user-content-git-hygiene) section of the Scala project README.
-8. If necessary [re-write git history](https://git-scm.com/book/en/Git-Branching-Rebasing) so that [commits are organized by major steps to the fix/feature](
-https://github.com/scala/scala#git-hygiene). For bug fixes, a single commit is requested, for features several commits may be desirable (but each separate commit must compile and pass all tests)
-9. [Submit a pull request](./hacker-guide.html#submit).
-10. [Work with a reviewer](https://github.com/scala/scala#reviewing) to [get your pull request merged in](/contribute/hacker-guide.html#review).
-11. Celebrate!
-
-Need more information or a little more hand-holding for the first one? We got you covered: take a read through the entire [Hacker Guide](./hacker-guide.html) for an example of implementing a new feature (some of the steps can be skipped for bug fixes, this will be obvious from reading it, but many of the steps here will help with bug fixes too).
-
-### Larger Changes, New Features
-
-For larger, more ambitious changes (e.g. new language features), the first step to making a change is to discuss it with the community at large, to make sure everyone agrees on the idea
-and on the implementation plan. Announce the change
-on the [Scala Contributors](https://contributors.scala-lang.org/) mailing list and get developer feedback. For really complex changes, a [Scala Improvement Process (SIP)](https://docs.scala-lang.org/sips/) document might be required, but the first step is always to discuss it on the mailing list and if a SIP is required, that will be discussed on the mailing list.
-
-Contributions, big or small, simple or complex, controversial or undisputed, need to materialize as patches against
-the Scala project source tree. The [hacker guide](/contribute/hacker-guide.html) will explain how to materialize your idea into a full-fledged pull request against the Scala code base.
diff --git a/contribute/hacker-guide.md b/contribute/hacker-guide.md
index 302635fae..054cdc0a6 100644
--- a/contribute/hacker-guide.md
+++ b/contribute/hacker-guide.md
@@ -1,382 +1,6 @@
---
title: Scala hacker guide
-by: Eugene Burmako
-layout: inner-page-no-masthead
# permalink: /contribute/hacker-guide/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/hacker-guide.html
---
-
-This guide is intended to help you get from an idea of fixing a bug or implementing a new feature into a nightly Scala build, and, ultimately, to a production release of Scala incorporating your idea.
-
-This guide covers the entire process, from the conception of your idea or bugfix to the point where it is merged into Scala. Throughout, we will use a running example of an idea or bugfix one might wish to contribute.
-
-Other good starting points for first-time contributors include the [Scala README](https://github.com/scala/scala#get-in-touch) and [contributor's guidelines](https://github.com/scala/scala/blob/2.13.x/CONTRIBUTING.md).
-
-## The Running Example
-
-Let's say that you particularly enjoy the new string interpolation language feature introduced in Scala 2.10.0, and you use it quite heavily.
-
-Though, there's an annoying issue
-which you occasionally stumble upon: the formatting string interpolator `f` [does not support](https://github.com/scala/bug/issues/6725)
-new line tokens `%n`.
-
-One approach would be to go the mailing list, request that the bug be fixed, and then to wait indefinitely for the fix arrive. Another approach would be to instead patch Scala oneself, and to submit the fix to the Scala repository in hopes that it might make it into a subsequent release.
-
-**_Of note_**: There are several types of releases/builds. Nightly builds are produced every night at a fixed time. Minor releases happen once every few months. Major releases typically happen once per year.
-
-## 1. Connect
-
-Sometimes it's appealing to hack alone and not to have to interact with others out of fear, or out of comfort. However, in the context a big project such as Scala,
-this might not be the very best idea. There are people in the Scala community who have spent years accumulating knowledge about Scala libraries and internals. They might provide
-unique insights and, what's even better, direct assistance in their areas, so it is not only advantageous, but recommended to communicate with the community about your new patch.
-
-Typically bug fixes and new features start out as an idea or an experiment posted on one of [our mailing lists]({{ site.baseurl }}/community/index.html#forums) to find out how people feel
-about things you want to implement. People proficient in certain areas of Scala usually monitor mailing lists, so you'll often get some help
-by simply posting a message. But the most efficient way to connect is to cc your message to one of the people responsible for maintaining the aspect of Scala which you wish to contribute to.
-
-A list of language features/libraries along with their maintainer's full names and GitHub usernames is [in the Scala repo README](https://github.com/scala/scala#get-in-touch).
-
-In our running example, since Martin is the person who submitted the string interpolation Scala Improvement Proposal and implemented this language feature for Scala 2.10.0, he might be interested in learning of new bugfixes to that feature.
-
-As alluded to earlier, one must also choose an appropriate mailing list. Typically, one would use the [Scala Contributors](https://contributors.scala-lang.org/) mailing list, as it is devoted to discussions about the core internal design and implementation of the Scala system. However, since this issue has been discussed previously on the scala-user mailing list,
-in this example, we post to the [the scala-user mailing list](https://groups.google.com/group/scala-user) about our issue.
-
-
-
-
-Now that we have the approval of the feature's author, we can get to work!
-
-## 2. Set up
-
-Hacking Scala begins with creating a branch for your work item. To develop Scala we use [Git](https://git-scm.com/)
-and [GitHub](https://github.com/). This section of the guide provides a short walkthrough, but if you are new to Git,
-it probably makes sense to familiarize yourself with Git first. We recommend
-
-* the [Git Pro](https://git-scm.com/book/en/) online book.
-* the help page on [Forking a Git Repository](https://help.github.com/articles/fork-a-repo).
-* this great training tool [LearnGitBranching](https://pcottle.github.io/learnGitBranching/). One hour hands-on training helps more than 1000 hours reading.
-
-### Fork
-
-Log into [GitHub](https://github.com/), go to [https://github.com/scala/scala](https://github.com/scala/scala) and click the `Fork`
-button in the top right corner of the page. This will create your own copy of our repository that will serve as a scratchpad for your work.
-
-If you're new to Git, don't be afraid of messing up-- there is no way you can corrupt our repository.
-
-
-
-### Clone
-
-If everything went okay, you will be redirected to your own fork at `https://github.com/user-name/scala`, where `username`
-is your GitHub user name. You might find it helpful to read [https://help.github.com/fork-a-repo/](https://help.github.com/fork-a-repo/),
-which covers some of the things that will follow below. Then, _clone_ your repository (i.e. pull a copy from GitHub to your local machine) by running the following on the command line:
-
- 16:35 ~/Projects$ git clone https://github.com/xeno-by/scala
- Cloning into 'scala'...
- remote: Counting objects: 258564, done.
- remote: Compressing objects: 100% (58239/58239), done.
- remote: Total 258564 (delta 182155), reused 254094 (delta 178356)
- Receiving objects: 100% (258564/258564), 46.91 MiB | 700 KiB/s, done.
- Resolving deltas: 100% (182155/182155), done.
-
-This will create a local directory called `scala`, which contains a clone of your own copy of our repository. The changes that you make
-in this directory can be propagated back to your copy hosted on GitHub and, ultimately, pushed into Scala when your patch is ready.
-
-### Branch
-
-Before you start making changes, always create your own branch. Never work on the `master` branch. Think of a name that describes
-the changes you plan on making. Use a prefix that describes the nature of your change. There are essentially two kinds of changes:
-bug fixes and new features.
-
-* For bug fixes, use `issue/NNNN` or `ticket/NNNN` for bug NNNN from the [Scala bug tracker](https://github.com/scala/bug).
-* For new feature use `topic/XXX` for feature XXX. Use feature names that make sense in the context of the whole Scala project and not just to you personally. For example, if you work on diagrams in Scaladoc, use `topic/scaladoc-diagrams` instead of just `topic/diagrams` would be a good branch name.
-
-Since in our example, we're going to fix an existing bug [6725](https://github.com/scala/bug/issues/6725), we'll create a branch named `ticket/6725`.
-
- 16:39 ~/Projects/scala (master)$ git checkout -b ticket/6725
- Switched to a new branch 'ticket/6725'
-
-If you are new to Git and branching, read the [Branching Chapter](https://git-scm.com/book/en/Git-Branching) in the Git Pro book.
-
-### Build
-
-The next step after cloning your fork is setting up your machine to build Scala.
-
-You need the following tools:
-
-* A Java SDK. The baseline version is 6 for 2.11.x and 8 for 2.12.x. It's possible to use a later SDK for local development, but the continuous integration builds will verify against the baseline version.
-* `sbt`, an interactive build tool commonly used in Scala projects. Acquiring sbt manually is not necessary -- the recommended approach is to download the [sbt-extras runner script](https://github.com/paulp/sbt-extras/blob/master/sbt) and use it in place of `sbt`. The script will download and run the correct version of sbt when run from the Scala repository's root directory.
-* `curl` -- the build uses `curl` in the `pull-binary-libs.sh` script to download bootstrap libs.
-
-OS X and Linux builds should work. Windows is supported, but it might have issues. Please report to the [Scala bug tracker](https://github.com/scala/bug) if you encounter any.
-
-Building Scala is as easy as running `sbt dist/mkPack` in the root of your cloned repository. In general, it's much more efficient to enter the `sbt` shell once and run the various tasks from there, instead of running each task by launching `sbt some-task` on your command prompt.
-
-Be prepared to wait for a while -- a full "clean" build takes 5+ minutes depending on your machine (longer on older machines with less memory). On a recent laptop, incremental builds usually complete within 10-30 seconds.
-
-### IDE
-
-There's no single editor of choice for working with Scala sources, as there are trade-offs associated with each available tool.
-
-Both Eclipse and IntelliJ IDEA have Scala plugins, which are known to work with our codebase.
-Both of those Scala plugins provide navigation, refactoring, error reporting functionality, and integrated debugging.
-See [the Scala README](https://github.com/scala/scala#ide-setup) for instructions on using Eclipse and IntelliJ IDEA with the Scala repository.
-
-There also exist lighter-weight editors such as Emacs, Sublime or jEdit which are faster and much less memory/compute-intensive to run, while
-lacking semantic services and debugging. To address this shortcoming, they can integrate with ENSIME,
-a helper program, which hosts a resident Scala compiler providing some of the features implemented in traditional IDEs. However despite
-having significantly matured over the last year, support for our particular code base is still being improved, and is not as mature as for Eclipse and IntelliJ.
-
-Due to the immense variability in personal preference between IDE/editor experience, it's difficult to recommend a particular tool, and your choice should boil down to your personal preferences.
-
-## 3. Hack
-
-When hacking on your topic of choice, you'll be modifying Scala, compiling it and testing it on relevant input files.
-Typically you would want to first make sure that your changes work on a small example and afterwards verify that nothing break
-by running a comprehensive test suite.
-
-We'll start by creating a `sandbox` directory (`./sandbox` is listed in the .gitignore of the Scala repository), which will hold a single test file and its compilation results. First, let's make sure that
-[the bug](https://github.com/scala/bug/issues/6725) is indeed reproducible by putting together a simple test and compiling and running it with the Scala compiler that we built using `sbt`. The Scala compiler that we just built is located in `build/pack/bin`.
-
- 17:25 ~/Projects/scala (ticket/6725)$ mkdir sandbox
- 17:26 ~/Projects/scala (ticket/6725)$ cd sandbox
- 17:26 ~/Projects/scala/sandbox (ticket/6725)$ edit Test.scala
- 17:26 ~/Projects/scala/sandbox (ticket/6725)$ cat Test.scala
- object Test extends App {
- val a = 1
- val s = f"$a%s%n$a%s"
- println(s)
- }
- 17:27 ~/Projects/scala/sandbox (ticket/6725)$ ../build/pack/bin/scalac Test.scala
- 17:28 ~/Projects/scala/sandbox (ticket/6725)$ ../build/pack/bin/scala Test
- 1%n1 // %n should've been replaced by a newline here
-
-### Implement
-
-Now, implement your bugfix or new feature!
-
-Here are also some tips & tricks that have proven useful in Scala development:
-
-* After building your working copy with the `compile` sbt task, there's no need to leave the comfort of your sbt shell to try it out: the REPL is available as the `scala` task, and you can also run the compiler using the `scalac` task. If you prefer to run the REPL outside sbt, you can generate the scripts in `build/quick/bin` using the `dist/mkQuick` task.
-* The sbt workflow is also great for debugging, as you can simply create a remote debugging session in your favorite IDE, and then activate the JVM options for the next time you run the `scala` or `scalac` tasks using:
-
-```
-> set javaOptions in compiler := List("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8002")
-> scalac test.scala
-[info] Running scala.tools.nsc.Main -usejavacp test.scala
-Listening for transport dt_socket at address: 8002
-```
-
-* Also see [the Scala README](https://github.com/scala/scala#incremental-compilation) for tips on speeding up compile times.
-* If after introducing changes or updating your clone, you get `AbstractMethodError` or other linkage exceptions, try the `clean` task and building again.
-* Don't underestimate the power of `print`. When starting with Scala, I spent a lot of time in the debugger trying to figure out how
- things work. However later I found out that print-based debugging is often more effective than jumping around. While it might be obvious
- to some, I'd like to explicitly mention that it's also useful to print stack traces to understand the flow of execution. When working with `Trees`, you might want to use `showRaw` to get the `AST` representation.
-* You can publish your newly-built scala version locally using the `publishLocal` task in sbt.
-* It's convenient to enable the following local settings to speed up your workflow (put these in `local.sbt` in your working copy):
-
-```
-// skip docs for local publishing
-publishArtifact in (Compile, packageDoc) in ThisBuild := false
-// set version based on current sha, so that you can easily consume this build from another sbt project
-baseVersionSuffix := s"local-${Process("tools/get-scala-commit-sha").lines.head.substring(0, 7)}"
-// show more logging during a partest run
-testOptions in IntegrationTest in LocalProject("test") ++= Seq(Tests.Argument("--show-log"), Tests.Argument("--show-diff"))
-// if incremental compilation is compiling too much (should be fine under sbt 0.13.13)
-// antStyle := true
-```
-
-* Adding a macro to the `Predef` object is a pretty involved task. Due to bootstrapping, you cannot just throw a macro into it. For this reason, the process is more involved. You might want to follow the way `StringContext.f` itself is added. In short, you need to define your macro under `src/compiler/scala/tools/reflect/` and provide no implementation in `Predef` (`def fn = macro ???`). Now you have to set up the wiring. Add the name of your macro to `src/reflect/scala/reflect/internal/StdNames.scala`, add the needed links to it to `src/reflect/scala/reflect/internal/Definitions.scala`, and finally specify the bindings in `src/compiler/scala/tools/reflect/FastTrack.scala`. [Here's](https://github.com/folone/scala/commit/59536ea833ca16c985339727baed5d70e577b0fe) an example of adding a macro.
-
-### Documentation
-
-There are several areas that one could contribute to -- there is the Scala library, the Scala compiler, and other tools such as Scaladoc. Each area has varying amounts of documentation.
-
-##### The Scala Library
-
-Contributing to the Scala standard library is about the same as working on one of your own libraries. Beyond the Scala collections hierarchy, there are no complex internals or architectures to have to worry about. Just make sure that you code in a "don't-repeat-yourself" (DRY) style, obeying the "boy scout principle" (i.e. make sure you've left the code cleaner than you found it).
-
-If documentation is necessary for some trait/class/object/method/etc in the Scala standard library, typically maintainers will include inline comments describing their design decisions or rationale for implementing things the way they have, if it is not straightforward.
-
-If you intend on contributing to Scala collections, please make sure you're familiar with the design of the Scala collections library. It can be easy to put an implementation in the wrong location if you are unfamiliar with the collections architecture. There is an excellent and very detailed guide covering [the Architecture of Scala Collections](https://docs.scala-lang.org/overviews/core/architecture-of-scala-collections.html), as well as a larger more general [Scala collections Guide](https://docs.scala-lang.org/overviews/collections/introduction.html) covering the sequential portion of collections. For parallel collections, there also exists a detailed [Scala Parallel Collections Guide](https://docs.scala-lang.org/overviews/parallel-collections/overview.html).
-
-##### The Scala Compiler
-
-Documentation about the internal workings of the Scala compiler is scarce, and most of the knowledge is passed around by email ([Scala Contributors](https://contributors.scala-lang.org/) mailing list), ticket, or word of mouth. However the situation is steadily improving. Here are the resources that might help:
-
-* [Compiler internals videos by Martin Odersky](https://www.scala-lang.org/old/node/598.html) are quite dated, but still very useful. In this three-video
- series Martin explains the general architecture of the compiler, and the basics of the front-end, which has recently become Scala reflection API.
-* [Reflection documentation](https://docs.scala-lang.org/overviews/reflection/overview.html) describes fundamental data structures (like `Tree`s, `Symbol`s, and `Types`) that
- are used to represent Scala programs and operations defined on then. Since much of the compiler has been factored out and made accessible via the Reflection API, all of the fundamentals needed for reflection are the same for the compiler.
-* [Reflection and Compilers by Martin Odersky](https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Reflection-and-Compilers), a talk
- at Lang.NEXT 2012 in which Martin elaborates on the design of scalac and the architecture of the reflection API.
-* [Scala compiler corner](https://lampwww.epfl.ch/~magarcia/ScalaCompilerCornerReloaded/) contains extensive documentation about
- most of the post-typer phases (i.e. the backend) in the Scala compiler.
-* [Scala Contributors](https://contributors.scala-lang.org/), a mailing list which hosts discussions about the core
- internal design and implementation of the Scala system.
-
-##### Other Projects
-
-Tools like Scaladoc also welcome contributions. Unfortunately these smaller projects have less developer documentation. In these cases, the best thing to do is to directly explore the code base (which often contains documentation as inline comments) or to write to the appropriate maintainers for pointers.
-
-### Interlude
-
-To fix [the bug we're interested in](https://github.com/scala/bug/issues/6725) we've tracked the `StringContext.f` interpolator
-down to a macro implemented in `MacroImplementations.scala` There we notice that the interpolator only processes conversions,
-but not tokens like `%n`. Looks like an easy fix.
-
- 18:44 ~/Projects/scala/sandbox (ticket/6725)$ git diff
- diff --git a/src/compiler/scala/tools/reflect/MacroImplementations.scala b/src/compiler/scala/tools/
- index 002a3fce82..4e8f02084d 100644
- --- a/src/compiler/scala/tools/reflect/MacroImplementations.scala
- +++ b/src/compiler/scala/tools/reflect/MacroImplementations.scala
- @@ -117,7 +117,8 @@ abstract class MacroImplementations {
- if (!strIsEmpty) {
- val len = str.length
- while (idx < len) {
- - if (str(idx) == '%') {
- + def notPercentN = str(idx) != '%' || (idx + 1 < len && str(idx + 1) != 'n')
- + if (str(idx) == '%' && notPercentN) {
- bldr append (str substring (start, idx)) append "%%"
- start = idx + 1
- }
-
-After applying the fix and running `sbt compile`, our simple test case in `sandbox/Test.scala` started working!
-
- 18:51 ~/Projects/scala/sandbox (ticket/6725)$ cd ..
- 18:51 ~/Projects/scala (ticket/6725)$ sbt compile
- ...
- [success] Total time: 18 s, completed Jun 6, 2016 9:03:02 PM
- Total time: 18 seconds
-
- 18:51 ~/Projects/scala (ticket/6725)$ cd sandbox
- 18:51 ~/Projects/scala/sandbox (ticket/6725)$ ../build/pack/bin/scalac Test.scala
- 18:51 ~/Projects/scala/sandbox (ticket/6725)$ ../build/pack/bin/scala Test
- 1
- 1 // no longer getting the %n here - it got transformed into a newline
-
-### Test
-
-To guard your change against accidental breakage in the future, it is important to add tests.
-I have already written one test earlier, so that's a good start but not enough! Apart from obvious usages of our new functionality, we need to cover corner-cases as well.
-
-Adding tests to the test suite is as easy as moving them to the appropriate directory:
-
-* Code which should compile successfully, but doesn't need to be executed, needs to go into the [“pos” directory](https://github.com/scala/scala/tree/2.12.x/test/files/pos).
-* Code which should not compile needs to go into the [“neg” directory](https://github.com/scala/scala/tree/2.12.x/test/files/neg).
-* Code which should compile and get executed by the test suite needs to go into the [“run” directory](https://github.com/scala/scala/tree/2.12.x/test/files/run) and have a corresponding `.check` file with the expected output. You will get test failures if the content of a `.check` file is different from what the test produces while running. If the change in the output is an expected product of your work, you might not want to change the `.check` file by hand. To make partest change the `.check` file, run it with a `--update-check` flag, like so `./test/partest --update-check path/to/test.scala`. For more information on partest, please refer to its [documentation](https://docs.scala-lang.org/tutorials/partest-guide.html).
-* Everything that can be unit-tested should go to ["junit" directory](https://github.com/scala/scala/tree/2.12.x/test/junit)
-* Property-based tests go to the ["scalacheck" directory](https://github.com/scala/scala/tree/2.12.x/test/scalacheck)
-
-Here are some more testing tips:
-
-* If you have several tests, and want a tool for only running tests that conform to some regular expression, you can use `partest-ack` in the `tools` directory: `./tools/partest-ack "dottype"`. `partest-ack` was removed in 2.12.
-* If you want to run all scalacheck tests from sbt use `scalacheck/testOnly`
-* To run scalacheck tests by name when in sbt use `scalacheck/testOnly ... `, for example `scalacheck/testOnly scala.tools.nsc.scaladoc.HtmlFactoryTest`
-* If your tests fail in the following way:
-
- test.bc:
- [echo] Checking backward binary compatibility for scala-library (against 2.11.0)
- [mima] Found 2 binary incompatibiities
- [mima] ================================
- [mima] * synthetic method
- [mima] scala$package$Class$method(java.lang.String)Unit in trait
- [mima] scala.package.Class does not have a correspondent in old version
- [mima] * synthetic method
- [mima] scala$package$AnotherClass$anotherMethod(java.lang.String)Unit in trait
- [mima] scala.package.AnotherClass does not have a correspondent in old version
- [mima] Generated filter config definition
- [mima] ==================================
- [mima]
- [mima] filter {
- [mima] problems=[
- [mima] {
- [mima] matchName="scala.package.Class$method"
- [mima] problemName=MissingMethodProblem
- [mima] },
- [mima] {
- [mima] matchName="scala.package.AnotherClass$anotherMethod"
- [mima] problemName=MissingMethodProblem
- [mima] }
- [mima] ]
- [mima] }
- [mima]
-
- ...
- Finished: FAILURE
-
-This means your change is backward or forward binary incompatible with the specified version (the check is performed by the [migration manager](https://github.com/typesafehub/migration-manager)). The error message is actually saying what you need to add to `bincompat-backward.whitelist.conf` or `bincompat-forward.whitelist.conf` to make the error go away. If you are getting this on an internal/experimental api, it should be safe to add suggested sections to the config. Otherwise, you might want to target a newer version of scala for this change.
-
-### Verify
-
-Now to make sure that my fix doesn't break anything I need to run the test suite. The Scala test suite uses [JUnit](https://junit.org/junit4/) and [partest](partest-guide.html), a tool we wrote for testing Scala.
-Run `sbt test` and `sbt partest` to run all of the JUnit and partest tests, respectively.
-`partest` (not `sbt partest`) also allows you to run a subset of the tests using wildcards:
-
- 18:52 ~/Projects/scala/sandbox (ticket/6725)$ cd ../test
- 18:56 ~/Projects/scala/test (ticket/6725)$ partest files/run/*interpol*
- Testing individual files
- testing: [...]/files/run/interpolationArgs.scala [ OK ]
- testing: [...]/files/run/interpolationMultiline1.scala [ OK ]
- testing: [...]/files/run/interpolationMultiline2.scala [ OK ]
- testing: [...]/files/run/sm-interpolator.scala [ OK ]
- testing: [...]/files/run/interpolation.scala [ OK ]
- testing: [...]/files/run/stringinterpolation_macro-run.scala [ OK ]
- All of 6 tests were successful (elapsed time: 00:00:08)
-
-## 4. Publish
-
-After development is finished, it's time to publish the code and submit your patch for discussion and potential inclusion into Scala.
-In a nutshell, this involves:
-
-1. making sure that your code and commit messages are of high quality,
-2. clicking a few buttons in the GitHub interface,
-3. assigning one or more reviewers who will look through your pull request.
-
-Let's go into each of these points in more detail.
-
-### Commit
-
-The [Git Basics](https://git-scm.com/book/en/Git-Basics) chapter in the Git online book covers most of the basic workflow during this stage.
-There are two things you should know here:
-
-1. Commit messages are often the only way to understand the intentions of authors of code written a few years ago. Thus, writing a quality is of utmost importance. The more context you provide for the change you've introduced, the larger the chance that some future maintainer understand your intentions. Consult [the pull request policies](https://github.com/scala/scala/blob/2.12.x/CONTRIBUTING.md) for more information about the desired style of your commits.
-2. Keeping Scala's git history clean is also important. Therefore we won't accept pull requests for bug fixes that have more than one commit. For features, it is okay to have several commits, but all tests need to pass after every single commit. To clean up your commit structure, you want to [rewrite history](https://git-scm.com/book/en/Git-Branching-Rebasing) using `git rebase` so that your commits are against the latest revision of `master`.
-
-Once you are satisfied with your work, synced with `master` and cleaned up your commits you are ready to submit a patch to the central Scala repository. Before proceeding make sure you have pushed all of your local changes to your fork on GitHub.
-
- 19:22 ~/Projects/scala/test (ticket/6725)$ git add ../src/compiler/scala/tools/reflect/MacroImplementations.scala
- 19:22 ~/Projects/scala/test (ticket/6725)$ git commit
- [ticket/6725 3c3098693b] SI-6725 `f` interpolator now supports %n tokens
- 1 file changed, 2 insertions(+), 1 deletion(-)
- 19:34 ~/Projects/scala/test (ticket/6725)$ git push origin ticket/6725
- Username for 'https://github.com': xeno-by
- Password for 'https://xeno-by@github.com':
- Counting objects: 15, done.
- Delta compression using up to 8 threads.
- Compressing objects: 100% (8/8), done.
- Writing objects: 100% (8/8), 1.00 KiB, done.
- Total 8 (delta 5), reused 0 (delta 0)
- To https://github.com/xeno-by/scala
- * [new branch] ticket/6725 -> ticket/6725
-
-### Submit
-
-Now, we must simply submit our proposed patch. Navigate to your branch in GitHub (for me it was `https://github.com/xeno-by/scala/tree/ticket/6725`)
-and click the pull request button to submit your patch as a pull request to Scala. If you've never submitted patches to Scala, you will
-need to sign the contributor license agreement, which [can be done online](https://www.lightbend.com/contribute/cla/scala) within a few minutes.
-
-
-
-### Review
-
-After the pull request has been submitted, you need to pick a reviewer (usually the person you've contacted in the beginning of your
-workflow) and be ready to elaborate and adjust your patch if necessary. In this example, we picked Martin, because we had such a nice chat on the mailing list:
-
-
-
-## Merge
-
-After your reviewer is happy with your code (usually signaled by a LGTM — “Looks good to me”), your job is done.
-Note that there can be a gap between a successful review and the merge, because not every reviewer has merge rights. In that case, someone else from the team will pick up your pull request and merge it.
-So don't be confused if your reviewer says “LGTM”, but your code doesn't get merged immediately.
diff --git a/contribute/inclusive-language-guide.md b/contribute/inclusive-language-guide.md
index 670353259..5ff5e78b5 100644
--- a/contribute/inclusive-language-guide.md
+++ b/contribute/inclusive-language-guide.md
@@ -1,132 +1,6 @@
---
title: Inclusive Language Guide
-layout: inner-page-no-masthead
-includeTOC: true
permalink: /contribute/inclusive-language/
+redirect_to:
+ - https://docs.scala-lang.org/contribute/inclusive-language-guide.html
---
-
-We are committed to providing a friendly, safe and welcoming environment for
-all, regardless of age, body size, disability, ethnicity, sex characteristics,
-gender identity and expression, level of experience, education, socio-economic
-status, nationality, personal appearance, race, religion, sexual identity
-and orientation, or other such characteristics.
-
-Language is a powerful vehicle of ideas and representations, and as such, can highlight, accentuate, or blur certain characteristics of the world.
-Language -- in its use and structure -- may bias our perception of the world, sometimes to the disadvantage of some people.
-Different language strategies have therefore been suggested to promote more inclusive forms of language, echoing the need for more equal treatment for all.
-
-This inclusive language guide is therefore intended to help us adopt a more inclusive way of communicating.
-Although the present guide does not exhaustively cover all issues pertaining to non-inclusive language, it covers the most important issues we are currently aware of.
-
-Contributions made to the core Scala projects and their documentation -- including to this website -- should follow this guide.
-
-## Non gendered language
-
-The use of *He*, *Him*, *His*, *Man* and *Men* should be avoided.
-Although these terms are intended to refer to any genders (male, female, other, unknown or irrelevant), they imply that the subject is male and therefore excludes all other genders.
-Instead, use the singular *they*, as already used by famous authors like Jane Austen.
-
-Example of the use of singular they:
-
-> When a developer wants to contribute to a project, they open a pull request.
-
-Although *they* refers to a single person, we conjugate the verb with the plural form.
-This is similar to the polite form of pronouns in certain languages, such as "Sie" in German or "vous" in French.
-
-When possible, avoid (combined) words that refer to a specific gender, and use gender-neutral alternatives instead.
-For example:
-
-* *man* or *woman* -> *person*
-* *chairman* -> *chairperson*
-
-## The words easy, simple, quick, and trivial
-
-What might be easy for you might not be easy for others.
-The same applies to other words like *quick* or *simple*.
-When used in the positive or superlative forms, try eliminating this word from sentences because usually the same meaning can be conveyed without it.
-
-Example of a positive form:
-
-> You can then simply execute the program with the `run` command.
-
-can be replaced with
-
-> You can then execute the program with the `run` command.
-
-without changing the meaning of the sentence.
-
-Example of a superlative form:
-
-> The foobar method is the easiest way to get started with our library.
-
-can be replaced with
-
-> We show here how to use the foobar method to get started with our library.
-
-However, the comparative form of these adjectives and adverbs can be used when relevant.
-
-Example of a comparative form:
-
-> The foobar method is quicker to get started with than the baz method.
-
-Similarly, the word *just* is usually redundant and can be removed without altering the meaning.
-
-Example:
-
-> You can just add these settings to your build.
-
-can be replaced with
-
-> You can add these settings to your build.
-
-Of course, every situation is different, and there may be cases where using "the easy words" is still the best thing to do.
-In that case, it should be a deliberate decision to use them, taking the above considerations into account.
-
-## Specific loaded words
-
-Some words may have a derogatory connotation and/or have clear oppressive origins.
-Avoid these words to the greatest extent possible, and use neutral alternatives instead.
-Currently, the following words, used for common computer science concepts, are discouraged.
-This list is neither comprehensive nor definitive, and it can evolve over time.
-
-* **blacklist/whitelist** \
- While the etymology of these words has no relation to racism, their use suggests an association between the color black and some form of badness or exclusion, and between the color white and some form of goodness or inclusion.
- Prefer alternatives when possible.
- Several alternatives have been proposed but none sticks as "the one". We suggest using the pair *excludelist*/*includelist*, as it is generic enough to replace all uses of *blacklist*/*whitelist*.
-* **master/slave** \
- Never use *slave*.
- Never use *master* in conjunction with *slave*.
- Depending on the specific architecture, use one of the following alternatives instead: *controller*/*worker*, *primary*/*secondary*, *leader*/*follower*, etc.
- When in doubt, if you cannot choose, *primary*/*secondary* is always a decent fallback. \
- When used with the meaning of *teacher*, *expert*, *guide*, or *reference*, the word *master* is not specifically discouraged.
- For example, the term *Master of the arts* is acceptable. \
- Note: there exists a broader movement of using `main` instead of `master` as the default git branch, led by GitHub and the git project themselves, and which we encourage people to follow as well.
-* **sanity check** \
- Prefer *confidence check*.
-* **segregated** \
- Computer science concepts like the *interface segregation principle* and *segregated networks* present segregation as being desirable, instead of bad.
- Prefer alternatives like *separation of concerns* and *segmented networks*.
-* **guru** \
- While a *guru* initially refers to a respected spiritual leader, it also designates the chief of a sect.
- Both are of a spiritual nature and are ambiguous.
- If possible, use a more precise term such as *teacher* or *expert*.
-
-A good source with explainers and references can be found at [https://github.com/dialpad/inclusive-language](https://github.com/dialpad/inclusive-language).
-
-Keep in mind that your particular application domain may contain its own share of domain-specific loaded words.
-We encourage you to research inclusive language guidelines applicable to your domain.
-
-You may want to use automated software like [In Solidarity](https://github.com/apps/in-solidarity) to steer contributors away from loaded words.
-
-## Backward compatibility
-
-Sometimes, we have existing code, APIs or commands that do not follow the above recommendations.
-It is generally advisable to perform renamings to address the issue, but that should not be done to the detriment of backward compatibility (in particular, backward binary compatibility of libraries).
-Deprecated aliases should be retained when possible.
-
-Sometimes, it is not possible to preserve backward compatibility through renaming; for example for methods intended to be overridden by user-defined subclasses.
-In those cases, we recommend to keep the old names, but document (e.g., in Scaladoc comments) that they are named as they are for historical reasons and to preserve compatibility, and what their intended name should be.
-
-## See also
-
-* Our [code of conduct](../../conduct/).
diff --git a/contribute/index.md b/contribute/index.md
index d78a72e15..c26b3bead 100644
--- a/contribute/index.md
+++ b/contribute/index.md
@@ -1,67 +1,6 @@
---
title: Contribute
-layout: inner-page-no-masthead
# permalink: /contribute/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/index.html
---
-
-The Scala programming language is an open source project with a very
-diverse community, where people from all over the world contribute their work,
-with everyone benefiting from friendly help and advice, and
-kindly helping others in return. So why not join the Scala community and help
-everyone make things better?
-
-## How to help?
-
-That depends on what you want to contribute. Below are some getting started resources for different contribution domains. Please read all of the documentation and follow all the links from the topic pages below before attempting to contribute, as many of the questions you have will already be answered.
-
-### Reporting bugs
-
-See our [bug reporting guide](/contribute/bug-reporting-guide.html) to learn
-how to efficiently report a bug.
-
-### Contribute
-
-Coordination of contribution efforts takes place on
-[Scala Contributors](https://contributors.scala-lang.org/).
-
-{% include column-list-of-items.html collection=site.contribute_resources %}
-
-### Guidelines
-
-When contributing, please follow:
-
-* The [Scala Code of Conduct](../conduct/)
-* The [Inclusive Language Guide](./inclusive-language/)
-
-### Community Tickets
-
-All issues can be found in the [Scala bug tracker](https://github.com/scala/bug). Most issues are labeled
-to make it easier to find issues you are interested in.
-
-### Tools and Libraries
-
-The Scala ecosystem includes a great many diverse open-source projects
-with their own maintainers and community of contributors. Helping out
-one of these projects is another way to help Scala. Consider lending
-on a hand on a project you're already using. Or, to find out about
-other projects, see the
-[Libraries and Tools section](/community/#community-libraries-and-tools)
-on our Community page.
-
-### Scala Community Build
-
-The Scala community build enables the Scala compiler team
-to build and test a corpus of
-Scala open source projects
-against development versions of the Scala compiler and standard
-library in order to discover regressions prior to releases.
-The build uses Lightbend's
-[dbuild](https://github.com/typesafehub/dbuild) tool,
-which leverages [sbt](https://www.scala-sbt.org).
-
-If you're the maintainer -- or just an interested user! -- of an
-open-source Scala library or tool, please visit the
-[community build documentation](https://github.com/scala/community-build/wiki)
-for guidelines on what projects are suitable for the community build
-and how projects can be added.
diff --git a/contribute/partest-guide.md b/contribute/partest-guide.md
index e7e10621e..6b0ed0ce6 100644
--- a/contribute/partest-guide.md
+++ b/contribute/partest-guide.md
@@ -1,88 +1,6 @@
---
title: Running the Test Suite
-layout: inner-page-no-masthead
# permalink: /contribute/partest-guide/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/partest-guide.html
---
-
-Partest is a custom parallel testing tool that we use to run the test suite for the Scala compiler and library. Go to the scala project folder from your local checkout and run it via `sbt`, `ant` or standalone as follows.
-
-## Using sbt
-
-The test suite can be run from the sbt console with:
-
- > partest
-
-You can get a summary of the usage by running `partest --help`.
-
-If you would like to run particular tests pass the test paths as arguments
-
- > partest test/files/pos/bounds.scala test/scaladoc/run/diagrams-base.scala
-
-To run only the Scaladoc tests use `--srcpath` with the location of the tests
-
- > partest --srcpath scaladoc
-
-## Using ant
-
-Please note support for ant was removed on the 2.12 branch.
-
-The test suite can be run by using ant from the command line:
-
- $ ant test.suite
-
-## Standalone
-
-Please note the standalone scripts mentioned below were removed in 2.12.2. sbt is the preferred way to run the test suite.
-
-There are launch scripts `partest` and `partest.bat` in the `test` folder of the scala project. To have partest run failing tests only and print details about test failures to the console, you can use
-
- ./test/partest --show-diff --show-log --failed
-
-You can get a summary of the usage by running partest without arguments.
-
-* Most commonly you want to invoke partest with an option that tells it which part of the tests to run. For example `--all`, `--pos`, `--neg` or `--run`.
-* You can test individual files by specifying individual test files (`.scala` files) as options. Several files can be tested if they are from the same category, e.g., `pos`.
-* You can enable output of log and diff using the `-show-log` and `-show-diff` options.
-* If you get into real trouble, and want to find out what partest does, you can run it with option `--verbose`. This info is useful as part of bug reports.
-* Set custom path from where to load classes: `-classpath ` and `-buildpath `.
-* You can use the `SCALAC_OPTS` environment variable to pass command line options to the compiler.
-* You can use the `JAVA_OPTS` environment variable to pass command line options to the runner (e.g., for `run/jvm` tests).
-* The launch scripts run partest as follows:
-
- scala -cp scala.tools.partest.nest.NestRunner
-
- Partest classes from a `quick` build, e.g., can be found in `./build/quick/classes/partest/`.
-
- Partest will tell you where it loads compiler/library classes from by adding the `partest.debug` property:
-
- scala -Dpartest.debug=true -cp scala.tools.partest.nest.NestRunner
-
-
-
-## ScalaCheck tests
-
-Tests that depend on [ScalaCheck](https://github.com/rickynils/scalacheck) can be added under folder `./test/files/scalacheck`. A sample test:
-
- import org.scalacheck._
- import Prop._
-
- object Test {
- val prop_ConcatLists = property{ (l1: ListInt, l2: ListInt) =>
- l1.size + l2.size == (l1 ::: l2).size
- }
-
- val tests = List(("prop_ConcatLists", prop_ConcatLists))
- }
-
-## Troubleshooting
-
-### Windows
-
-Some tests might fail because line endings in the `.check` files and the produced results do not match. In that case, set either
-
- git config core.autocrlf false
-
-or
-
- git config core.autocrlf input
diff --git a/contribute/scala-internals.md b/contribute/scala-internals.md
index e6fde53a8..1f3752db4 100644
--- a/contribute/scala-internals.md
+++ b/contribute/scala-internals.md
@@ -1,46 +1,6 @@
---
title: Scala Internals Mailing List
-layout: inner-page-no-masthead
permalink: /contribute/scala-internals/
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/scala-internals.html
---
-
-## scala-internals
-
-The [scala-internals mailing list](https://groups.google.com/d/forum/scala-internals) is where technical and logistical discussions concerning bugs, bug fixes, documentation, improvements, new features and other contributor related topics occur.
-
-### Coordinating on scala-internals
-
-Prior to commencing on contribution work on larger changes to the Scala project, it is recommended (but not required) that you make a post on scala-internals announcing your intention. It's a great time to invite any help, advice or ask any questions you might have. It's also a great place to meet peers, one of whom will probably be reviewing your contribution at some point. For smaller bug fixes or documentation changes where the risk of effort duplication is minimal, you can skip this post.
-
-To help subscribers on the scala-internals list to sort through the postings, we request that the following topic labels are applied when you start a new post please:
-
-| Label | Topics |
-|-----------|-------------------------------------------------------|
-| [docs] | Documentation, e.g. docs.scala-lang.org, API (scaladoc), etc. |
-| [issues] | Bug reporting/fixing |
-| [tools] | Tools including sbt, IDE plugins, testing, scaladoc generator, etc. |
-| [libs] | Core libraries, extension libraries |
-| [compiler] | Scala compiler discussions/features/issues |
-| [admin] | Administrative/coordination topics |
-
-So, to talk about this list (an admin activity primarily) one might use:
-
-`[admin] more suggested labels for topic differentiation.`
-
-as a title, which then shows up on the mailing lists as
-
-`[scala-internals] [admin] more suggested labels for topic differentiation.`
-
-### Why It's a Good Idea
-
-While it is optional to announce your intentions/work items on scala-internals before starting, it is recommended and a smart thing to do for a number of reasons:
-
-* To attempt to cut down on duplicate effort (i.e. to avoid two people working on the same bug at the same time without coordinating effort).
-* Related to the above: to allow the compiler team and core committers to warn of or smooth over potential merge conflicts between separate bugs that might affect the same code.
-* Potentially someone has already thought about or even worked on that issue or a related one, and has valuable insight that might save you time (including warnings about what you might find and may want to avoid - dead ends that have already been explored).
-* You might find a group of impassioned individuals want to volunteer to help you, since you got there first with your post it's up to you to decide if you want help or not.
-* Posting could start a dialog with a potential reviewer, smoothing the latter, merge stages of the issue.
-* There are a lot of nice people waiting to talk to you on scala-internals, you might be surprised how valuable and pleasant you find the experience of talking to them.
-
-If all of this has not convinced you then, please, go ahead and work on contributions anyway. It *is* less important to post to scala-internals first for small, self contained bugs than it is for larger issues or features, and not having posted first will not be a reason for your PR to be rejected, it just might be a rougher review/merge process than if you had posted first. It's your choice.
diff --git a/contribute/scala-standard-library-api-documentation.md b/contribute/scala-standard-library-api-documentation.md
index 6f3af62b3..5dd9c4b89 100644
--- a/contribute/scala-standard-library-api-documentation.md
+++ b/contribute/scala-standard-library-api-documentation.md
@@ -1,124 +1,6 @@
---
title: Contribute to API Documentation
-layout: inner-page-no-masthead
# permalink: /contribute/scala-standard-library-api-documentation.html
-includeTOC: true
+redirect_to:
+ - https://docs.scala-lang.org/contribute/scala-standard-library-api-documentation.html
---
-
-This page is specific to API documentation contributions – that is, API
-documentation for
-[Scala's standard library](https://scala-lang.org/api/current/#package) –
-sometimes referred to as Scaladoc contributions.
-
-For contributions to tutorial and guide-style documentation on
-[docs.scala-lang.org](https://docs.scala-lang.org),
-see the ["doc-site"'s contribution guide](https://docs.scala-lang.org/contribute.html).
-
-*Please note, these instructions cover documentation contributions Scala core
-libraries only. For other Scala projects please check those projects for the
-contribution steps and guidelines. Thank you.*
-
-## Overview
-
-Since API documentation is located in Scala source code files, the
-process for contributing API documentation is similar to that of contributing bug-fixes
-to the Scala code base, but without the requirement that there be an issue filed on GitHub
-first. When forking/branching, just use a `scaladoc/xxxx` branch name, where xxxx is a
-descriptive, but short branch name (e.g. `scaladoc/future-object`).
-However, if an issue *does* exist, please use `issue/NNNN`, where NNNN is the ticket number,
-instead.
-
-If you would like to assist us by helping us find missing documentation and
-submitting bug reports for existing documentation,
-[please read the following section](#contribute-api-documentation-bug-reports).
-If you want to contribute new API documentation,
-[jump down to the next section](#contribute-new-api-documentation).
-
-## Contribute API Documentation Bug Reports
-
-One good way to contribute is by helping us to identify missing documentation. To do
-this, [browse the current API documentation](https://www.scala-lang.org/api/current/)
-and identify missing, incorrect or inadequate documentation. A good place to start is
-package objects for important packages (these often get overlooked for documentation
-and are a good place for API overviews).
-
-If you find an issue, please log it in the [Scala bug tracker](https://github.com/scala/bug)
-**after making sure it is not already logged as an issue**. To help with
-disambiguation, please use the following format for issue title:
-
-* Use an action describing the work required. E.g. Add, Document, Correct, Remove
-* Use the full package, class/trait/object name (or state package object if
- that is the case).
-* Extremely short description of what to do.
-* More detail can (and should) go into the issue description, including a short
- justification for the issue if it provides additional detail.
-
-Here is an example of the title and description for an example API documentation issue:
-
-`Document scala.concurrent.Future object, include code examples`
-
-(note the explicit companion object called out in the title)
-
-and the description:
-
-`The methods on the Future companion object are critical`
-`for using Futures effectively without blocking. Provide code`
-`examples of how methods like sequence, transform, fold and`
-`firstCompletedOf should be used.`
-
-In addition to following these conventions, please add `documentation` and
-`community` labels to the issue, and put them in the `Documentation and API`
-component so that they show up in the correct issue filters.
-
-## Contribute New API Documentation
-
-### Required Reading
-
-Please familiarize yourself with the following before contributing
-new API documentation to save time, effort, mistakes and repetition.
-
-* [Forking the Repo](./hacker-guide.html#2-set-up) - follow the setup steps through
- the Branch section. If providing new documentation related to an existing GitHub issue, use `issue/NNNN`
- or `ticket/NNNN` as the guide states. If providing API documentation with no associated
- GitHub issue, use `scaladoc/xxxx` instead.
-* [Scaladoc for library authors](https://docs.scala-lang.org/overviews/scaladoc/for-library-authors.html)
- covers the use of scaladoc tags, markdown and other features.
-* [Scaladoc's interface](https://docs.scala-lang.org/overviews/scaladoc/interface.html)
- covers all of the features of Scaladoc's interface, e.g. switching between
- companions, browsing package object documentation, searching, token searches
- and so on.
-* Prior to commit, be sure to read
- [A note about git commit messages](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) and the [Scala Project & Developer Guidelines](https://github.com/scala/scala/blob/2.11.x/CONTRIBUTING.md).
- Some of this latter document will clearly not apply (like the sections on providing tests,
- however see below for some special requirements for documentation). Do still read
- the whole document though, and pay close attention to the title and commit
- message formats, noting *present tense*, *length limits* and that it must merge
- cleanly. Remember that the title of the pull request will become the commit
- message when merged. **Also**, be sure to assign one or more reviewers to the PR, list of
- reviewers is at the bottom of this document, but the quick version is to add
- `Review by @heathermiller` or `Review by @dickwall` **in the pull request comments**.
-
-### Extra Requirements for Scaladoc Documentation Commits
-
-Although some of the requirements for bug fix pull requests are not needed for
-API documentation commits, here are the step by step requirements to ensure your API documentation
-PR is merged in smoothly:
-
-* Any and all code examples provided should *be correct, compile and run* as
- expected (ensure this in the REPL or your IDE).
-* Spelling must be checked for all written language *and* code examples where
- possible. Most editors have some spell checking feature available. Obviously
- Scala code is likely to flag as mis-spelled sometimes, but any written language
- should be checked. If you can also use a grammar checker, even better. We
- *will* ask for spelling and grammar to be corrected before acceptance.
-* You **must** also run `ant docs`, fix any problems and check the formatting and
- layout of your changes. Again, corrections will be required if formatting or
- layout are inadequate. After running `ant docs` the generated documents can be
- found under the `build/scaladoc/` folders (probably in the `library` folder
- but maybe under the others depending on what section of the Scala source you
- are working on).
-* All of these steps are required to save time for both the reviewers and
- contributors. It benefits everyone to ensure that the PR to merge process is
- as smooth and streamlined as possible.
-
-Thanks for helping us improve the Scaladoc API documentation!
diff --git a/contribute/tools.md b/contribute/tools.md
index 0afd3982d..f3b3acc82 100644
--- a/contribute/tools.md
+++ b/contribute/tools.md
@@ -1,93 +1,6 @@
---
title: IDE and Build Tool Contributions
-layout: inner-page-no-masthead
# permalink: /contribute/tools/
-includeTOC: true
-
-# Projects list:
-projects:
- - title: sbt
- description: Interactive build tool.
- icon: https://www.scala-sbt.org/assets/typesafe_sbt_svg.svg
- link: https://github.com/sbt/sbt
- homeLink: https://www.scala-sbt.org/
- issuesLink: https://github.com/sbt/sbt#issues-and-pull-requests
- readmeLink: https://github.com/sbt/sbt/blob/0.13/README.md
- contributingLink: https://github.com/sbt/sbt/blob/0.13/CONTRIBUTING.md
- - title: Scaladoc Tool
- description: (Contribute through scala/scala)
- icon: https://avatars1.githubusercontent.com/u/57059?v=3&s=200
- link: https://github.com/scala/scala
- homeLink: https://www.scala-lang.org/api
- issuesLink: https://github.com/scala/bug/labels/scaladoc
- readmeLink: https://github.com/scala/scala#welcome
- contributingLink: https://scala-lang.org/contribute/guide.html
- - title: Scala IDE
- description: Interactive build tool.
- icon: https://avatars2.githubusercontent.com/u/1026788?v=3&s=200
- link: https://github.com/scala-ide/scala-ide
- homeLink: http://scala-ide.org/
- issuesLink: https://scala-ide-portfolio.assembla.com/spaces/scala-ide/support/tickets
- readmeLink: https://github.com/scala-ide/scala-ide/blob/master/README.md
- contributingLink: https://github.com/scala-ide/scala-ide/blob/master/CONTRIBUTING.md
- - title: DBuild
- description: Multi-project build tool.
- icon: https://avatars3.githubusercontent.com/u/784923?v=3&s=200
- link: https://github.com/lightbend/dbuild
- homeLink: https://lightbend.github.io/dbuild
- issuesLink: https://github.com/lightbend/dbuild/issues
- readmeLink: https://github.com/lightbend/dbuild/blob/master/README.md
- contributingLink: https://github.com/lightbend/dbuild/blob/master/README.md#get-involved
- - title: Partest
- description: Scala Compiler/Library Testing
- icon: https://avatars1.githubusercontent.com/u/57059?v=3&s=200
- link: https://github.com/scala/scala-partest
- homeLink: https://docs.scala-lang.org/tutorials/partest-guide.html
- issuesLink: https://github.com/scala/scala-partest/issues
- readmeLink: https://github.com/scala/scala-partest/blob/1.1.x/README.md
- contributingLink:
- - title: Scoverage
- description: Scala code coverage tool
- icon: https://avatars1.githubusercontent.com/u/5998302?v=3&s=200
- link: https://github.com/scoverage/scalac-scoverage-plugin
- homeLink: http://scoverage.org/
- issuesLink: https://github.com/scoverage/scalac-scoverage-plugin/issues
- readmeLink: https://github.com/scoverage/scalac-scoverage-plugin/blob/master/README.md
- contributingLink: https://groups.google.com/forum/#!forum/scala-code-coverage-tool
-
-projectsInNeed:
- - title: Scalariform
- description: Scala source code formatter
- icon: /resources/img/white-line.png
- link: https://github.com/mdr/scalariform
- homeLink: https://github.com/mdr/scalariform/wiki/Command-line-tool
- issuesLink: https://github.com/mdr/scalariform/issues
- readmeLink: https://github.com/mdr/scalariform/blob/master/README.rst
+redirect_to:
+ - https://docs.scala-lang.org/contribute/tools.html
---
-## Contributing to IDE and Build Tools
-
-The links below are to a number of Scala build and IDE related projects that are important in the larger Scala space, and which welcome contributions.
-
-Since these tools are in separate projects, they may (and likely will) have their own rules and guidelines for contributing. The [Hacker Guide](/contribute/hacker-guide.html) and [Bug-fixing](/contribute/guide.html) pages will likely have much in the way of related information on how to contribute to these projects, and are recommended reading. You should also check the README.md and (if it's present) CONTRIBUTING.md files from the actual projects before contributing to them.
-
-Typically, issues for these projects will be reported and kept in the GitHub project issue tracker for that project rather than in the Scala bug tracker.
-
-Many of these projects have a chat room on Discord or Gitter (usually linked from their README or CONTRIBUTING files) which is a great place to discuss proposed work before starting.
-
-There are some projects in this section that are in
-[particular need](#projects-in-particular-need) so please check those out
-if you would like to help revive them.
-
-### Broken Links?
-
-Stuff changes. Found a broken link or something that needs updating on this page? Please, consider [submitting a documentation pull request](/contribute/documentation.html#updating-scala-langorg) to fix it.
-
-### Projects
-
-{% include contributions-projects-list.html collection=page.projects %}
-
-### Projects in Particular Need
-
-The following projects are important to the Scala community but are particularly in need of contributors to continue their development.
-
-{% include contributions-projects-list.html collection=page.projectsInNeed %}