├── viz ├── test │ ├── tmp │ │ └── .gitkeep │ ├── fixtures │ │ ├── step_3.tw2 │ │ ├── step_1.tw2 │ │ ├── step_2.tw2 │ │ └── graph.dot │ └── build_graph_test.rb ├── build_graph.rb └── .byebug_history ├── .ruby-version ├── yarn.lock ├── .gitignore ├── contents ├── assets │ ├── mac │ │ ├── 32_bit.png │ │ ├── 64_bit.png │ │ ├── pouring.png │ │ ├── terminal.png │ │ ├── create_bin.png │ │ ├── exercism_usage.png │ │ ├── folder_created.png │ │ ├── 32_bit_download.png │ │ ├── 64_bit_download.png │ │ ├── spotlight_access.png │ │ ├── typing_terminal.gif │ │ ├── exercism_extracted.png │ │ ├── folder_not_created.png │ │ ├── homebrew_installed.png │ │ ├── installing_exercism.gif │ │ ├── confirming_installation.png │ │ ├── exercism_not_installed.png │ │ ├── homebrew_not_installed.png │ │ └── clicking_the_magnifying_glass.png │ ├── windows │ │ ├── win10.png │ │ ├── win10-cmd.png │ │ ├── win10-zip.png │ │ ├── win10-result.png │ │ ├── win10-installed.png │ │ ├── win10-cmd-folder.png │ │ └── win10-cmd-result.png │ └── downloads_list.png ├── common │ ├── install_complete.tw2 │ ├── cli_install_complete.tw2 │ ├── talk_to_a_volunteer.tw2 │ ├── configuring_the_cli.tw2 │ └── welcome.tw2 ├── mac │ ├── 32_bit_version_not_supported.tw2 │ ├── install_exercism_on_a_mac.tw2 │ ├── add_to_path_troubleshooting.tw2 │ ├── opening_the_terminal_troubleshooting.tw2 │ ├── introduction.tw2 │ ├── create_bin_folder_troubleshooting.tw2 │ ├── asking_about_homebrew.tw2 │ ├── download_64_bit_version_troubleshooting.tw2 │ ├── manual_install.tw2 │ ├── install_exercism_via_homebrew_troubleshooting.tw2 │ ├── determine_processor_architecture_troubleshooting.tw2 │ ├── expert │ │ ├── install_exercism_via_homebrew_troubleshooting.tw2 │ │ ├── determine_processor_architecture.tw2 │ │ └── install_exercism_on_a_mac.tw2 │ ├── add_to_path.tw2 │ ├── determine_processor_architecture.tw2 │ ├── download_64_bit_version.tw2 │ ├── opening_the_terminal.tw2 │ ├── create_bin_folder.tw2 │ ├── verifying_homebrew_installation.tw2 │ ├── install_exercism_via_homebrew.tw2 │ └── install_homebrew.tw2 ├── linux │ ├── introduction.tw2 │ ├── directory.tw2 │ ├── tarball.tw2 │ ├── architecture.tw2 │ └── path.tw2 └── windows │ ├── introduction.tw2 │ ├── download_cli_installer.tw2 │ ├── open_command_prompt.tw2 │ ├── download_64_bit_on_win10.tw2 │ └── add_to_path.tw2 ├── main.tw2 ├── package.json ├── .github ├── dependabot.yml ├── workflows │ ├── sync-labels.yml │ └── pause-community-contributions.yml └── labels.yml ├── Gemfile ├── storyFormats └── exercism_prod │ └── format.js ├── README.md ├── licences ├── mit.md └── cc_sa_4.md ├── .appends └── .github │ └── labels.yml ├── Rakefile ├── table_of_contents.tw2 ├── Gemfile.lock ├── CODE_OF_CONDUCT.md └── CONTRIBUTING.md /viz/test/tmp/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | ruby-2.6.6 2 | -------------------------------------------------------------------------------- /viz/test/fixtures/step_3.tw2: -------------------------------------------------------------------------------- 1 | :: Step 3 2 | -------------------------------------------------------------------------------- /viz/test/fixtures/step_1.tw2: -------------------------------------------------------------------------------- 1 | :: Step 1 2 | 3 | [[Next->Step 2]] 4 | -------------------------------------------------------------------------------- /viz/test/fixtures/step_2.tw2: -------------------------------------------------------------------------------- 1 | :: Step 2 2 | 3 | [[Prev->Step 1]] 4 | [[Next->Step 3]] 5 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | compiled.html 3 | compiled_prod.html 4 | graph.dot 5 | graph.png 6 | .bundle/ 7 | vendor/ 8 | -------------------------------------------------------------------------------- /contents/assets/mac/32_bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/32_bit.png -------------------------------------------------------------------------------- /contents/assets/mac/64_bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/64_bit.png -------------------------------------------------------------------------------- /contents/assets/mac/pouring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/pouring.png -------------------------------------------------------------------------------- /contents/assets/mac/terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/terminal.png -------------------------------------------------------------------------------- /contents/assets/windows/win10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/windows/win10.png -------------------------------------------------------------------------------- /contents/assets/downloads_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/downloads_list.png -------------------------------------------------------------------------------- /contents/assets/mac/create_bin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/create_bin.png -------------------------------------------------------------------------------- /contents/assets/mac/exercism_usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/exercism_usage.png -------------------------------------------------------------------------------- /contents/assets/mac/folder_created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/folder_created.png -------------------------------------------------------------------------------- /contents/assets/windows/win10-cmd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/windows/win10-cmd.png -------------------------------------------------------------------------------- /contents/assets/windows/win10-zip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/windows/win10-zip.png -------------------------------------------------------------------------------- /viz/test/fixtures/graph.dot: -------------------------------------------------------------------------------- 1 | digraph 2 | { 3 | "Step 1" -> "Step 2"; 4 | "Step 2" -> "Step 1"; 5 | "Step 2" -> "Step 3"; 6 | } 7 | -------------------------------------------------------------------------------- /contents/assets/mac/32_bit_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/32_bit_download.png -------------------------------------------------------------------------------- /contents/assets/mac/64_bit_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/64_bit_download.png -------------------------------------------------------------------------------- /contents/assets/mac/spotlight_access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/spotlight_access.png -------------------------------------------------------------------------------- /contents/assets/mac/typing_terminal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/typing_terminal.gif -------------------------------------------------------------------------------- /contents/assets/windows/win10-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/windows/win10-result.png -------------------------------------------------------------------------------- /contents/assets/mac/exercism_extracted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/exercism_extracted.png -------------------------------------------------------------------------------- /contents/assets/mac/folder_not_created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/folder_not_created.png -------------------------------------------------------------------------------- /contents/assets/mac/homebrew_installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/homebrew_installed.png -------------------------------------------------------------------------------- /contents/assets/mac/installing_exercism.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/installing_exercism.gif -------------------------------------------------------------------------------- /contents/assets/windows/win10-installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/windows/win10-installed.png -------------------------------------------------------------------------------- /contents/assets/windows/win10-cmd-folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/windows/win10-cmd-folder.png -------------------------------------------------------------------------------- /contents/assets/windows/win10-cmd-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/windows/win10-cmd-result.png -------------------------------------------------------------------------------- /contents/assets/mac/confirming_installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/confirming_installation.png -------------------------------------------------------------------------------- /contents/assets/mac/exercism_not_installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/exercism_not_installed.png -------------------------------------------------------------------------------- /contents/assets/mac/homebrew_not_installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/homebrew_not_installed.png -------------------------------------------------------------------------------- /contents/assets/mac/clicking_the_magnifying_glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/HEAD/contents/assets/mac/clicking_the_magnifying_glass.png -------------------------------------------------------------------------------- /main.tw2: -------------------------------------------------------------------------------- 1 | ::Configuration [twee2] 2 | Twee2::build_config.story_name = "Exercism CLI installation walkthrough" 3 | Twee2::build_config.story_ifid = "IFID" 4 | 5 | ::StoryIncludes 6 | table_of_contents.tw2 7 | 8 | -------------------------------------------------------------------------------- /contents/common/install_complete.tw2: -------------------------------------------------------------------------------- 1 | ::Installation complete 2 | # Installation complete 3 | Congratulations, you now have everything set up! Start learning by choosing an exercise from [your dashboard](https://exercism.org/dashboard)! 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cli-walkthrough", 3 | "version": "1.0.0", 4 | "description": "An interactive walkthrough for installing the Exercism CLI", 5 | "devDependencies": {}, 6 | "main": "index.js", 7 | "license": "MIT" 8 | } 9 | -------------------------------------------------------------------------------- /contents/mac/32_bit_version_not_supported.tw2: -------------------------------------------------------------------------------- 1 | ::Sorry, we don't support 32 bit Mac's 2 | # Can't install Exercism on your 32 bit Mac 3 | 4 | Unfortunately, we don't support installing Exercism on 32 bit Mac's. Please use the online editor instead. 5 | -------------------------------------------------------------------------------- /contents/common/cli_install_complete.tw2: -------------------------------------------------------------------------------- 1 | ::CLI Installation complete 2 | # CLI Installation complete 3 | Congratulations, you've now installed Exercism on your computer! Our next step is to configure the CLI. 4 | 5 | [[Configure the CLI->Configuring the CLI]] 6 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | updates: 4 | # Keep dependencies for GitHub Actions up-to-date 5 | - package-ecosystem: 'github-actions' 6 | directory: '/' 7 | schedule: 8 | interval: 'monthly' 9 | labels: 10 | - 'x:size/small' 11 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | source "https://rubygems.org" 3 | 4 | git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } 5 | 6 | gem "twee2" 7 | gem "minitest", require: false 8 | gem "graph", require: false 9 | gem "rake" 10 | gem "therubyracer" 11 | -------------------------------------------------------------------------------- /contents/linux/introduction.tw2: -------------------------------------------------------------------------------- 1 | ::Linux Introduction 2 | # Installing Exercism on Linux 3 | 4 | You can install the CLI manually. More information is available in the next section. 5 | 6 | --- 7 | 8 | ## I would like to install the CLI 9 | 10 | - [[Using the source code->Linux tarball]] 11 | -------------------------------------------------------------------------------- /storyFormats/exercism_prod/format.js: -------------------------------------------------------------------------------- 1 | window.storyFormat({"author":"Karlo Soriano","description":"Story format to build exercism walkthroughs","image":"icon.svg","name":"Exercism_Prod","proofing":false,"source":"\n
\n{{STORY_DATA}}\n","url":"","version":"1.0.0"}); -------------------------------------------------------------------------------- /contents/mac/install_exercism_on_a_mac.tw2: -------------------------------------------------------------------------------- 1 | ::Installing Exercism on a Mac 2 | # Installing Exercism on a Mac 3 | 4 | To install Exercism on a Mac, we first need to open the terminal. 5 | 6 | --- 7 | 8 | ## Do you know how to open the terminal? 9 | 10 | - [[Yes->Asking about Homebrew]] 11 | - [[No->Opening the Terminal on a Mac]] 12 | -------------------------------------------------------------------------------- /contents/common/talk_to_a_volunteer.tw2: -------------------------------------------------------------------------------- 1 | ::Talk to a Volunteer 2 | # Talk to a Volunteer 3 | 4 | Are you having problems installing Exercism? Don't worry! 5 | We have volunteers willing to help you [on our forum](https://forum.exercism.org/). 6 | Getting new people to learn with Exercism is our top priority, so please don't be afraid to reach out. 7 | -------------------------------------------------------------------------------- /contents/mac/add_to_path_troubleshooting.tw2: -------------------------------------------------------------------------------- 1 | ::Add to $PATH on a Mac - Troubleshooting 2 | # Add to $PATH on a Mac - Troubleshooting 3 | Having problems creating adding BINARY_NAME to the $PATH variable? A solution to your problem may be outlined below. 4 | 5 | --- 6 | 7 | ## Were you able to install Exercism? 8 | 9 | - [[Yes->CLI Installation complete]] 10 | - [[No->Talk to a Volunteer]] 11 | -------------------------------------------------------------------------------- /contents/mac/opening_the_terminal_troubleshooting.tw2: -------------------------------------------------------------------------------- 1 | ::Open the Terminal on a Mac - Troubleshooting 2 | # Open the Terminal on a Mac - Troubleshooting 3 | Having problems opening the terminal on your Mac? You might find a solution to your problem below. 4 | 5 | --- 6 | 7 | ## Were you able to open the Terminal? 8 | 9 | - [[Yes->Verifying Homebrew Installation]] 10 | - [[No->Talk to a Volunteer]] 11 | -------------------------------------------------------------------------------- /contents/mac/introduction.tw2: -------------------------------------------------------------------------------- 1 | ::Mac Introduction 2 | # Installing Exercism on a Mac 3 | 4 | You can use the Homebrew package manager to install the command-line client, or install it manually. 5 | Both methods involve using the command-line. 6 | 7 | Are you comfortable installing and executing programs in the terminal? 8 | 9 | - [[Yes->Installing Exercism on a Mac - Expert]] 10 | - [[No->Installing Exercism on a Mac]] 11 | -------------------------------------------------------------------------------- /contents/mac/create_bin_folder_troubleshooting.tw2: -------------------------------------------------------------------------------- 1 | ::Create bin folder on a Mac - Troubleshooting 2 | # Create bin folder on a Mac - Troubleshooting 3 | Having problems creating and moving BINARY_NAME to your `bin` folder? A solution to your problem may be outlined below. 4 | 5 | --- 6 | 7 | ## Were you able to move the BINARY_NAME program to your `bin` folder? 8 | 9 | - [[Yes->Add to $PATH on a Mac]] 10 | - [[No->Talk to a Volunteer]] 11 | -------------------------------------------------------------------------------- /.github/workflows/sync-labels.yml: -------------------------------------------------------------------------------- 1 | name: Tools 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths: 8 | - .github/labels.yml 9 | - .github/workflows/sync-labels.yml 10 | workflow_dispatch: 11 | schedule: 12 | - cron: 0 0 1 * * # First day of each month 13 | 14 | permissions: 15 | issues: write 16 | 17 | jobs: 18 | sync-labels: 19 | uses: exercism/github-actions/.github/workflows/labels.yml@main 20 | -------------------------------------------------------------------------------- /contents/mac/asking_about_homebrew.tw2: -------------------------------------------------------------------------------- 1 | ::Asking about Homebrew 2 | # Installing Homebrew on a Mac 3 | 4 | Homebrew is a package manager for the Mac, and it makes the whole Exercism installation process easier. 5 | 6 | Do you already have Homebrew installed? 7 | 8 | - [[Yes->Installing Exercism via Homebrew]] 9 | - [[I don't know->Verifying Homebrew Installation]] 10 | - [[No->Installing Homebrew]] 11 | - [[I want to install Exercism manually->Manual Installation on a Mac]] 12 | -------------------------------------------------------------------------------- /contents/mac/download_64_bit_version_troubleshooting.tw2: -------------------------------------------------------------------------------- 1 | ::Download and unzip 64 bit version on a Mac - Troubleshooting 2 | # Download Exercism on your Mac - Troubleshooting 3 | Having problems determining your downloading the 64 bit version of BINARY_NAME? A solution to your problem may be outlined below. 4 | 5 | --- 6 | 7 | ## Were you able to get the Exercism program in your `Downloads` folder? 8 | 9 | - [[Yes->Create bin folder on a Mac]] 10 | - [[No->Talk to a Volunteer]] 11 | -------------------------------------------------------------------------------- /contents/mac/manual_install.tw2: -------------------------------------------------------------------------------- 1 | ::Manual Installation on a Mac 2 | # Installing Exercism on a Mac manually 3 | 4 | To install Exercism on a Mac manually, we first need to determine your Mac's processor architecture. 5 | 6 | --- 7 | 8 | ## Do you know what your Mac's processor architecture is? 9 | - [[32 bit->Sorry, we don't support 32 bit Mac's]] 10 | - [[64 bit->Download and unzip 64 bit version on a Mac]] 11 | - [[I don't know->Determine processor architecture on a Mac]] 12 | -------------------------------------------------------------------------------- /contents/mac/install_exercism_via_homebrew_troubleshooting.tw2: -------------------------------------------------------------------------------- 1 | ::Installing Exercism via Homebrew - Troubleshooting 2 | # Installing Exercism via Homebrew - Troubleshooting 3 | Having problems getting Exercism on your computer? A solution to your problem may be present below. 4 | 5 | --- 6 | 7 | ## Were you able to install Exercism? 8 | 9 | - [[Yes->CLI Installation complete]] 10 | - [[No->Talk to a Volunteer]] 11 | - [[Try another installation method->Manual Installation on a Mac]] 12 | -------------------------------------------------------------------------------- /contents/windows/introduction.tw2: -------------------------------------------------------------------------------- 1 | ::Windows Introduction 2 | # Installing Exercism on Windows 3 | 4 | The installer application will determine what version of the Exercism CLI you need, download it, and place it in the right location. 5 | If you are on Windows 10, you may opt to install the CLI manually by following the steps provided. 6 | 7 | - [[Install the CLI using the installer application.->Download CLI Installer for Windows]] 8 | - [[Proceed with manual installation.->Download and unzip 64-bit version on Windows 10]] 9 | -------------------------------------------------------------------------------- /contents/mac/determine_processor_architecture_troubleshooting.tw2: -------------------------------------------------------------------------------- 1 | ::Determine processor architecture on a Mac - Troubleshooting 2 | # Determine processor architecture on a Mac - Troubleshooting 3 | 4 | Having problems determining your processor architecture? A solution to your problem may be outlined below. 5 | 6 | --- 7 | 8 | ## What is your Mac's processor architecture? 9 | 10 | - [[32 bit->Download and unzip 32 bit version on a Mac]] 11 | - [[64 bit->Download and unzip 64 bit version on a Mac]] 12 | - [[I don't know->Talk to a Volunteer]] 13 | -------------------------------------------------------------------------------- /contents/mac/expert/install_exercism_via_homebrew_troubleshooting.tw2: -------------------------------------------------------------------------------- 1 | ::Installing Exercism via Homebrew - Expert - Troubleshooting 2 | # Installing Exercism via Homebrew - Troubleshooting 3 | 4 | Having problems getting Exercism on your computer using Homebrew? 5 | 6 | Here there is a list of Homebrew - Common Issues that can help: Common Issues 7 | 8 | --- 9 | 10 | ## Were you able to install Exercism? 11 | 12 | - [[Yes->CLI Installation complete]] 13 | - [[No->Talk to a Volunteer]] 14 | -------------------------------------------------------------------------------- /viz/test/build_graph_test.rb: -------------------------------------------------------------------------------- 1 | require "minitest/autorun" 2 | require "byebug" 3 | require_relative "../build_graph" 4 | 5 | class BuildGraphTest < Minitest::Test 6 | def test_builds_a_graph 7 | files_path = File.expand_path("../fixtures/**/*.tw2", __FILE__) 8 | output_path = File.expand_path("../tmp/graph", __FILE__) 9 | expected = File.read(File.expand_path("../fixtures/graph.dot", __FILE__)) 10 | 11 | BuildGraph.(files_path, output_path) 12 | 13 | assert_equal expected, File.read("#{output_path}.dot") 14 | 15 | FileUtils.rm("#{output_path}.dot") 16 | FileUtils.rm("#{output_path}.png") 17 | end 18 | end 19 | -------------------------------------------------------------------------------- /.github/workflows/pause-community-contributions.yml: -------------------------------------------------------------------------------- 1 | name: Pause Community Contributions 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | pull_request_target: 8 | types: 9 | - opened 10 | 11 | permissions: 12 | issues: write 13 | pull-requests: write 14 | 15 | jobs: 16 | pause: 17 | if: github.repository_owner == 'exercism' # Stops this job from running on forks 18 | uses: exercism/github-actions/.github/workflows/community-contributions.yml@main 19 | with: 20 | forum_category: support 21 | secrets: 22 | github_membership_token: ${{ secrets.COMMUNITY_CONTRIBUTIONS_WORKFLOW_TOKEN }} 23 | -------------------------------------------------------------------------------- /contents/windows/download_cli_installer.tw2: -------------------------------------------------------------------------------- 1 | ::Download CLI Installer for Windows 2 | # Option to install the Exercism CLI using the installer for Windows 3 | 4 | Use the link below to download and execute the Windows Installer for the Exercism CLI. A new browser window will be opened when you click this link. Please return to this browser window and let us know if you were successful. 5 | 6 | https://github.com/exercism/windows-installer/releases/latest 7 | 8 | ## Were you able to successfully install the Exercism CLI using the Windows Installer? 9 | 10 | - [[Yes->CLI Installation complete]] 11 | - [[No->Talk to a Volunteer]] 12 | -------------------------------------------------------------------------------- /contents/mac/expert/determine_processor_architecture.tw2: -------------------------------------------------------------------------------- 1 | ::Determine processor architecture on a Mac - Expert 2 | # Determine processor architecture on a Mac 3 | 4 | To determine your processor architecture, run: 5 | 6 | ``` 7 | uname -m 8 | ``` 9 | 10 | If you see `x86_64` as output, this means that your processor architecture is 64 bit. 11 | 12 | ## Unknown architecture 13 | 14 | Nowadays, the majority of the new (newer than 3 years) PCs are using a 64 bit architecture. 15 | Also, all computers with more than 4 GB of memory has to have a 64 bit processor architecture. 16 | 17 | --- 18 | ## Do you know your processor architecture? 19 | 20 | - [[Yes->Manual Installation on a Mac]] 21 | - [[I don't know->Talk to a Volunteer]] 22 | -------------------------------------------------------------------------------- /contents/linux/directory.tw2: -------------------------------------------------------------------------------- 1 | ::Linux directory 2 | # Moving the Executable to `~/bin` 3 | 4 | Once you download and extract the archive, make it available in your `$PATH`. 5 | 6 | First, let’s make sure the directory exists: 7 | 8 | ``` 9 | mkdir -p ~/bin 10 | ``` 11 | 12 | Next, let’s move the `BINARY_NAME` executable there: 13 | 14 | ``` 15 | mv BINARY_NAME ~/bin 16 | ``` 17 | 18 | Make sure everything worked: 19 | 20 | ``` 21 | ~/bin/BINARY_NAME 22 | ``` 23 | 24 | The above should output something like the below: 25 | 26 | ``` 27 | A command-line interface for the v3 redesign of Exercism. 28 | 29 | Download exercises and submit your solutions. 30 | 31 | Usage: 32 | [command] 33 | ``` 34 | 35 | --- 36 | 37 | ## Did running `~/bin/BINARY_NAME` output something like the above? 38 | 39 | - [[Yes->Linux path]] 40 | - [[No->Talk to a Volunteer]] 41 | -------------------------------------------------------------------------------- /contents/common/configuring_the_cli.tw2: -------------------------------------------------------------------------------- 1 | ::Configuring the CLI 2 | # Configuring the CLI 3 | 4 | In order to configure the CLI, paste in the following text into your terminal: 5 | 6 | ``` 7 | [CONFIGURE_COMMAND] 8 | ``` 9 | 10 | You can find your token on your [settings page](https://exercism.org/settings/api_cli). 11 | 12 | After typing in the command, hit the `Enter` key. 13 | 14 | After hitting the `Enter` key, you should see a notification from the CLI that a configuration file has been written. 15 | 16 | ### Important: The token above should be treated like a password and not be shared with anyone! 17 | 18 | When asking for help that involves a command, remove your token before sharing the command. 19 | 20 | --- 21 | 22 | ## Have you configured the Exercism CLI on your computer? 23 | 24 | - [[Yes->Installation complete]] 25 | - [[No->Talk to a Volunteer]] 26 | -------------------------------------------------------------------------------- /contents/linux/tarball.tw2: -------------------------------------------------------------------------------- 1 | ::Linux tarball 2 | # Getting the Executable 3 | 4 | ## Download the archive 5 | 6 | If you know your processor architecture (x86 (32-bit) vs x86_64 (64-bit) vs ARM), download the appropriate archive from the 7 | releases page. 8 | 9 | 10 | ## Extract from the archive 11 | 12 | Once you have the archive downloaded you 13 | need to extract the executable from it. 14 | 15 | * If you’re using a graphic interface (e.g., GNOME or 16 | Unity on Ubuntu): go to your downloads directory, right 17 | click on the downloaded file and select _Extract Here_. 18 | 19 | * If you’re using the command line (use the 20 | right archive file name for your architecture): 21 | ``` 22 | tar -xf BINARY_NAME-linux-64bit.tgz 23 | ``` 24 | 25 | --- 26 | 27 | ## Next steps: 28 | 29 | - [[Continue->Linux directory]] 30 | - [[I don’t know my processor architecture->Linux architecture]] 31 | -------------------------------------------------------------------------------- /contents/common/welcome.tw2: -------------------------------------------------------------------------------- 1 | ::Welcome 2 | # Welcome to the Exercism installation guide! 3 | 4 | This guide was created in order to help you get started learning with Exercism. Answer a few questions, follow a few instructions, and you should be ready in no time! 5 | 6 | To make better use of the guide, here's a brief outline of how this guide is structured: 7 | 8 | - This guide contains several tutorials. These outline the steps needed to get Exercism installed. Inside each tutorial are step-by-step instructions to get Exercism running, as well as steps to verify whether you've done the right thing. 9 | 10 | - At the end of each tutorial, we ask a question in order to track your progress. This helps us to point you to the next installation step. 11 | 12 | That being said, let's start with our first question! 13 | 14 | --- 15 | ## Which OS do you use? 16 | 17 | - [[Linux->Linux Introduction]] 18 | - [[Mac->Mac Introduction]] 19 | - [[Windows->Windows Introduction]] 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Walkthrough 2 | 3 | A repository for the text found in the Exercism CLI installation walkthrough. 4 | 5 | To start contributing, please view the [Contributing Guide](https://github.com/exercism/interactive-cli-walkthrough/blob/main/CONTRIBUTING.md). 6 | 7 | ## Deploying changes to production 8 | 9 | To get new changes to production we need to: 10 | 11 | 1. Compile 12 | 2. Copy the compiled file to the [exercism/website-copy](https://github.com/exercism/website-copy) repository 13 | 3. Commit to `main` and push to GitHub 14 | 15 | We don't worry about submitting a pull request for this, since the changes have 16 | been reviewed in a pull request in the exercism/interactive-cli-walkthrough repository 17 | before compiling. 18 | 19 | ```shell 20 | rake compile:prod 21 | cp compiled_prod.html ../website-copy/walkthrough/index.html 22 | ``` 23 | 24 | This can only be done by core website-copy contributors, who have push access on the 25 | exercism/website-copy repository. 26 | -------------------------------------------------------------------------------- /contents/mac/expert/install_exercism_on_a_mac.tw2: -------------------------------------------------------------------------------- 1 | ::Installing Exercism on a Mac - Expert 2 | # Installing Exercism on a Mac 3 | 4 | To install BINARY_NAME via Homebrew run: 5 | 6 | ``` 7 | brew update 8 | brew install BINARY_NAME 9 | ``` 10 | 11 | To install manually, download the appropriate version of BINARY_NAME based on your processor architecture at the releases page, then extract the archive and put the binary in your path. 12 | 13 | Check the installed version with: 14 | 15 | ``` 16 | BINARY_NAME version 17 | ``` 18 | 19 | It should be at least version 3.x 20 | 21 | ---- 22 | ## Have you installed Exercism on your computer? 23 | 24 | - [[Yes->CLI Installation complete]] 25 | - [[I don't know my processor architecture->Determine processor architecture on a Mac - Expert]] 26 | - [[How do I put the binary in my path?->Create bin folder on a Mac]] 27 | - [[I'm lost, can we start over?->Installing Exercism on a Mac]] 28 | -------------------------------------------------------------------------------- /licences/mit.md: -------------------------------------------------------------------------------- 1 | Copyright Exercism 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /contents/windows/open_command_prompt.tw2: -------------------------------------------------------------------------------- 1 | ::Opening the Command Prompt on Windows 10 2 | # Opening the Command Prompt on Windows 10 3 | 4 | For Exercism to work, it needs to be in the correct folder. The easiest way to move it is by using the Command Prompt. 5 | 6 | Let's get started by opening the Command Prompt. 7 | 8 | --- 9 | 10 | ## Step 1: Opening Start 11 | 12 | Open the Start menu, by clicking the Windows icon in the bottom left corner of your screen. 13 | 14 | ## Step 2: Searching for the Command Prompt 15 | 16 | With the Start menu open, start typing `cmd.exe` to search for the Command Prompt 17 | 18 | When searching for `cmd.exe` in the Start menu, your results will look something like this: 19 | 20 |  21 | 22 | 23 | ## Step 3: Open the Command Prompt 24 | 25 | Double click the top result, as shown above, to open the Command Prompt. 26 | 27 | After double clicking, you'll see a window like the one shown here: 28 | 29 |  30 | 31 | --- 32 | 33 | ## Were you able to open the Command Prompt? 34 | 35 | - [[Yes->Moving BINARY_NAME to PATH on Windows 10]] 36 | - [[No->Download CLI Installer for Windows]] 37 | -------------------------------------------------------------------------------- /contents/linux/architecture.tw2: -------------------------------------------------------------------------------- 1 | ::Linux architecture 2 | # Determine processor architecture on Linux 3 | 4 | To determine your processor architecture, paste 5 | in the following command into your terminal: 6 | 7 | ``` 8 | uname -m 9 | ``` 10 | 11 | Hit `Enter` after you have pasted in the command and examine the output. 12 | 13 | ## `x86_64` 14 | 15 | If the output is `x86_64` then you are on a 64-bit architecture. 16 | 17 | The file you are looking for is `BINARY_NAME-linux-64bit.tgz`. 18 | 19 | ## `i686` 20 | 21 | If the output is `i686` then you are on a 32-bit architecture. 22 | 23 | The file you are looking for is `BINARY_NAME-linux-32bit.tgz`. 24 | 25 | ## `armv5l`, `armv6l`, `armv7l` or `armv8l` 26 | 27 | If the output is `armv5l`, `armv6l`, `armv7l` 28 | or `armv8l` then you are on an ARM architecture. 29 | 30 | The file you are looking for is `BINARY_NAME-linux-arm-v5.tgz`, 31 | `BINARY_NAME-linux-arm-v6.tgz`, `BINARY_NAME-linux-arm-v7.tgz` 32 | or `BINARY_NAME-linux-arm-v8.tgz` (respectively). 33 | 34 | ## Other 35 | 36 | If your output does not match any of the above, try talk to a volunteer. 37 | 38 | --- 39 | 40 | ## Do you know your system’s processor architecture? 41 | 42 | - [[Yes->Linux tarball]] 43 | - [[No, I would like talk to a volunteer->Talk to a Volunteer]] 44 | -------------------------------------------------------------------------------- /.appends/.github/labels.yml: -------------------------------------------------------------------------------- 1 | # ----------------------------------------------------------------------------------------- # 2 | # These are the repository-specific labels that augment the Exercise-wide labels defined in # 3 | # https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml. # 4 | # ----------------------------------------------------------------------------------------- # 5 | 6 | - name: "dependencies" 7 | description: "Pull requests that update a dependency file" 8 | color: "0366d6" 9 | 10 | - name: "duplicate" 11 | description: "" 12 | color: "cccccc" 13 | 14 | - name: "invalid" 15 | description: "" 16 | color: "e6e6e6" 17 | 18 | - name: "priority/blocking-v2-launch" 19 | description: "" 20 | color: "BFE3DF" 21 | 22 | - name: "priority/maybe-later" 23 | description: "" 24 | color: "BFE3DF" 25 | 26 | - name: "priority/nice-to-have-for-v2" 27 | description: "" 28 | color: "BFE3DF" 29 | 30 | - name: "question" 31 | description: "" 32 | color: "cc317c" 33 | 34 | - name: "status/pr-welcome" 35 | description: "" 36 | color: "128A0C" 37 | 38 | - name: "type/bug" 39 | description: "" 40 | color: "ee0701" 41 | 42 | - name: "type/improvement" 43 | description: "" 44 | color: "bfd4f2" 45 | 46 | - name: "wontfix" 47 | description: "" 48 | color: "ffffff" 49 | -------------------------------------------------------------------------------- /contents/mac/add_to_path.tw2: -------------------------------------------------------------------------------- 1 | ::Add to $PATH on a Mac 2 | # Add to $PATH on a Mac 3 | 4 | In order to for us to run the BINARY_NAME program from anywhere in our terminal, we need to add its location to the $PATH variable. 5 | 6 | --- 7 | 8 | ## Step 1 9 | 10 | In your terminal, paste in the following to create the `bin` folder: 11 | 12 | ``` 13 | echo 'export PATH=~/bin:$PATH' >> ~/.bash_profile 14 | ``` 15 | 16 | To verify if the `$PATH` variable was updated, paste the following command in your terminal: 17 | 18 | ``` 19 | source ~/.bash_profile 20 | ``` 21 | 22 | Next, paste the following command in your terminal: 23 | 24 | ``` 25 | BINARY_NAME 26 | ``` 27 | 28 | ### Variable updated successfully 29 | 30 | If the terminal replies with instructions on how to use the BINARY_NAME program, you've installed BINARY_NAME successfully! Give yourself a pat on the back. 31 | 32 | ### Variable not updated 33 | 34 | If the terminal replies saying that the BINARY_NAME command is not found, it means that the variable wasn't updated. 35 | 36 | ## Wrapping up 37 | 38 | If you've reached the end of this tutorial without any problems, you have installed BINARY_NAME successfully! 39 | 40 | --- 41 | 42 | ## Were you able to install Exercism? 43 | 44 | - [[Yes->CLI Installation complete]] 45 | - [[No->Add to $PATH on a Mac - Troubleshooting]] 46 | -------------------------------------------------------------------------------- /viz/build_graph.rb: -------------------------------------------------------------------------------- 1 | require "graph" 2 | 3 | class BuildGraph 4 | TITLE_REGEX = /^:: *([^\[]*?) *[\[(.*?)\]]? *[<(.*?)>]? *$/ 5 | LINK_REGEX = /\[\[(.*)->(.*)\]\]/ 6 | 7 | def self.call(*args) 8 | new(*args).call 9 | end 10 | 11 | def initialize(glob="**/*.tw2", output_path="graph") 12 | @glob = glob 13 | @output_path = output_path 14 | @graph = {} 15 | end 16 | 17 | def call 18 | parse_files! 19 | build_graph! 20 | end 21 | 22 | private 23 | attr_reader :output_path, :glob, :graph 24 | 25 | def parse_files! 26 | Dir[glob]. 27 | reject{ |file| file['viz/'] }. 28 | each do |file| 29 | text = read_file!(file) 30 | title = parse_title!(text) 31 | graph[title] = parse_links!(text) 32 | end 33 | end 34 | 35 | def read_file!(file) 36 | File.read(file) 37 | end 38 | 39 | def parse_title!(text) 40 | text.match(TITLE_REGEX).captures[0].strip 41 | end 42 | 43 | def parse_links!(text) 44 | text.scan(LINK_REGEX).map do |link| 45 | _, dest = link 46 | 47 | dest 48 | end 49 | end 50 | 51 | def build_graph! 52 | graph = @graph 53 | 54 | digraph do 55 | graph.each do |src, dest| 56 | dest.each { |node| send(:edge, src, node) } 57 | end 58 | end.save(output_path, "png") 59 | end 60 | end 61 | -------------------------------------------------------------------------------- /contents/linux/path.tw2: -------------------------------------------------------------------------------- 1 | ::Linux path 2 | # Adding `~/bin` to `$PATH` in Bash 3 | 4 | Note: If you’re not running Bash try to adjust the 5 | below to your shell or [[Talk to a Volunteer->Talk to a Volunteer]]. 6 | 7 | To have the `BINARY_NAME` executable available everywhere on the 8 | command line you need to make sure `~/bin` is in your `$PATH`. 9 | 10 | There is a chance it’s there already; let’s see whether it is: 11 | 12 | ``` 13 | [[ ":$PATH:" == *":$HOME/bin:"* || ":$PATH:" == *":~/bin:"* ]] && echo "~/bin is in PATH" || echo "~/bin is not in PATH" 14 | ``` 15 | 16 | If the above prints `~/bin is not in PATH` let’s add 17 | `~/bin` to `$PATH` and reload Bash configuration: 18 | 19 | ``` 20 | echo 'export PATH=~/bin:$PATH' >> ~/.bash_profile 21 | source ~/.bash_profile 22 | ``` 23 | 24 | To check whether this worked, try to run `BINARY_NAME` without providing the path: 25 | 26 | ``` 27 | BINARY_NAME 28 | ``` 29 | 30 | The above should output something like the below: 31 | 32 | ``` 33 | A command-line interface for the v3 redesign of Exercism. 34 | 35 | Download exercises and submit your solutions. 36 | 37 | Usage: 38 | [command] 39 | ``` 40 | 41 | --- 42 | 43 | ## Did running `BINARY_NAME` output something like the above? 44 | 45 | - [[Yes->CLI Installation complete]] 46 | - [[No, I would like talk to a volunteer->Talk to a Volunteer]] 47 | -------------------------------------------------------------------------------- /contents/windows/download_64_bit_on_win10.tw2: -------------------------------------------------------------------------------- 1 | ::Download and unzip 64-bit version on Windows 10 2 | # Downloading the Exercism CLI on Windows 10 3 | 4 | Let's download the latest version of the Exercism CLI to get up and running. 5 | 6 | ## Step 1 7 | 8 | Open your browser (for example, Chrome or Edge) and navigate to 9 | 10 | ``` 11 | https://github.com/exercism/cli/releases/latest 12 | ``` 13 | 14 | To verify you are on the correct page, you must see a Downloads list when you scroll down. 15 | 16 |  17 | 18 | 19 | ## Step 2 20 | 21 | On the downloads list, click the file named `BINARY_NAME-windows-64bit.zip` to download it: 22 | 23 |  24 | 25 | To verify the file was downloaded, you should see a file named `BINARY_NAME-windows-64bit.zip` in your `Downloads` folder. 26 | 27 | 28 | ## Step 3 29 | 30 | Double click on `BINARY_NAME-windows-64bit.zip` to open the folder. 31 | 32 | The folder will show the file `BINARY_NAME`, and will look something like this: 33 | 34 |  35 | 36 | 37 | ## Wrapping up 38 | 39 | If you've reached the end of this tutorial without any problems, you should have the program `BINARY_NAME` in your `Downloads` folder! 40 | 41 | --- 42 | 43 | ## Were you able to get the program `BINARY_NAME` in your `Downloads` folder? 44 | 45 | - [[Yes->Opening the Command Prompt on Windows 10]] 46 | - [[No->Download CLI Installer for Windows]] 47 | -------------------------------------------------------------------------------- /viz/.byebug_history: -------------------------------------------------------------------------------- 1 | exit 2 | nodes 3 | c 4 | output_path 5 | c 6 | test.save(output_path) 7 | test.save(output_file) 8 | test.save 9 | test.methods 10 | test 11 | c 12 | exit 13 | @graph 14 | exit 15 | @graph 16 | exit 17 | @graph 18 | exit 19 | @graph 20 | exit 21 | link 22 | exit 23 | text.match(TITLE_REGEX).captures 24 | text.match(TITLE_REGEX)[1] 25 | text.match(TITLE_REGEX)[0] 26 | text.match(TITLE_REGEX) 27 | title[0] 28 | title 29 | exit 30 | extit 31 | title 32 | ttile 33 | exit 34 | text.scan LINK_REGEX 35 | exit 36 | text.match(LINK_REGEX).captures 37 | text.match(LINK_REGEX) 38 | exit 39 | text.match(LINK_REGEX).captures 40 | text.match(LINK_REGEX).size 41 | text.match(LINK_REGEX)[0] 42 | text.match(LINK_REGEX)[3] 43 | text.match(LINK_REGEX)[2] 44 | text.match(LINK_REGEX)[1] 45 | text.match(LINK_REGEX)[0] 46 | text.match(LINK_REGEX).length 47 | text.match(LINK_REGEX).methods 48 | text.match(LINK_REGEX).count 49 | text.match(LINK_REGEX) 50 | exit 51 | text.match(LINK_REGEX)[0] 52 | text.match(LINK_REGEX)[2] 53 | text.match(LINK_REGEX)[1] 54 | text.match(LINK_REGEX)[0] 55 | text.match(LINK_REGEX).methods 56 | text.match LINK_REGEX 57 | text.match LINK_REGEX.methods 58 | text.match LINK_REGEX 59 | text 60 | exit 61 | File.read(file) 62 | file 63 | exit 64 | a.read 65 | exit 66 | a 67 | exit 68 | Dir['../**/*.tw2'] 69 | Dir['**/*.tw2'] 70 | Dir['test/fixtures/**/*.tw2'] 71 | Dir['**/*.tw2'] 72 | Dir 73 | __FILE__ 74 | glob 75 | a 76 | exit 77 | @story_data.target! 78 | @story_data 79 | child_story_files 80 | PP.pp(@passages) 81 | @passages 82 | c 83 | PP.pp(@passages) 84 | require 'pp' 85 | pp @passagesrequi 86 | @passages.inspectr 87 | @passages 88 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require_relative "./viz/build_graph" 2 | require "twee2" 3 | 4 | desc "Graph the walkthrough" 5 | task :graph do 6 | BuildGraph.() 7 | end 8 | 9 | namespace :compile do 10 | desc "Compile the walkthrough for development" 11 | task :dev do 12 | STDERR.puts "Use 'rake compile:prod' to compile for production!" 13 | 14 | filename = "compiled.html" 15 | binary_name = ENV["BINARY_NAME"] || "exercism" 16 | walkthrough_assets_path = ENV["WALKTHROUGH_ASSETS_PATH"] || "#{Dir.pwd}/contents/assets" 17 | 18 | Twee2.build("main.tw2", filename, format: "./storyFormats/exercism") 19 | 20 | contents = File.read(filename).gsub("BINARY_NAME", binary_name) 21 | contents = contents.gsub("WALKTHROUGH_ASSETS_PATH", walkthrough_assets_path) 22 | 23 | File.open(filename, "wb") do |f| 24 | f.puts contents 25 | end 26 | end 27 | 28 | desc "Compile the walkthrough for production" 29 | task :prod do 30 | filename = "compiled_prod.html" 31 | binary_name = ENV["BINARY_NAME"] || "exercism" 32 | walkthrough_assets_path = "https://raw.githubusercontent.com/exercism/interactive-cli-walkthrough/main/contents/assets" 33 | Twee2.build("main.tw2", filename, format: "./storyFormats/exercism_prod") 34 | 35 | contents = File.read(filename).gsub("BINARY_NAME", binary_name) 36 | contents = contents.gsub("WALKTHROUGH_ASSETS_PATH", walkthrough_assets_path) 37 | 38 | File.open(filename, "wb") do |f| 39 | f.puts contents 40 | end 41 | end 42 | end 43 | 44 | desc "Compile the walkthrough for development (alias for compile:dev)" 45 | task :compile do 46 | Rake::Task['compile:dev'].invoke 47 | end 48 | -------------------------------------------------------------------------------- /table_of_contents.tw2: -------------------------------------------------------------------------------- 1 | ::StoryIncludes 2 | contents/common/welcome.tw2 3 | contents/common/install_complete.tw2 4 | contents/common/cli_install_complete.tw2 5 | contents/common/talk_to_a_volunteer.tw2 6 | contents/common/configuring_the_cli.tw2 7 | 8 | contents/linux/architecture.tw2 9 | contents/linux/directory.tw2 10 | contents/linux/introduction.tw2 11 | contents/linux/path.tw2 12 | contents/linux/tarball.tw2 13 | 14 | contents/mac/introduction.tw2 15 | contents/mac/opening_the_terminal.tw2 16 | contents/mac/opening_the_terminal_troubleshooting.tw2 17 | contents/mac/asking_about_homebrew.tw2 18 | contents/mac/verifying_homebrew_installation.tw2 19 | contents/mac/install_homebrew.tw2 20 | contents/mac/install_exercism_via_homebrew.tw2 21 | contents/mac/install_exercism_via_homebrew_troubleshooting.tw2 22 | contents/mac/manual_install.tw2 23 | contents/mac/determine_processor_architecture.tw2 24 | contents/mac/determine_processor_architecture_troubleshooting.tw2 25 | contents/mac/32_bit_version_not_supported.tw2 26 | contents/mac/download_64_bit_version.tw2 27 | contents/mac/download_64_bit_version_troubleshooting.tw2 28 | contents/mac/create_bin_folder.tw2 29 | contents/mac/create_bin_folder_troubleshooting.tw2 30 | contents/mac/add_to_path.tw2 31 | contents/mac/add_to_path_troubleshooting.tw2 32 | contents/mac/install_exercism_on_a_mac.tw2 33 | contents/mac/expert/determine_processor_architecture.tw2 34 | contents/mac/expert/install_exercism_on_a_mac.tw2 35 | 36 | contents/windows/add_to_path.tw2 37 | contents/windows/download_64_bit_on_win10.tw2 38 | contents/windows/introduction.tw2 39 | contents/windows/open_command_prompt.tw2 40 | contents/windows/download_cli_installer.tw2 41 | -------------------------------------------------------------------------------- /contents/mac/determine_processor_architecture.tw2: -------------------------------------------------------------------------------- 1 | ::Determine processor architecture on a Mac 2 | # Determine processor architecture on a Mac 3 | 4 | The first step in installing Exercism manually is to determine your Mac's processor architecture. For this step, we need to use the terminal. If you need instructions on how to open the terminal, [[Opening the Terminal on a Mac]] would be helpful. 5 | 6 | Let's get started! 7 | 8 | --- 9 | 10 | ## Step 1: Determining processor architecture 11 | 12 | To determine your processor architecture, paste in the following command into your Mac: 13 | 14 | ``` 15 | uname -m | if grep -q 64; then echo "64-bit CPU"; else echo "32-bit CPU"; fi 16 | ``` 17 | 18 | Hit `Enter` after you've pasted in the command. 19 | 20 | ### 32-bit processor architecture 21 | 22 | If you're on a 32-bit processor architecture, your Terminal would reply with this: 23 | 24 |  25 | 26 | ### 64-bit processor architecture 27 | 28 | If you're on a 64-bit processor architecture, your Terminal would reply with this: 29 | 30 |  31 | 32 | ### Unknown architecture 33 | 34 | If your output doesn't match any of the above, click on "I don't know" below and we could recommend steps to help you. 35 | 36 | ## Wrapping up 37 | 38 | If you've reached the end of this tutorial without any problems, you should now know what your processor architecture is! 39 | 40 | --- 41 | 42 | ## What is your Mac's processor architecture? 43 | 44 | - [[32 bit->Download and unzip 32 bit version on a Mac]] 45 | - [[64 bit->Download and unzip 64 bit version on a Mac]] 46 | - [[I don't know->Determine processor architecture on a Mac - Troubleshooting]] 47 | -------------------------------------------------------------------------------- /contents/mac/download_64_bit_version.tw2: -------------------------------------------------------------------------------- 1 | ::Download and unzip 64 bit version on a Mac 2 | # Downloading Exercism on your Mac 3 | 4 | Now that we've found out that you run on a 64-bit processor architecture. Let's now download Exercism. 5 | 6 | --- 7 | 8 | ## Step 1 9 | 10 | Open your browser and navigate to this page: 11 | 12 | ``` 13 | https://github.com/exercism/cli/releases/latest 14 | ``` 15 | 16 | To verify you are on the correct page, you must see a Downloads list when you scroll down. 17 | 18 |  19 | 20 | ## Step 2 21 | 22 | On the downloads list, click on the file named: 23 | 24 | ``` 25 | BINARY_NAME-darwin-x86_64.tar.gz 26 | ``` 27 | 28 | Clicking on it downloads the file. 29 | 30 | If you're unable to find it, here it is on the downloads list: 31 | 32 |  33 | 34 | To verify whether you've downloaded the right file, you should see the following file in your `Downloads` folder: 35 | 36 | ``` 37 | BINARY_NAME-darwin-x86_64.tar.gz 38 | ``` 39 | 40 | ## Step 3 41 | 42 | Double click on `BINARY_NAME-darwin-x86_64.tar.gz` in order to extract it. 43 | 44 | To determine whether you've correctly extracted it, you must see a file named `BINARY_NAME` appear. 45 | 46 | To illustrate, your `Downloads` folder should somewhat appear as this: 47 | 48 |  49 | 50 | ## Wrapping up 51 | 52 | If you've reached the end of this tutorial without any problems, you should've the Exercism program in your `Downloads` folder! 53 | 54 | --- 55 | 56 | ## Were you able to get the Exercism program in your `Downloads` folder? 57 | 58 | - [[Yes->Create bin folder on a Mac]] 59 | - [[No->Download and unzip 64 bit version on a Mac - Troubleshooting]] 60 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | builder (3.2.4) 5 | coffee-script (2.4.1) 6 | coffee-script-source 7 | execjs 8 | coffee-script-source (1.12.2) 9 | execjs (2.8.1) 10 | ffi (1.15.5) 11 | ffi (1.15.5-x64-mingw32) 12 | ffi (1.15.5-x86-mingw32) 13 | filewatcher (0.5.4) 14 | trollop (~> 2.0) 15 | graph (2.11.0) 16 | haml (4.0.7) 17 | tilt 18 | libv8 (3.16.14.19) 19 | mini_portile2 (2.8.6) 20 | minitest (5.16.3) 21 | nokogiri (1.16.4) 22 | mini_portile2 (~> 2.8.2) 23 | racc (~> 1.4) 24 | nokogiri (1.16.4-x64-mingw32) 25 | racc (~> 1.4) 26 | nokogiri (1.16.4-x86-mingw32) 27 | racc (~> 1.4) 28 | racc (1.7.3) 29 | rake (13.0.6) 30 | rb-fsevent (0.11.2) 31 | rb-inotify (0.10.1) 32 | ffi (~> 1.0) 33 | ref (2.0.0) 34 | sass (3.7.4) 35 | sass-listen (~> 4.0.0) 36 | sass-listen (4.0.0) 37 | rb-fsevent (~> 0.9, >= 0.9.4) 38 | rb-inotify (~> 0.9, >= 0.9.7) 39 | therubyracer (0.12.3) 40 | libv8 (~> 3.16.14.15) 41 | ref 42 | thor (0.20.3) 43 | tilt (2.0.11) 44 | trollop (2.9.10) 45 | twee2 (0.5.0) 46 | builder (~> 3.2, >= 3.2.2) 47 | bundler (~> 1.6) 48 | coffee-script (~> 2.4, >= 2.4.1) 49 | coffee-script-source (~> 1.9, >= 1.9.1.1) 50 | execjs (~> 2.6, >= 2.6.0) 51 | filewatcher (~> 0.5, >= 0.5.2) 52 | haml (~> 4.0, >= 4.0.7) 53 | nokogiri (~> 1.6, >= 1.6.6.2) 54 | sass (~> 3.2, >= 3.2.19) 55 | thor (~> 0.19, >= 0.19.1) 56 | tilt (~> 2.0, >= 2.0.1) 57 | trollop (~> 2.1, >= 2.1.2) 58 | 59 | PLATFORMS 60 | ruby 61 | x64-mingw32 62 | x86-mingw32 63 | 64 | DEPENDENCIES 65 | graph 66 | minitest 67 | rake 68 | therubyracer 69 | twee2 70 | 71 | BUNDLED WITH 72 | 1.17.2 73 | -------------------------------------------------------------------------------- /contents/mac/opening_the_terminal.tw2: -------------------------------------------------------------------------------- 1 | ::Opening the Terminal on a Mac 2 | # Opening the Terminal on a Mac 3 | 4 | The first step in installing Exercism is opening the terminal on your Mac. The terminal is a program which allows us to send commands to our computer via text. 5 | 6 | Let's get started by opening the terminal! 7 | 8 | --- 9 | 10 | ## Step 1: Opening Spotlight Access 11 | 12 | To open Spotlight Access, click the magnifying glass on the top right corner of your screen. 13 | 14 |  15 | 16 | To confirm whether Spotlight Access was successfully opened, you should see a search bar appear on your screen. When it appears, try typing into it, too! 17 | 18 |  19 | 20 | ## Step 2 21 | 22 | To open the terminal, type in the following text into Spotlight Access: 23 | 24 | ``` 25 | terminal 26 | ``` 27 | 28 | > Sidenote: This tutorial contains more of these. Whenever you see text surrounded by a box, it means that you need to type in or copy and paste the text in the box. We recommend the latter to avoid typos. 29 | 30 |  31 | 32 | After typing in the command, hit the `Enter` key. 33 | 34 | To confirm whether the terminal was successfully opened, you should see a new window appear on your screen. 35 | 36 |  37 | 38 | ## Wrapping up 39 | 40 | If you've reached the end of this tutorial without any problems, you've successfully opened the terminal! You could try typing into it and see how you could send commands to your computer. 41 | 42 | --- 43 | 44 | ## Were you able to open the terminal? 45 | 46 | - [[Yes->Verifying Homebrew Installation]] 47 | - [[No->Open the Terminal on a Mac - Troubleshooting]] 48 | -------------------------------------------------------------------------------- /contents/windows/add_to_path.tw2: -------------------------------------------------------------------------------- 1 | ::Moving BINARY_NAME to PATH on Windows 10 2 | # Moving the Exercism CLI to the right folder on Windows 10 3 | 4 | To make the Exercism CLI usable on your computer, we need to move the `BINARY_NAME` executable file to the correct folder. Using the Command Prompt we just opened, we are going to open the folder. 5 | 6 | ## Step 1: Opening the right folder 7 | 8 | In the Command Prompt window, copy & paste: 9 | 10 | ``` 11 | start "" "%LOCALAPPDATA%\Microsoft\WindowsApps" 12 | ``` 13 | 14 | and hit the 'Enter' key. 15 | 16 | A new window, showing a folder, will show up. This is where we need to place the `BINARY_NAME` file. It will look something like this, but it might not be empty for you. 17 | 18 |  19 | 20 | 21 | ## Step 2: Moving the `BINARY_NAME` file 22 | 23 | Find the `BINARY_NAME` file in the folder we opened earlier, when we downloaded `BINARY_NAME`. From this folder, drag the file (or copy & paste it) to the folder we just opened, labeled `WindowsApps`. 24 | 25 | In the `WindowsApps` folder, you should now see the `BINARY_NAME` file. It will look something like this: 26 | 27 |  28 | 29 | 30 | ## Step 3: Verify installation 31 | 32 | Now that we moved the file, we need to check our installation. Open up the Command Prompt window again, and type (or copy & paste): 33 | 34 | ``` 35 | BINARY_NAME 36 | ``` 37 | 38 | and hit the 'Enter' key. 39 | 40 | After hitting the `Enter` key, the Command Prompt should reply with how the `BINARY_NAME` command can be used. 41 | 42 |  43 | 44 | > Sidenote: As you get the hang of the Exercism CLI, you'll get to know more about its commands. 45 | 46 | --- 47 | 48 | ## Have you installed the Exercism CLI on your computer? 49 | 50 | - [[Yes->CLI Installation complete]] 51 | - [[No->Download CLI Installer for Windows]] 52 | -------------------------------------------------------------------------------- /contents/mac/create_bin_folder.tw2: -------------------------------------------------------------------------------- 1 | ::Create bin folder on a Mac 2 | # Create bin folder on a Mac 3 | 4 | In order to place the Exercism program cleanly in our computer, let's create a folder named `bin` in order to house it. 5 | 6 | --- 7 | 8 | ## Step 1 9 | 10 | In your terminal, paste in the following to create the `bin` folder: 11 | 12 | ``` 13 | mkdir -p ~/bin 14 | ``` 15 | 16 |  17 | 18 | To verify if the `bin` folder is created, paste the following command in your terminal: 19 | 20 | ``` 21 | if [ -d ~/bin ]; then echo "folder created"; else echo "folder not created"; fi 22 | ``` 23 | 24 | ### Folder created 25 | 26 | Your terminal should reply with the following message when the folder was created: 27 | 28 |  29 | 30 | ### Folder not created 31 | 32 | Your terminal should reply with the following message when the folder was not created: 33 | 34 |  35 | 36 | ## Step 2 37 | 38 | Once the folder was created, paste in the following command in your terminal to move the BINARY_NAME program to the `bin` folder: 39 | 40 | ``` 41 | mv ~/Downloads/BINARY_NAME ~/bin 42 | ``` 43 | 44 | To verify whether you've moved the BINARY_NAME program correctly, paste in the following command to your terminal: 45 | 46 | ``` 47 | if [ -f ~/bin/BINARY_NAME ]; then echo "file moved"; else echo "file not moved"; fi 48 | ``` 49 | 50 | ### File moved 51 | 52 | After pasting in the command, your terminal must reply with `file moved` if the file was moved. 53 | 54 | ### File not moved 55 | 56 | After pasting in the command, your terminal must reply with `file not moved` if the file was moved. 57 | 58 | ## Wrapping up 59 | 60 | If you've reached the end of this tutorial without any problems, you should've created a `bin` folder and moved the BINARY_NAME program into it! 61 | 62 | --- 63 | 64 | ## Were you able to move the BINARY_NAME program to your `bin` folder? 65 | 66 | - [[Yes->Add to $PATH on a Mac]] 67 | - [[No->Create bin folder on a Mac - Troubleshooting]] 68 | -------------------------------------------------------------------------------- /contents/mac/verifying_homebrew_installation.tw2: -------------------------------------------------------------------------------- 1 | ::Verifying Homebrew Installation 2 | # Installing Homebrew on a Mac 3 | 4 | Great! Now that you've opened the terminal on your Mac, we need to install Homebrew next. Homebrew is a package manager for the Mac, and installing it makes the whole Exercism installation process easier. If you want to Exercism manually, [[Manual Installation on a Mac->Manual Installation on a Mac]] would be helpful. 5 | 6 | Since Homebrew is pretty common on Macs, let's first verify whether you have it on your computer. 7 | 8 | --- 9 | 10 | ## Step 1 11 | 12 | To verify if homebrew is installed, type in the following text into your terminal: 13 | 14 | ``` 15 | brew 16 | ``` 17 | 18 | > Sidenote: This tutorial contains more of these. Whenever you see text surrounded by a box, it means that you need to type in or copy and paste the text in the box. We recommend the latter to avoid typos. 19 | 20 | 21 |  22 | 23 | After typing in the command, hit the `Enter` key. 24 | 25 | After hitting the `Enter` key, your terminal should give you a reply. 26 | 27 | ### Homebrew is not installed 28 | 29 | When you see the following reply, it means that Homebrew isn't installed on your Mac yet. 30 | 31 |  32 | 33 | > Sidenote: This reply means that the terminal doesn't understand the `brew` command. Your terminal may reply with a different text, but if it means that the `brew` command isn't understood, it still means that homebrew isn't installed. 34 | 35 | ### Homebrew is installed 36 | 37 | When you see the following reply, it means that Homebrew is installed. 38 | 39 |  40 | 41 | > Sidenote: This reply means that the terminal understands the `brew` command. Your terminal replies with examples of how the `brew` command can be used. Again, the text can vary from terminal to terminal, but the underlying principle should be that the terminal understands the `brew` command. 42 | 43 | ## Wrapping up 44 | 45 | If you've reached the end of this tutorial, you should be able to determine whether you've installed Homebrew or not. 46 | 47 | --- 48 | 49 | ## Do you have Homebrew installed? 50 | 51 | - [[Yes->Installing Exercism via Homebrew]] 52 | - [[No->Installing Homebrew]] 53 | -------------------------------------------------------------------------------- /contents/mac/install_exercism_via_homebrew.tw2: -------------------------------------------------------------------------------- 1 | ::Installing Exercism via Homebrew 2 | # Installing Exercism via Homebrew 3 | 4 | You've made it to the last step! Since we've got the parts to install Exercism, it shouldn't be long before you start your learning journey with Exercism. 5 | 6 | 7 | --- 8 | 9 | ## Step 1 10 | 11 | Paste in the following text into your terminal: 12 | 13 | ``` 14 | brew install BINARY_NAME 15 | ``` 16 | 17 |  18 | 19 | After typing in the command, hit the `Enter` key. 20 | 21 | ### Installation started 22 | 23 | After hitting the `Enter` key, you should see that the terminal starts to install Exercism. Since this proccess takes time, we need to wait until it finishes. 24 | 25 |  26 | 27 | ### Installation finished 28 | 29 | The installation is finished once you see this message on your terminal: 30 | 31 |  32 | 33 | > Sidenote: The message on your terminal doesn't need to exactly match the screenshot. If you see the message "Pouring...", that should be enough. 34 | 35 | ### Installation taking too long 36 | 37 | If your installation is taking too long, we recommend checking your internet connection. If your internet connection is up, we recommend trying to run the command again. It might work this time! 38 | 39 | ## Step 2 40 | 41 | In order to verify whether BINARY_NAME was successfully installed, paste the following text into your terminal. 42 | 43 | ``` 44 | BINARY_NAME 45 | ``` 46 | 47 | After typing in the command, hit the `Enter` key. 48 | 49 | ### Installation successful 50 | 51 | After hitting the `Enter` key, the terminal should reply with how the `BINARY_NAME` command can be used. 52 | 53 |  54 | 55 | > Sidenote: As you get the hang of Exercism, you'll get to know more about the commands. 56 | 57 | ### Installation unsuccessful 58 | 59 | After hitting the `Enter` key, the terminal still doesn't recognize the `BINARY_NAME` command. 60 | 61 |  62 | 63 | > Sidenote: The messages might vary per computer, but if the message you receive means that the terminal couldn't understand the `BINARY_NAME` command, you have to try installing again. 64 | 65 | If you've encountered this, we recommend trying to install again. It might work this time! 66 | 67 | ## Wrapping up 68 | 69 | Once you've reached the end of this tutorial, you should've installed Exercism on your computer. 70 | 71 | --- 72 | 73 | ## Have you installed Exercism on your computer? 74 | 75 | - [[Yes->CLI Installation complete]] 76 | - [[No->Installing Exercism via Homebrew - Troubleshooting]] 77 | -------------------------------------------------------------------------------- /contents/mac/install_homebrew.tw2: -------------------------------------------------------------------------------- 1 | ::Installing Homebrew 2 | # Installing Homebrew 3 | 4 | If you would like to read more on Homebrew before installing it, the Homebrew webpage is a good resource. 5 | 6 | --- 7 | 8 | ## Step 1 9 | 10 | Paste in the following text into your terminal: 11 | 12 | ``` 13 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 14 | ``` 15 | 16 | After typing in the command, hit the `Enter` key. 17 | 18 | ## Step 2 19 | 20 | ```none 21 | $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 22 | ==> Checking for `sudo` access (which may request your password)... 23 | Password: 24 | ``` 25 | 26 | Type in your password and hit `Enter`. 27 | 28 | > Sidenote: If it is your first time doing this, you might be confused that as you are typing, nothing appears. 29 | > This is a security feature of the terminal. 30 | > Just keep on typing and press `Enter` when you finish. 31 | 32 | ### Incorrect password was typed in 33 | 34 | You will see a message that an incorrect password was typed in. 35 | First, try to verify if you have typed your password correctly. 36 | If it still doesn't work, it may be the case that the password you have isn't the administrator's password. 37 | It would be good to ask your administrator to put in the password for you. 38 | 39 | ### Correct password was typed in 40 | 41 | Your terminal should now reply saying that the `homebrew` installation has started. 42 | 43 | ## Step 3 44 | 45 | After hitting the `Enter` key, you should see that the terminal prompts you to confirm installation. 46 | 47 | > Sidenote: Your installation directories may be different. 48 | 49 | ```none 50 | ==> This script will install: 51 | /usr/local/bin/brew 52 | /usr/local/share/doc/homebrew 53 | /usr/local/share/man/man1/brew.1 54 | /usr/local/share/zsh/site-functions/_brew 55 | /usr/local/etc/bash_completion.d/brew 56 | /usr/local/Homebrew 57 | ==> The following existing directories will be made writable by user only: 58 | /usr/local/share/zsh 59 | /usr/local/share/zsh/site-functions 60 | ==> The following existing directories will have their owner set to glennj: 61 | /usr/local/share/zsh 62 | /usr/local/share/zsh/site-functions 63 | ==> The following existing directories will have their group set to admin: 64 | /usr/local/share/zsh 65 | /usr/local/share/zsh/site-functions 66 | 67 | Press RETURN/ENTER to continue or any other key to abort: 68 | ``` 69 | 70 | Hit the `Enter` key to confirm the `homebrew` installation. 71 | 72 | ## Step 4 73 | 74 | Since `homebrew` is still installing at this point, the only need thing we need to do is wait. 75 | It may take at most 5 minutes. 76 | 77 | ### Installation is successful 78 | 79 | After waiting, your terminal must respond with a message saying that the Homebrew installation is complete. 80 | It may look something like this: 81 | 82 | ```none 83 | ==> Installation successful! 84 | 85 | ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. 86 | Read the analytics documentation (and how to opt-out) here: 87 | https://docs.brew.sh/Analytics 88 | No analytics data has been sent yet (nor will any be during this install run). 89 | 90 | ==> Homebrew is run entirely by unpaid volunteers. Please consider donating: 91 | https://github.com/Homebrew/brew#donations 92 | 93 | ==> Next steps: 94 | - Run brew help to get started 95 | - Further documentation: 96 | https://docs.brew.sh 97 | ``` 98 | 99 | ### Installation is not successful 100 | 101 | If you don't seem to see a message confirming that homebrew is installed, we first recommend to check whether your internet connection is up. 102 | The installation process requires it. 103 | If your connection is up, we recommend running the install process again. 104 | 105 | ## Wrapping up 106 | 107 | Once you have reached the end of this tutorial, you should have installed Homebrew on your computer. 108 | 109 | --- 110 | 111 | ## Were you able to install Homebrew? 112 | - [[Yes->Installing Exercism via Homebrew]] 113 | - [[I don't know->Verifying Homebrew Installation]] 114 | - [[No->Talk to a Volunteer]] 115 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | ## Introduction 4 | 5 | Exercism is a platform centered around empathetic conversation. 6 | We have a low tolerance for communication that makes anyone feel unwelcome, unsupported, insulted or discriminated against. 7 | 8 | ## Seen or experienced something uncomfortable? 9 | 10 | If you see or experience abuse, harassment, discrimination, or feel unsafe or upset, please email [abuse@exercism.org](mailto:abuse@exercism.org?subject=%5BCoC%5D) and include \[CoC\] in the subject line. 11 | We will follow up with you as a priority. 12 | 13 | ## Enforcement 14 | 15 | We actively monitor for Code of Conduct (CoC) violations and take any reports of violations extremely seriously. 16 | We have banned contributors, mentors and users due to violations. 17 | 18 | After we receive a report of a CoC violation, we view that person's conversation history on Exercism and related communication channels and attempt to understand whether someone has deliberately broken the CoC, or accidentally crossed a line. 19 | We generally reach out to the person who has been reported to discuss any concerns we have and warn them that repeated violations will result in a ban. 20 | Sometimes we decide that no violation has occurred and that no action is required and sometimes we will also ban people on a first offense. 21 | We strive to be fair, but will err on the side of protecting the culture of our community. 22 | 23 | Exercism's leadership reserve the right to take whatever action they feel appropriate with regards to CoC violations. 24 | 25 | ## The simple version 26 | 27 | - Be empathetic 28 | - Be welcoming 29 | - Be kind 30 | - Be honest 31 | - Be supportive 32 | - Be polite 33 | 34 | ## The details 35 | 36 | Exercism should be a safe place for everybody regardless of 37 | 38 | - Gender, gender identity or gender expression 39 | - Sexual orientation 40 | - Disability 41 | - Physical appearance (including but not limited to body size) 42 | - Race 43 | - Age 44 | - Religion 45 | - Anything else you can think of 46 | 47 | As someone who is part of this community, you agree that: 48 | 49 | - We are collectively and individually committed to safety and inclusivity 50 | - We have zero tolerance for abuse, harassment, or discrimination 51 | - We respect people’s boundaries and identities 52 | - We refrain from using language that can be considered offensive or oppressive (systemically or otherwise), eg. sexist, racist, homophobic, transphobic, ableist, classist, etc. 53 | - this includes (but is not limited to) various slurs. 54 | - We avoid using offensive topics as a form of humor 55 | 56 | We actively work towards: 57 | 58 | - Being a safe community 59 | - Cultivating a network of support & encouragement for each other 60 | - Encouraging responsible and varied forms of expression 61 | 62 | We condemn: 63 | 64 | - Stalking, doxxing, or publishing private information 65 | - Violence, threats of violence or violent language 66 | - Anything that compromises people’s safety 67 | - Conduct or speech which might be considered sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory or offensive in nature 68 | - The use of unwelcome, suggestive, derogatory or inappropriate nicknames or terms 69 | - Disrespect towards others (jokes, innuendo, dismissive attitudes) and towards differences of opinion 70 | - Intimidation or harassment (online or in-person). 71 | Please read the [Citizen Code of Conduct](https://github.com/stumpsyn/policies/blob/master/citizen_code_of_conduct.md) for how we interpret harassment 72 | - Inappropriate attention or contact 73 | - Not understanding the differences between constructive criticism and disparagement 74 | 75 | These things are NOT OK. 76 | 77 | Be aware of how your actions affect others. 78 | If it makes someone uncomfortable, stop. 79 | 80 | If you say something that is found offensive, and you are called out on it, try to: 81 | 82 | - Listen without interruption 83 | - Believe what the person is saying & do not attempt to disqualify what they have to say 84 | - Ask for tips / help with avoiding making the offense in the future 85 | - Apologize and ask forgiveness 86 | 87 | ## History 88 | 89 | This policy was initially adopted from the Front-end London Slack community and has been modified since. 90 | A version history can be seen on [GitHub](https://github.com/exercism/website-copy/edit/main/pages/code_of_conduct.md). 91 | 92 | _This policy is a "living" document, and subject to refinement and expansion in the future. 93 | This policy applies to the Exercism website, the Exercism GitHub organization, any other Exercism-related communication channels (e.g. Discord, Forum, Twitter, email) and any other Exercism entity or event._ 94 | -------------------------------------------------------------------------------- /.github/labels.yml: -------------------------------------------------------------------------------- 1 | # --------------------------------------------------------------- # 2 | # This is an auto-generated file - Do not manually edit this file # 3 | # --------------------------------------------------------------- # 4 | 5 | # This file is automatically generated by concatenating two files: 6 | # 7 | # 1. The Exercism-wide labels: defined in https://github.com/exercism/org-wide-files/blob/main/global-files/.github/labels.yml 8 | # 2. The repository-specific labels: defined in the `.appends/.github/labels.yml` file within this repository. 9 | # 10 | # If any of these two files change, a pull request is automatically created containing a re-generated version of this file. 11 | # Consequently, to change repository-specific labels you should update the `.appends/.github/labels.yml` file and _not_ this file. 12 | # 13 | # When the pull request has been merged, the GitHub labels will be automatically updated by the "Sync labels" workflow. 14 | # This typically takes 5-10 minutes. 15 | 16 | # --------------------------------------------------------------------- # 17 | # These are the Exercism-wide labels which are shared across all repos. # 18 | # --------------------------------------------------------------------- # 19 | 20 | # The following Exercism-wide labels are used to show "tasks" on the website, which will point users to things they can contribute to. 21 | 22 | # The `x:action/