Skip to content

Fork, Commit, Merge. A project designed to help you familiarize yourself with the open source contribution workflow on GitHub!

License

Notifications You must be signed in to change notification settings

fork-commit-merge/fork-commit-merge

Repository files navigation

Fork, Commit, Merge Version 1.2.0 LICENSE Issues Stars Forks PR:s Welcome First Contributors GitHub repo size Security Rating Quality Gate Status


Welcome to "Fork, Commit, Merge"!
A project designed to help you familiarize yourself with the open source contribution workflow on GitHub, as well as to help you learn the basics of programming with different languages, libraries and frameworks.

More info about this project, contributing and open source resources, are available on our website at
forkcommitmerge.io

HTML HTMX CSS SASS Tailwind CSS Bootstrap ReScript CoffeeScript JavaScript TypeScript React Next.js Three.js Vite Vue.js Svelte Astro Angular Ember.js GraphQL Node.js NPM Yarn Nginx Apollo Express.js Electron.js Jest Jasmine Vitest C C++ C# .Net Blazor D F# Ada Java Kotlin Scala Groovy Python NumPy Flask Django Solidity Vyper Ruby Rails Elixir Crystal PHP Laravel Go Dart Flutter Swift React Native Julia Rust Haskell Lua Clojure OCaml LaTeX Lisp Fortran Pascal COBOL Erlang Smalltalk Zig R Nim MATLAB Octave SQL TLA+ Bash Perl Mojo ASM JSON YAML TOML XML CSV Markdown Docker Kubernetes Git

Find awesome badges for your project in this repository: markdown-badges

Table of Contents

line

Quick Start

  1. Go to Setup Instructions and follow the instructions about how to start working with the project.
  2. Go to Tasks and choose a task you want to work on. You can find instructions for installing the required tools for each task in Prerequisites.
  3. Go to Submitting Your Changes and follow the instructions about how to submit your changes.

line

Prerequisites

  • Before you start, you'll need to install Git.
  • For HTML, HTMX, CSS, Bootstrap, JSON, YAML, TOML, XML or Markdown related issues, you don't need to install anything extra.
  • For SASS related issues, you need to install Node.js and NPM.
  • For Tailwind CSS related issues, you need to install Node.js and NPM.
  • For ReScript related issues, you need to install Node.js and NPM.
  • For CoffeeScript related issues, you need to install Node.js and NPM as well as CoffeeScript.
  • For JavaScript related issues, you need to install Node.js and NPM.
  • For TypeScript related issues, you need to install Node.js and NPM.
  • For React related issues, you need to install Node.js and NPM.
  • For Next.js related issues, you need to install Node.js and NPM.
  • For Three.js related issues, you need to install Node.js and NPM.
  • For Vue.js related issues, you need to install Node.js and NPM.
  • For Svelte related issues, you need to install Node.js and NPM.
  • For Astro related issues, you need to install Node.js and NPM.
  • For Angular related issues, you need to install Node.js and NPM.
  • For Ember.js related issues, you need to install Node.js and NPM.
  • For GraphQL related issues, you need to install Node.js and NPM.
  • For NGINX related issues, you need to install NGINX.
  • For Express.js related issues, you need to install Node.js and NPM.
  • For Electron.js related issues, you need to install Node.js and NPM.
  • For Jest related issues, you need to install Node.js and NPM.
  • For Jasmine related issues, you need to install Node.js and NPM.
  • For Vitest related issues, you need to install Node.js and NPM.
  • For C related issues, you need to install C.
  • For C++ related issues, you need to install C++.
  • For C# related issues, you need to install C# (Dotnet-SDK).
  • For Blazor related issues, you need to install Blazor (Dotnet-SDK).
  • For D related issues, you need to install D (DMD Compiler).
  • For F# related issues, you need to install F# (Dotnet-SDK).
  • For Ada related issues, you need to install Ada.
  • For Java related issues, you need to install Java.
  • For Kotlin related issues, you need to install Kotlin and Java.
  • For Scala related issues, you need to install Scala.
  • For Groovy related issues, you need to install Java and Groovy.
  • For Python related issues, you need to install Python.
  • For Flask related issues, you need to install Python and Flask.
  • For Django related issues, you need to install Python and Django.
  • For Solidity related issues, you need to install Node.js and NPM as well as Installing Solidity (Truffle Ethereum Development Environment).
  • For Vyper related issues, you need to install Vyper.
  • For Ruby related issues, you need to install Ruby.
  • For Rails related issues, you need to install Ruby and Rails.
  • For Elixir related issues, you need to install Elixir.
  • For Crystal related issues, you need to install Crystal.
  • For PHP related issues, you need to install PHP.
  • For Laravel related issues, you need to install PHP and Laravel.
  • For Go related issues, you need to install Golang.
  • For Dart related issues, you need to install Dart.
  • For Flutter related issues, you need to install Dart and Flutter.
  • For Swift related issues, you need to install Swift.
  • For React Native related issues, you need to install Node.js and NPM as well as React Native.
  • For Julia related issues, you need to install Julia.
  • For Rust related issues, you need to install Rust.
  • For Haskell related issues, you need to install Haskell.
  • For Lua related issues, you need to install Lua.
  • For Clojure related issues, you need to install Clojure.
  • For OCaml related issues, you need to install OCaml.
  • For LaTeX related issues, you need to install LaTeX.
  • For Lisp related issues, you need to install Lisp.
  • For Fortran related issues, you need to install Fortran.
  • For Pascal related issues, you need to install Pascal.
  • For COBOL related issues, you need to install COBOL.
  • For Erlang related issues, you need to install Erlang.
  • For Smalltalk related issues, you need to install Smalltalk.
  • For Zig related issues, you need to install Zig.
  • For R related issues, you need to install R.
  • For Nim related issues, you need to install Nim.
  • For MATLAB related issues, you need to install MATLAB.
  • For Octave related issues, you need to install Octave.
  • For SQL related issues, you need to install sqlite3.
  • For TLA+ related issues, you need to install TLA+ Toolbox.
  • For Bash related issues, you need to install Bash.
  • For Perl related issues, you need to install Perl.
  • For ASM (Assembly) related issues, you need to install ASM.
  • For Docker related issues, you need to install Docker.
  • For Kubernetes related issues, you need to install Kubernetes.

Installing an IDE

An Integrated Development Environment (IDE) is a software application that consolidates basic tools required for software testing and development. An IDE typically consists of a source code editor, build automation tools, and a debugger. Some IDEs, like Android Studio or Visual Studio, even offer more advanced features such as version control, databases, cloud services, and more. Why use an IDE? Using an IDE can significantly speed up the development process by offering a variety of tools and features under one roof.

Here are a few reasons why developers use IDEs:

  • Efficiency: With everything in one place, developers can write, test, and debug code without needing to switch between different tools.

  • Code Assistance: Many IDEs offer features like autocompletion, syntax highlighting, and suggestions, making the code-writing process smoother.

  • Integrated Debugging: Integrated debuggers allow developers to test and debug their programs within the IDE, speeding up the development cycle.

  • Extensions & Plugins: Most modern IDEs support a wide range of extensions and plugins, enabling developers to customize their environment and add even more functionalities.

We recommend using VS Code as your IDE for this project. It's free, open-source, and supports a wide range of languages and extensions. You can download it from the VS Code - Official website. However, if you prefer to use another IDE, that's fine too!

Instructions on how to install an IDE that suits for you can be found on our website at forkcommitmerge.io/ide!


Installing Git

Git is a version control system that lets you manage and keep track of your source code history.

  • For Linux users, you can install Git via your distribution's package manager. For example, on Arch you would use the command: sudo pacman -S git and in Ubuntu/Debian: sudo apt-get install git
  • For macOS users, you can install Git via Homebrew with the command: brew install git
  • For Windows users, download Git from Git for Windows and follow the installation instructions.

Installing Node.js and NPM

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine, and NPM is a package manager for Node.js.

  • You can download Node.js and NPM from the official Node.js website. This will install both Node.js and NPM on your machine. Follow the instructions on the website to install them.

Installing SASS

For SASS related issues, you need to install Node.js and NPM.


Installing Tailwind CSS

For Tailwind CSS related issues, you need to install Node.js and NPM.


Installing ReScript

For ReScript related issues, you need to install Node.js and NPM.


Installing CoffeeScript

CoffeeScript is a programming language that transcompiles to JavaScript. It adds syntactic sugar inspired by Ruby, Python, and Haskell in an effort to enhance JavaScript's brevity and readability.

First you have to make sure you have Node.js and NPM installed.

Install CoffeeScript with this command:

npm install --global coffeescript

Installing JavaScript

For JavaScript related issues, you need to install Node.js and NPM.


Installing TypeScript

For TypeScript related issues, you need to install Node.js and NPM.


Installing React

For React related issues, you need to install Node.js and NPM.


Installing Next.js

For Next.js related issues, you need to install Node.js and NPM.


Installing Three.js

For Three.js related issues, you need to install Node.js and NPM.


Installing Vue.js

For Vue.js related issues, you need to install Node.js and NPM.


Installing Svelte

For Svelte related issues, you need to install Node.js and NPM.


Installing Astro

For Astro related issues, you need to install Node.js and NPM.


Installing Angular

For Angular related issues, you need to install Node.js and NPM.


Installing Ember.js

For Ember.js related issues, you need to install Node.js and NPM.


Installing GraphQL

For GraphQL related issues, you need to install Node.js and NPM.


Installing NGINX

  • For macOS:

Install Homebrew if you haven't:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install NGINX:

brew install nginx
  • For Linux (Ubuntu/Debian):

Install NGINX:

sudo apt install nginx
  • For Windows:

Follow this guide to install NGINX on Windows.

Installing Express.js

For Express.js related issues, you need to install Node.js and NPM.


Installing Electron.js

For Electron.js related issues, you need to install Node.js and NPM.


Installing Jest

For Jest related issues, you need to install Node.js and NPM.


Installing Jasmine

For Jasmine related issues, you need to install Node.js and NPM.


Installing Vitest

For Vitest related issues, you need to install Node.js and NPM.


Installing C

Setup the C environment in VS Code:

  • Install the C/C++ extension for VS Code.

Set up a compiler:

  • Windows: Install MinGW.
  • macOS: Ensure you have the Xcode Command Line Tools installed (xcode-select --install).
  • Linux: Most distributions come with gcc installed, but if not, you can typically install it using your package manager (e.g., sudo apt install gcc for Debian-based distributions).

Installing C++

If you are using VS Code, you can install the C++ extension: Launch VS Code, head to Extensions (or press Ctrl+Shift+X), and search for C++. Install the one by Microsoft called C/C++.

Install a C++ Compiler:

  • Windows: Install Mingw-w64 or TDM-GCC. After installation, make sure the compiler's bin directory is in your system's PATH.
  • Linux: You can usually install the GCC compiler with your distribution's package manager. For example, on Ubuntu/Debian, you'd run sudo apt-get install g++.
  • Mac: Install Xcode from the App Store. Once Xcode is installed, you'll also have the compiler.

Installing C# (Dotnet-SDK)

Windows

Using the Installer:

  • Go to the .NET download page.
  • Under the ".NET SDK" section, choose your preferred version.
  • Click on the "Download x64" or "Download Arm" button for Windows.
  • Once downloaded, run the installer and follow the on-screen instructions.

Using the Command Line with Chocolatey:

If you have Chocolatey installed, you can use it to install the .NET SDK:

choco install dotnet-sdk

Linux

The instructions can vary depending on the Linux distribution. Here's a general overview:

  • Go to the .NET download page.
  • Under the ".NET SDK" section, choose your preferred version.
  • Select your specific Linux distribution from the list to get detailed instructions.

For example, for Ubuntu, the instructions at the time of writing are:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk

And for Arch Linux, you can just install the dotnet-sdk package from the official repositories:

sudo pacman -S dotnet-sdk

Please note that the version and specific commands can change, so always refer to the official documentation for the most up-to-date instructions.

macOS

Using the Installer:

  • Go to the .NET download page.
  • Under the ".NET SDK" section, choose your preferred version.
  • Click on the "Download .NET SDK" button for macOS.
  • Once downloaded, run the installer and follow the on-screen instructions.

Using Homebrew:

If you have Homebrew installed, you can use it to install the .NET SDK:

brew install --cask dotnet-sdk

After installation, you can test if it's installed correctly by running:

dotnet --version

Setting up C# in Visual Studio Code:

  • Launch Visual Studio Code.
  • Open the Extensions view (Ctrl+Shift+X).
  • Search for the C# extension provided by Microsoft and install it.
  • Once the extension is installed, it will prompt you to install the .NET Core SDK if it's not already installed. Please follow the link and instructions to install it.

Installing Blazor (Dotnet-SDK)

Look the instructions for C# (Dotnet-SDK) to install the .NET SDK.


Installing D (DMD Compiler)

For Windows and macOS, you can download the DMD (D Compiler) from the official website and follow the installation instructions. For Linux you can use your package manager, for example in Arch Linux you can install DMD with sudo pacman -S dmd.

VS Code Setup:

  • Open VS Code and go to Extensions (or press Ctrl+Shift+X).
  • Search for "D Programming Language (code-d)" and install it. This will add D language support in VS Code.

Installing F# (Dotnet-SDK)

For Windows Users:

  • F# comes bundled with Visual Studio, so installing Visual Studio with .NET support should suffice.
  • Alternatively, you can also install F# through the .NET SDK.

For macOS and Linux Users:

  • Install Mono.
  • Alternatively, you can also install F# through the .NET SDK.

Visual Studio Code:

  • Install the Ionide for F# extension for F# support in VS Code.

Installing Ada

Windows:

  • Download GNAT Community edition for Ada from here.
  • Install GNAT.
  • Add the GNAT bin directory to your PATH environment variable.

macOS/Linux:

  • Open your terminal.
  • Install GNAT via package manager. For example, on macOS with Homebrew: brew install gnat or on Ubuntu: sudo apt install gnat.
  • Confirm installation by running gnatls --version.

Installing Java

Install Java Development Kit (JDK):

Before working with Java in VS Code, you must have the Java Development Kit (JDK) installed on your machine.

Install Java Extensions for VS Code:

  • Open VS Code, go to the Extensions view by clicking on the square icon on the sidebar or pressing Ctrl+Shift+X. Search for "Java Extension Pack" by Microsoft and install it. This pack includes essential Java extensions like Language Support, Debugging, Testing, and more.

Configure Java in VS Code:

  • VS Code should automatically detect the JDK you installed. If not, you can set the java.home setting in VS Code to point to your JDK location.

Installing Kotlin

  • macOS: brew install kotlin
  • Linux:
    • Arch: sudo pacman -S kotlin
    • Ubuntu/Debian: sudo snap install --classic kotlin
  • Windows: Download Kotlin Compiler and add it to the PATH.

Install Kotlin Language Extension:

For VS Code you can install the Kotlin Language Extension like this:

  • Go to Extensions (you can use the shortcut Ctrl+Shift+X).
  • Search for "Kotlin" and install the "Kotlin Language" extension by FWCD.

Install Java Development Kit (JDK):


Installing Scala

macOS:

brew install scala sbt

Linux:

Ubuntu/Debian:

sudo apt-get install scala sbt

Windows:

You can download and install from the official websites: Scala & SBT.

Install the Scala Language Extension for VS Code:

  • Open VS Code.
  • Navigate to Extensions (shortcut: Ctrl+Shift+X).
  • Search for "Scala" and install the "Scala (Metals)" extension, which is the official Scala language server.

Installing Groovy

Install Java:

  • Groovy runs on the JVM, so you'll need Java installed.

Install Groovy:

  • On Windows: You can use the Groovy Windows Installer to install Groovy easily.
  • On macOS: You can use Homebrew to install Groovy. Open your terminal and run brew install groovy.
  • On Linux: You can use a your distribution's package manager to install Groovy. For example, on Ubuntu/Debian, you can run sudo apt-get install groovy and on Arch Linux sudo pacman -S groovy.

Installing Python

Windows:

  • Visit the official Python website's download page.
  • Click on the latest Python release.
  • Scroll down to the Files section and download the Windows x86-64 executable installer for 64-bit version of Windows.
  • Run the installer file and follow the instructions, making sure to tick the box that says "Add Python to PATH" before clicking Install Now.

Mac OS:

Mac OS X should come pre-installed with Python, but in case it's not installed, here's how to install it:

  • Visit the official Python website's download page.
  • Click on the latest Python release.
  • Download the macOS 64-bit installer.
  • Open the downloaded .pkg file and follow the instructions to install Python.

Linux:

Most Linux distributions come with Python pre-installed. To check if you have Python installed, open a terminal and type python3 --version.

If you need to install or upgrade Python, you can do so with the package manager for your Linux distribution. For Ubuntu, you can use the following commands:

sudo apt update
sudo apt install python3

Installing Flask

You should have already installed Python before installing Flask. If you haven't, please do so first. You can check if you have Python installed by opening a terminal and typing python3 --version. In most operating systems, after you have Python installed, you can install Flask with the command:

pip install Flask

In Arch Linux you can run:

sudo pacman -S python-flask

Installing Django

  • Install Python if you haven't already.
  • Install Django:
    • With pip: pip install django
    • In Arch Linux you can use: sudo pacman -S python-django

Installing Solidity (Truffle Ethereum Development Environment)

Before you can start writing Solidity code, you need to install Node.js and NPM. After installing Node.js and NPM, you can install the Truffle development environment for Ethereum with this command:

npm install -g truffle

If you are using VS Code, you can install the "Solidity" extension by Juan Blanco from the VS Code Marketplace.


Installing Vyper

It is highly recommended to use a Python virtual environment. If you don't have virtualenv installed, you can install it using pip:

pip install virtualenv

Create a new virtual environment:

virtualenv vyper-env

Activate the virtual environment:

On macOS and Linux:

source vyper-env/bin/activate

On Windows:

.\vyper-env\Scripts\activate

Install Vyper within the virtual environment:

pip install vyper

Installing Ruby

Windows:

Download the RubyInstaller for Windows from the official website. Run the installer package and follow the on-screen instructions.

Mac OS:

Ruby comes pre-installed on Mac OS X, but if you need to upgrade or install a different version, you can use Homebrew or RVM (Ruby Version Manager).

With Homebrew:

Open terminal and type brew install ruby

With RVM:

Open Terminal and type \curl -sSL https://get.rvm.io | bash -s stable Then install Ruby with rvm install ruby

Linux:

Ubuntu/Debian:

Open Terminal and type sudo apt-get install ruby-full

Arch Linux:

Open Terminal and type sudo pacman -S ruby

For other Linux distributions, the command may be different. Refer to the documentation specific to your package manager.


Installing Rails

Install Ruby if you haven't already.

MacOS:

  • Install Homebrew if you haven't already: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Install Ruby: brew install ruby
  • Install Rails: gem install rails

On Windows:

  • Download RubyInstaller from here.
  • Follow the installation steps.
  • Open command prompt and run gem install rails.

On Linux:

  • Install RVM (Ruby Version Manager): \curl -sSL https://get.rvm.io | bash -s stable --ruby
  • Install Ruby: rvm install ruby
  • Install Rails: gem install rails

Installing Elixir

Install the ElixirLS extension for VS Code: Launch VS Code, head to Extensions (or press Ctrl+Shift+X), and search for ElixirLS. This extension provides Elixir language support and debugger.

Install Elixir:

  • Windows: The easiest way to install Elixir on Windows is by using Windows Subsystem for Linux (WSL).
  • Linux: You can typically install Elixir through your distribution's package manager. For example, on Ubuntu/Debian:
sudo apt-get install elixir
  • Mac: You can use Homebrew:
brew install elixir

Installing Crystal

Linux (Ubuntu): sudo apt install crystal Linux (Arch): sudo pacman -S crystal macOS: brew install crystal Windows: Official Installation Guide

VS Code Extension:

  • Install the Crystal Language extension by The Crystal Programming Language for syntax highlighting, code completion, and more.

Installing PHP

Windows:

  • Download the PHP ZIP package from https://windows.php.net/download.
  • Extract the ZIP file and rename the extracted directory to php.
  • Move the php directory to C:.
  • Add C:\php to your system's PATH environment variable.

Mac OS:

PHP comes pre-installed on Mac OS X. To upgrade or install a different version, consider using Homebrew:

  • Open Terminal and type brew install php.

Linux (Ubuntu/Debian):

  • Open Terminal and type sudo apt install php.

Installing Laravel

Install PHP:

  • If you haven't already, you need to install PHP first to work with Laravel.

Install Laravel:

  • Make sure you have Composer installed. If not, download and install it from the Official Composer website.
  • After installing Composer, open your terminal and run composer global require laravel/installer to install Laravel.
  • You might need to add the composer's bin directory to your PATH environment variable. For example, on Windows, you would add C:\Users\<username>\AppData\Roaming\Composer\vendor\bin to your PATH and in Linux export PATH=$PATH:~/.config/composer/vendor/bin to your .bashrc file.

Installing Golang

For macOS and Linux, you can use the terminal to install Go:

  • On macOS, if you have Homebrew installed, type: brew install go.
  • On Linux, the command will depend on your distro's package manager. For example, on Ubuntu or Debian, you would type: sudo apt-get install golang.
  • On Windows, go to the official Go downloads page, and download the binary release suitable. Use the MSI installer and follow the prompts to install the Go tools. It is recommended to leave the default settings for when asked about installation directory or PATH variables.

To check your installation, open a terminal and type: go version. This should return the installed version of Go.


Installing Dart

For macOS and Linux, you can use the terminal to install Dart:

  • On macOS, if you have Homebrew installed, type: brew install dart.
  • On Linux, the command will depend on your distro's package manager. For example, on Ubuntu or Debian, you would type: sudo apt-get install dart.

For Windows, go to the official Dart SDK Install page, and download the SDK suitable for your system. Use the Dart installer and follow the prompts to install the Dart SDK. It is recommended to leave the default settings for when asked about installation directory or PATH variables.

To check your installation, open a terminal and type: dart --version. This should return the installed version of Dart.


Installing Flutter

Flutter installation includes several steps, so it's recommended to follow the official Flutter installation guide.

Installing Flutter requires also installing Dart, which you can either install separately here, but it can also be installed with Android Studio or XCode. You can use VS Code as your IDE if you like, but it is recommended to still install Android Studio for Windows and Linux or Xcode for MacOS, as they include the Android SDK and iOS SDK respectively. However, you can also install Flutter without installing Android Studio or Xcode, but you'll need to install the Android SDK and iOS SDK separately.

Install Flutter and Dart Plugins in VS Code:

  • Open VS Code and go to Extensions (Ctrl+Shift+X).
  • Search for "Flutter" and install it.
  • The Dart plugin will be automatically installed along with Flutter.

Installing Swift

Install Swift:

  • For macOS: Swift comes pre-installed. If not, you can download it from the Swift website.
  • For Linux: Follow the instructions on the Swift website for Linux installations.

VS Code Setup:

  • Search for the "Swift" extension by Swift Server Work Group and install it. This extension provides support for Swift language, including features like autocomplete, linting, and debugging.

Additional Resources:

Swift.org - Getting Started


Installing React Native

Install React Native CLI:

npm install -g react-native-cli

Set up the Android development environment by following the React Native Environment Setup.


Installing Julia

  • Windows: Download the installer from the Official Julia website and follow the instructions.
  • macOS: Download the macOS installer from the Official Julia website and follow the instructions.
  • Linux: Use the appropriate package manager for your distribution. For example in Arch Linux you would use sudo pacman -S julia, or download the binaries from the Official Julia website.

Install the Julia extension for VS Code:

  • Go to the Extensions view by clicking on the Extensions icon in the Activity Bar on the side of the window.
  • Search for "Julia" and install the extension provided by the Julia Language team.

Installing Rust

Windows:

  • Go to rust-lang.org to download the "rustup-init.exe" installer.
  • Run the installer and follow the on-screen instructions.
  • Once installation is complete, open a new Command Prompt and verify with rustc --version.

Mac and Linux:

  • Open a terminal.
  • Run the following command:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Follow the on-screen instructions.
  • Restart your terminal (or source the changes as instructed at the end of the installation) to ensure the cargo and rustc commands are available.
  • You can verify the installation with rustc --version.

Installing Haskell

Install Haskell Platform:

The Haskell Platform provides everything needed to get started with Haskell.

  • Windows: You can download the Haskell Platform from Haskell's official website.
  • Mac/Linux: You can install GHCup for Haskell by running curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh in your Terminal and following the instructions.

Install Haskell Extensions for VS Code:

  • Open VS Code, go to the Extensions view by clicking on the square icon on the sidebar or pressing Ctrl+Shift+X. Search for "Haskell Syntax Highlighting" and install it. Also, consider installing "Haskell Language Server" for enhanced features such as type information, autocompletion, and more.

Installing Lua

  • macOS: brew install lua
  • Ubuntu/Debian: sudo apt-get install lua5.3
  • Arch Linux: sudo pacman -S lua
  • Windows: Download and install from the official website: Lua.org

Installing Clojure

On macOS:

brew install clojure/tools/clojure

On Linux (using curl):

curl -O https://download.clojure.org/install/linux-install-1.10.3.967.sh
chmod +x linux-install-1.10.3.967.sh
sudo ./linux-install-1.10.3.967.sh

On Arch Linux:

sudo pacman -S clojure

On Windows:

Setting up Calva for VS Code:

  • Install the Calva extension from the VS Code marketplace. Calva is a rich integrated development environment for Clojure, providing an interactive REPL, linting, and more.

Install Leiningen, a popular Clojure build tool:

On macOS:

brew install leiningen

On Arch Linux:

sudo pacman -S leiningen

Installing OCaml

You can use the OPAM (OCaml Package Manager) to install the OCaml compiler and tools.

On macOS:

brew install opam
opam init
opam switch create 4.13.1
eval $(opam env)

On Linux (Ubuntu/Debian):

sudo apt-get install opam
opam init
opam switch create 4.13.1
eval $(opam env)

On Windows:

Installation is a bit more involved. Consider using WSL (Windows Subsystem for Linux) or refer to the official OCaml for Windows instructions.


Installing LaTeX

Depending on your operating system, you'll need a TeX distribution:

  • Windows: MikTeX or TeX Live
  • macOS: MacTeX
  • Linux: TeX Live (sudo apt-get install texlive for Debian/Ubuntu distributions)

While you can use any text editor (like VS Code) to write LaTeX, specialized LaTeX editors make the process smoother. You can download for example TeXstudio, TeXmaker, or Overleaf.


Installing Lisp

Install SBCL (Steel Bank Common Lisp):

Depending on your OS, you can follow the instructions on the Official SBCL website to install SBCL.

Install the Lisp Extension for VS Code:

  • Open Visual Studio Code.
  • Go to Extensions.
  • Search for Lisp and install any Lisp extension you like. Usually the one that has the most downloads is the most safest.

Set Up Your Lisp Environment (Windows):

After installing the extension, you may need to set up your Lisp environment by pointing it to your SBCL installation. You need to adjust the configuration (settings.json) and set the lisp.sbcl.path to the path where SBCL is installed.


Installing Fortran

Installing Fortran Compiler:

Depending on your OS, here's how you install the Fortran compiler:

Windows:

  • Download and install the MinGW-w64 compiler which includes Fortran.
  • Add the bin directory of your MinGW-w64 installation to your PATH environment variable.

Linux:

Ubuntu/Debian:

sudo apt-get install gfortran

Arch Linux:

sudo pacman -S gcc-fortran

macOS:

If you have Homebrew:

brew install gcc

Setting up Visual Studio Code:

  • Install Visual Studio Code.
  • Open VS Code and go to the Extensions view by clicking on the square icon on the sidebar or pressing Ctrl+Shift+X.
  • Search for and install the "Modern Fortran" extension for Fortran support.
  • For better integration, you can also install the "Code Runner" extension which will allow you to run your Fortran code directly from VS Code.

Installing Pascal

Windows:

  • Download and install the Free Pascal compiler from here.
  • Install the Pascal extension from the Visual Studio Code marketplace.
  • Configure the path for the Free Pascal compiler in your settings if needed.

Linux:

  • Install the Free Pascal compiler using your package manager, e.g., sudo apt install fp-compiler on Ubuntu.
  • Install the Pascal extension from the Visual Studio Code marketplace.
  • Configure the path for the Free Pascal compiler in your settings if needed.

macOS:

  • Install Free Pascal via Homebrew with brew install fpc.
  • Install the Pascal extension from the Visual Studio Code marketplace.
  • Configure the path for the Free Pascal compiler in your settings if needed.

Installing COBOL

Installing GnuCOBOL:

  • For Windows: Download from SourceForge.
  • For Linux: Use the package manager, like sudo apt install gnucobol or equivalent for your distribution.
  • For macOS: Use Homebrew with brew install gnu-cobol.

Installing Erlang

Windows:

  • Download the installer from the official Erlang website: Erlang Downloads
  • Run the installer and follow the on-screen instructions.

Linux: Ubuntu/Debian:

sudo apt-get install erlang

Arch Linux:

sudo pacman -S erlang

macOS:

Using Homebrew:

brew install erlang

Setting up VS Code extension:

  • Search for erlang and install the Erlang extension provided by "Pierrick Gourlain".

Installing Smalltalk

If you're using Linux, you can install GNU Smalltalk through your package manager. For example, on Ubuntu:

sudo apt-get install gnu-smalltalk

In Arch Linux you can download Smalltalk packages from AUR repositories. For example, you can use Yay:

yay -S smalltalk

For other OS installations, you can visit GNU Smalltalk official website.


Installing Zig

Windows and macOS:

  • Download the Zig compiler from the official Zig website: Zig Downloads
  • Extract the downloaded package to a directory of your choice.
  • Add the bin directory inside the extracted folder to your system's PATH.

Linux:

The command depends on your distribution.

For example, on Ubuntu/Debian, you can use:

sudo apt-get install zig

In Arch Linux:

sudo pacman -S zig

Setting up VS Code extension:

  • Open the Extensions view (Ctrl+Shift+X).
  • Search for zig and install the Zig Language extension provided by "ziglang".

Installing R

Windows:

  • Download R from CRAN and install it.
  • Download Rtools and install it.
  • Add R and Rtools to your system PATH.

macOS:

  • You can install R using Homebrew: brew install R.

Linux:

  • Use your package manager to install R. For example, on Ubuntu: sudo apt-get install r-base and on Arch: sudo pacman -S r.

Setting up VS Code extension:

  • Open the Extensions view (Ctrl+Shift+X).
  • Search for R and install the R extension provided by "REditorSupport".

Installing Nim

On Windows:

  • Download the Nim installer from the Official Nim website and follow the installation instructions.

On macOS:

  • You can use Homebrew to install Nim. Open your terminal and run brew install nim.

On Linux:

  • You can use a package manager like apt, dnf, or pacman to install Nim. For example, on Ubuntu/Debian-based systems, run sudo apt-get install nim or on Arch Linux sudo pacman -S nim.

Installing MATLAB

Install MATLAB:

  • Ensure you have MATLAB installed on your computer. You can download and install MATLAB from the official MathWorks website: Download MATLAB

Install the MATLAB Extension for Visual Studio Code:

  • Open Visual Studio Code and go to the Extensions view by clicking on the square icon in the sidebar on the left or using the shortcut Ctrl+Shift+X (Windows/Linux) or Cmd+Shift+X (macOS).
  • Search for "MATLAB" in the Extensions view search bar. You should find an extension named "MATLAB" by MathWorks. Click the Install button to install it.

Configure the MATLAB Extension:

  • Once the extension is installed, configure it to work with your MATLAB installation. You may need to specify the MATLAB executable path in the VS Code settings.

Installing Octave

Install Octave:

  • Download and install Octave for your operating system from the official Octave website.

Install the Octave extension for VS Code:

  • Open VS Code, go to the Extensions view by clicking on the square icon in the sidebar or pressing Ctrl+Shift+X, and search for "Octave". Install the "Octave" extension provided by Juan Manuel Franco C.

Installing sqlite3

macOS and Linux:

SQLite comes pre-installed on macOS and most Linux distributions. To verify if sqlite3 is installed, you can open a terminal and type:

sqlite3 --version

If SQLite is installed, this will output the version number.

Windows:

To install SQLite on Windows:

  • Visit the SQLite download page.
  • In the "Precompiled Binaries for Windows" section, download the sqlite-tools-win32-x86-xxxxxx.zip file.
  • Unzip the downloaded file. It will create a directory named sqlite-tools-win32-x86-xxxxxx.
  • Move the directory to C:\ (or another location if you prefer) and rename it to sqlite.
  • Add C:\sqlite to your PATH environment variable.

To check whether SQLite has been installed successfully, open Terminal window and run:

sqlite3 --version

This should output the version number if SQLite is installed correctly.

Note that the terminal in Visual Studio Code (VS Code) uses your system's PATH, so once you've added SQLite to your PATH as described above, you'll be able to use SQLite in the VS Code terminal.


Installing TLA+ Toolbox

The TLA Toolbox is an IDE (integrated development environment) for the TLA+ tools.

Install the TLA+ Toolbox: This is the standard IDE for TLA+. You can download it from here.

Install the TLA+ extension for Visual Studio Code from the VS Code marketplace.


Installing Bash

Ensure you have a UNIX-like environment. If you're on Linux or MacOS, you're already set. Windows users might want to look into WSL (Windows Subsystem for Linux) or use Git Bash, which you should already have in your machine if you have installed Git.


Installing Perl

  • Windows: Use Strawberry Perl. Download the installer and follow the on-screen instructions.
  • macOS: Perl comes pre-installed. You can check its version by typing perl -v in your terminal.
  • Linux: Depending on your distribution, you can use your package manager. For example, on Debian-based systems, you can use sudo apt-get install perl and in Arch Linux sudo pacman -S perl.

Setting up VS Code for Perl:

  • Search for the extension "Perl" in VS Code's extensions marketplace and install it for syntax highlighting and basic debugging support.

Installing Mojo

macOS

  • Install Brew by following this guide.
  • Open a terminal and run the following commands:
brew update
brew upgrade modular
modular install mojo

Linux (Ubuntu/Debian)

To install Mojo on Linux (Ubuntu/Debian), you need to install Modular first. Follow these steps:

sudo apt update
sudo apt install modular
modular install mojo

Installing ASM (Assembly)

Windows

Using NASM with Cygwin:

  • Download the Cygwin installer from Cygwin's website.
  • Run the installer and select the packages "nasm" and "gcc-core" for installation.
  • Complete the installation process.

Now you can use the Cygwin terminal to assemble and run your Assembly programs.

Linux (Ubuntu/Debian)

Open the terminal and run the following command to install GNU Assembler (GAS):

sudo apt update
sudo apt install build-essential

To install NASM, run:

sudo apt install nasm

macOS

Install NASM using Homebrew:

brew install nasm

Installing Docker

Windows

  • Docker Desktop for Windows: You must have Hyper-V and Containers Windows features enabled.

    • Download the installer from Docker Hub.
    • Run the installer and follow the instructions.
    • After installation, the Docker daemon should start automatically. You can manage it through the system tray.
  • Docker Toolbox: For older systems that do not meet the Docker Desktop for Windows requirements.

macOS

  • Docker Desktop for Mac:
    • Download the installer from Docker Hub.
    • Drag and drop the Docker app into the Applications folder.
    • Run the Docker app. Docker will prompt you for permissions to install its components. Allow it.

Linux (Ubuntu/Debian)

Update package index and install prerequisites:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

Add Docker’s official GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Add Docker APT repository:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Update package index and install Docker:

sudo apt-get update
sudo apt-get install docker-ce

Start and enable Docker service:

sudo systemctl enable docker
sudo systemctl start docker

After installation on any of these platforms, you can verify the installation by running docker --version in a terminal to see the installed Docker version.

Remember to consult the official documentation for the most up-to-date and detailed instructions:


Installing Kubernetes

  • Install Docker if you haven't already.
  • Install kubectl, the Kubernetes CLI tool.
  • Install Minikube for local Kubernetes deployment.

line

Setup Instructions

  1. Fork this repository by clicking on the "Fork" button at the top-right corner of this page. This creates a copy of the repository in your GitHub account.

Fork

  1. Clone your forked repository by clicking the "Code" button:

Code

That will open this small window:

Clone

After that you can copy and paste the URL the to your local machine with the command:

git clone https://github.com/<your-username>/fork-commit-merge.git

Replace 'your-username' with your GitHub username.

  1. Navigate to your project folder:
cd fork-commit-merge
  1. Add a reference to the original repository for future updates:
git remote add upstream https://github.com/fork-commit-merge/fork-commit-merge.git

(Remember to keep here the original repository URL, not your forked one, so the username in this needs to be fork-commit-merge, not your own username.)

  1. Check the remotes for this repository:
git remote -v

You should now see the origin and upstream remotes listed.

  1. Take a pull from the upstream repository to your main branch to keep it at par with the main project:
git pull upstream main
  1. Create a new branch with the command:
git switch -c fix-issue

Now you are ready to start working on the issues! Remember every once in a while to pull from the upstream repository to keep your local repository up to date with the main project.

If you are not familiar about the contribution process, you can check out some useful videos in our website's Resources section: forkcommitmerge.io/resources.

Note: We recommend to always create new branch with each Issue you solve! Otherwise the pull requests will get too large and there could be possible merge conflicts.

Tasks

Note: These tasks will not count towards Hacktoberfest or any other similar "coding competitions", since this repository is an educational repository, hence against the Hacktoberfest guidelines.

We present over 130 several tasks for different languages, libraries and frameworks with varying difficulty. You can choose which task you want to work with and which difficulty you want to solve. You can also choose to solve multiple tasks if you want to. Just remember to create a new branch for each task you solve.

Firstly, open the tasks directory and select which language you want to work with by opening one of the following directories:

  • HTML
  • HTMX
  • CSS
  • SASS
  • Tailwind CSS
  • Bootstrap CSS
  • ReScript
  • CoffeeScript
  • JavaScript
  • JavaScript/Jest
  • JavaScript/Jasmine
  • TypeScript
  • TypeScript/Vitest
  • React
  • Next.js
  • Three.js
  • Vue.js
  • Svelte
  • Astro
  • Angular
  • Ember.js
  • GraphQL
  • NGINX
  • Express.js
  • Electron.js
  • C
  • C++
  • C#
  • Blazor
  • D
  • F#
  • Ada
  • Java
  • Kotlin
  • Scala
  • Groovy
  • Python
  • Flask
  • Django
  • Solidity
  • Vyper
  • Ruby
  • Rails
  • Elixir
  • Crystal
  • PHP
  • Laravel
  • Go
  • Dart
  • Flutter
  • Swift
  • React Native
  • Julia
  • Rust
  • Haskell
  • Lua
  • Clojure
  • OCaml
  • LaTeX
  • Lisp
  • Fortran
  • Pascal
  • COBOL
  • Erlang
  • Smalltalk
  • Zig
  • R
  • Nim
  • MATLAB
  • Octave
  • SQL
  • TLA+
  • Bash
  • Perl
  • Mojo
  • ASM (Assembly)
  • JSON
  • YAML
  • TOML
  • XML
  • Markdown
  • Docker
  • Kubernetes

Then you can open one of these directories to choose between three difficulties:

  • Easy
  • Medium
  • Hard

After that you are ready to get solving!

Go to the task you selected to get more info about the issue by clicking one of the following:

HTML - Easy 1

HTML - Easy 2

HTML - Easy 3

HTML - Medium

HTML - Hard

HTML/CSS/JavaScript - Hard

HTMX - Easy

CSS - Easy

CSS - Medium 1

CSS - Medium 2

CSS - Hard

SASS - Easy

SASS - Medium

Tailwind CSS - Easy

Tailwind CSS - Medium

Bootstrap CSS - Easy

Bootstrap CSS - Medium

ReScript - Easy

CoffeeScript - Easy

CoffeeScript - Medium

JavaScript - Easy

JavaScript - Medium

JavaScript/Jest - Medium

JavaScript/Jest - Hard

JavaScript/Jasmine - Easy

TypeScript - Easy

TypeScript - Medium

TypeScript - Hard

TypeScript/Vitest - Easy

React.js - Easy

React.js - Medium 1

React.js - Medium 2

Next.js - Easy

Three.js - Easy

Vue.js - Easy

Vue.js - Medium

Svelte - Easy

Astro - Easy

Angular - Easy

Ember.js - Easy

GraphQL - Easy

NGINX - Easy

Express.js - Easy

Electron.js - Easy

C - Easy

C - Medium

C++ - Easy 1

C++ - Easy 2

C++ - Easy 3

C++ - Easy 4

C++ - Medium 1

C++ - Medium 2

C++ - Hard

C# - Easy

Blazor - Easy

D - Easy

F# - Easy

Ada - Easy

Java - Easy

Java - Medium

Java - Hard

Kotlin - Easy

Scala - Easy

Groovy - Easy

Python - Easy 1

Python - Easy 2

Python - Easy 3

Python - Medium

Python - Hard

Flask - Easy

Django - Easy

Solidity - Easy

Vyper - Easy

Ruby - Easy 1

Ruby - Easy 2

Ruby - Medium

Rails - Easy

Elixir - Easy

Crystal - Easy

PHP - Easy 1

PHP - Easy 2

PHP - Easy 3

PHP - Medium

Laravel - Easy

Go - Easy

Dart - Easy 1

Dart - Easy 2

Dart - Easy 3

Dart - Easy 4

Flutter - Easy

Swift - Easy

React Native - Easy

Julia - Easy

Rust - Easy

Rust - Medium

Haskell - Easy

Haskell - Medium

Lua - Easy

Clojure - Easy

OCaml - Easy

LaTeX - Easy

Lisp - Easy

Fortran - Easy

Pascal - Easy

Pascal - Medium

COBOL - Easy

Erlang - Easy

Smalltalk - Easy

Zig - Easy

R - Easy

Nim - Easy

MATLAB - Easy

Octave - Easy

SQL - Easy

SQL - Medium

SQL - Hard

TLA+ - Easy

Bash - Easy

Bash - Medium

Perl - Easy

Mojo - Easy

ASM (Assembly) - Easy

Markdown - Easy

Markdown - Medium

Markdown - Hard

JSON - Easy

JSON - Medium

TOML - Easy

XML - Easy

YAML - Easy

YAML/Docker - Medium

Docker - Easy

Kubernetes/YAML - Easy

Note: You don't have to ask a permission to start solving the issue or get assigned, since these issues are supposed to always be open for new contributors. You can just simply start working with the issue right away! Remember that in real world issues you would usually need to ask permission to get assigned to certain issue to prevent multiple people to working on the same issue at the same time, which would result some contributors wasting their time.

line

Submitting Your Changes

Once you've made the necessary changes requested in the task, you're ready to submit your changes!

  1. Stage your changes with the command:
git add files-that-you-changed
  1. Commit your changes with the command:
git commit -m "Fixed issue"
  1. Push your changes to your forked repository with the command:
git push origin fix-issue

Once you've pushed your changes to GitHub, you're ready to create a pull request. Go to your forked repository on GitHub.

  • You should see text "fix-issue had recent pushes" (or whatever your branch name is) and button "Compare & pull request" next to it.

Compare & Pull request

  • Click the "Compare & pull request" button to proceed to the pull request page of the original fork-commit-merge repository.

  • Fill in the title and description boxes to inform what you did in the task and how you got it to work. You can also add some additional information such as screenshots, if you want or if they are required in the task description.

  • Finally, click "Create pull request" to finish creating the pull request.

Congratulations on making your first open source contribution on GitHub!

Sit back and wait for a response and feedback of the pull request. If everything is working fine, you should get the pull request merged. If not, you will be requested to do some changes to your code.

Remember to wait for us to review your pull request, do not close it yourself. If you are asked to make changes, you can do so by committing them to the same branch, there is no need to close the current Pull Request and open a new one. If you don't respond to the review and make the necessary changes within 4 days, the Pull Request will be closed automatically.

After the merge, actions-user bot will reset the files for the next contributor.

All the contributors of this project will also be added to the List of Contributors in our website.

line

Best Practices

Programming languages, despite their diverse syntax and underlying paradigms, universally emphasize the importance of adhering to best practices. These practices evolve over time, influenced by shared challenges faced by developers, innovations in the field, and the inherent features and limitations of the languages themselves. This section serves as a compass, guiding you through the idiomatic ways of coding in various languages, ensuring not only that your code works but also that it aligns with the conventions and norms of the community.

Why Follow Best Practices?

  • Readability: Code is read more often than it's written. Adopting best practices ensures your code remains accessible and comprehensible to other developers, or even to your future self!

  • Maintainability: Idiomatic code, by adhering to established patterns and standards, is easier to update, debug, and expand upon.

  • Performance: Often, best practices evolve in response to the understanding of a language's performance characteristics. Writing idiomatic code might also mean squeezing the best performance out of your programs.

  • Community Support: If you're writing code in the way that the broader community expects, you're more likely to receive help when you run into issues. Moreover, you can benefit from tools, linters, and extensions built with these practices in mind.

  • Reducing Errors: Many best practices are born from the lessons of countless debugged issues. By adhering to them, you’re sidestepping many pitfalls before they even occur.

In our Fork, Commit, Merge website, you'll find guides tailored to various languages, libraries and frameworks. Whether you're dabbling in a new language or revisiting a familiar one, these insights will help ensure your code is elegant, efficient, and effective.

line

Influences

This project was inspired by a number of fantastic resources designed to help newcomers make their first contributions to open source. In particular, we would like to acknowledge:

I highly recommend checking out these projects if you want to learn more about contributing to open source!

line

What's Next?

Congratulations on making your first open source contribution! If you're looking for more ways to contribute, you are also welcome to work with the Fork, Commit, Merge website repo, which is located here. The website is built with React.js, NextJS, TypeScript, TailwindCSS, MongoDB Atlas and Clerk. So if you are interested of those technologies, you can contribute to the website repo by creating new features, fixing bugs or improving the code quality.

You can also check out more information about how to make open source contributions in How to Contribute of our website.

Also i would really appreciate if you could leave a star, so more developers can find this project. I look forward to seeing your contributions!

line

Sponsors

You can sponsor this project by clicking the "Sponsor" button at the top of this page.

Sponsor

Your sponsorship will help me to keep this project alive and to continue developing it further. You will also get your name and/or logo listed in our website at forkcommitmerge.io as well as in this repository.

You can also support me by buying me a coffee at buymeacoffee.com/nikohoffren or clicking the "Buy me a coffee" button at the header of our website.

line

Leaderboard

You can find the leaderboard of the Top 20 contributors in our website at https://forkcommitmerge.io/leaderboard. You can also find all of your own contributions to this project in the Dashboard of our website when you log in.

line

Creating New Tasks

Feel free to contribute to this project also by creating new tasks for other contributors to tackle. To do so, please submit a pull request containing detailed information about the task, such as level of difficulty, language/library/framework or other technology, and relevant code examples. We encourage you to propose tasks across all different programming languages, libraries, frameworks and other technologies in the world.

line

Contact

For any queries, feel free to open an issue or reach out to me at [email protected].

line

License

This project is licensed under the terms of the MIT License.

line

List of Contributors

Massive thanks to all of the these fine individuals who contributed to this project!