How to Contribute

1. Formatting rules

before committing, be sure that pre-commit hooks are installed in the repository. It will ensure during commit to:

  • format the files
  • check for errors

2. How to prepare a new image

Here the solution to test this solution without impacting your current distribution or in order to generate a wsl distribution

2.1. Prepare distribution

  • Download ubuntu distribution archive and unpack it
Remove-Item alias:curl
curl.exe -L -o ubuntu-2004.appx https://aka.ms/wslubuntu2004
Rename-Item ./ubuntu-2004.appx ./ubuntu-2004.zip
Expand-Archive ./ubuntu-2004.zip ./Ubuntu-2004
  • If ubuntu distribution is not already installed on your computer, just run
.\Ubuntu-2004\ubuntu.exe
  • Else you have to import tar file

2 Optional steps: you can manually extract ./Ubuntu-2004/install.tar.gz to ./Ubuntu-2004/install.tar from 7Zip App.

(optional) first install 7zip for powershell using powershell as Administrator

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Set-PSRepository -Name 'PSGallery' -SourceLocation "https://www.powershellgallery.com/api/v2" -InstallationPolicy Trusted
Install-Module -Name 7Zip4PowerShell -Force
  • (optional) Extract ./Ubuntu-2004/install.tar.gz to ./Ubuntu-2004/install.tar
Expand-Archive ./Ubuntu-2004/install.tar.gz ./Ubuntu-2004/install.tar
Expand-7Zip -ArchiveFileName ./Ubuntu-2004/install.tar.gz -TargetPath ./Ubuntu-2004
  • Import and run the distribution
wsl --import UbuntuTest .\UbuntuTest ./Ubuntu-2004/install.tar --version 2
wsl -d UbuntuTest
  • As root create wsl user and make wsl user as default login
useradd -m wslTest --create-home
chsh -s "$(which bash)" wslTest
# add user to group sudo
usermod -a -G sudo wslTest
passwd wslTest
  • Finally launching distro will always launch terminal using root user

to use wsl as default, I suggest to create a terminal profile with the following command wsl.exe -d UbuntuTest -u wslTest

2.2. install the project

Follow Install instruction

3. Prepare a tar image for sharing

Follow Install instruction

Ensure you are using wsl user login name instead of wslTest.

And install the project using this command

sudo ./install -p default --prepare-export

This will remove any sensitive files at the end of the process.

3.1. export the image

export the wsl image

wsl --shutdown
wsl --export WslDevEnv WslDevEnv.tar
wsl.exe gzip /mnt/c/programs/WslDevEnv.tar

3.2. import the image

mkdir C:\Programs\WslDevEnv
wsl.exe --import WslDevEnv C:\Programs\WslDevEnv C:\Programs\WslDevEnv.tar.gz

3.3. run again the installation

Follow Install instruction it will build docker images and copy missing files on the new computer

Or, if you want, you can alternatively use the GitHub discussion Q&A for feedback and questions.