Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.0.0 #163

Draft
wants to merge 1 commit into
base: v2
Choose a base branch
from
Draft

Release v2.0.0 #163

wants to merge 1 commit into from

Conversation

AldaronLau
Copy link
Member

@AldaronLau AldaronLau commented Mar 7, 2025

Release v2.0.0

Regression testing plan for all platforms

  • Testing complete on Fedora Silverblue 41.

    Linux / Fedora Silverblue Testing Open a terminal (outside of toolbox), and:
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release
    cargo run --example os-strings
    cargo run --example os-strings --release

    Expect to see something like:

    WhoAmI 1.5.0
    
    User's Language        whoami::langs():               en/US
    User's Name            whoami::realname():            Jeron Lau
    User's Username        whoami::username():            jeron
    User's Username        whoami::fallible::account():   jeron
    Device's Pretty Name   whoami::devicename():          Zetêy
    Device's Hostname      whoami::fallible::hostname():  zetey
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Fedora Linux 39.20240202.0 (Silverblue)
    Device's Desktop Env.  whoami::desktop_env():         Gnome
    Device's CPU Arch      whoami::arch():                x86_64
    WhoAmI 1.5.0
    
    User's Language        whoami::langs():                 "en/US"
    User's Name            whoami::realname_os():           "Jeron Lau"
    User's Username        whoami::username_os():           "jeron"
    User's Account         whoami::fallible::account_os():  "jeron"
    Device's Pretty Name   whoami::devicename_os():         "Zetêy"
    Device's Hostname      whoami::fallible::hostname():    "zetey"
    Device's Platform      whoami::platform():              Linux
    Device's OS Distro     whoami::distro():                "Fedora Linux 39.20240202.0 (Silverblue)"
    Device's Desktop Env.  whoami::desktop_env():           Gnome
    Device's CPU Arch      whoami::arch():                  X64

    Now, toolbox enter, and do the same. Expecting something like:

    WhoAmI 1.5.0
    
    User's Language        whoami::langs():               en/US
    User's Name            whoami::realname():            Jeron Lau
    User's Username        whoami::username():            jeron
    User's Username        whoami::fallible::account():   jeron
    Device's Pretty Name   whoami::devicename():          toolbox
    Device's Hostname      whoami::fallible::hostname():  toolbox
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Fedora Linux 39 (Container Image)
    Device's Desktop Env.  whoami::desktop_env():         Gnome
    Device's CPU Arch      whoami::arch():                x86_64
    WhoAmI 1.5.0
    
    User's Language        whoami::langs():                 "en/US"
    User's Name            whoami::realname_os():           "Jeron Lau"
    User's Username        whoami::username_os():           "jeron"
    User's Account         whoami::fallible::account_os():  "jeron"
    Device's Pretty Name   whoami::devicename_os():         "toolbox"
    Device's Hostname      whoami::fallible::hostname():    "toolbox"
    Device's Platform      whoami::platform():              Linux
    Device's OS Distro     whoami::distro():                "Fedora Linux 39 (Container Image)"
    Device's Desktop Env.  whoami::desktop_env():           Gnome
    Device's CPU Arch      whoami::arch():                  X64
  • Testing complete on Ubuntu Linux 23.10

    Ubuntu Virtualized on Fedora Silverblue Testing

    Install from file within GNOME boxes (keep all defaults).

    In Ubuntu Installer, do default installation.

    sudo apt install git curl gcc tig # y
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 1
    source "$HOME/.cargo/env"

    Clone whoami, open a terminal, and run:

    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expect to see something like:

    WhoAmI 1.5.0
    
    User's Language        whoami::langs():               en/US
    User's Name            whoami::realname():            Jeron Lau
    User's Username        whoami::username():            aldaron
    User's Username        whoami::fallible::account():   aldaron
    Device's Pretty Name   whoami::devicename():          ubuntu-box
    Device's Hostname      whoami::fallible::hostname():  ubuntu-box
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Ubuntu 23.10
    Device's Desktop Env.  whoami::desktop_env():         Ubuntu
    Device's CPU Arch      whoami::arch():                x86_64
  • Testing complete on Windows 10

    Windows Testing Clone whoami, open Git BASH, and run:
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expect to see something like:

    WhoAmI 1.5.0
    
    User's Language        whoami::langs():               en/US
    User's Name            whoami::realname():            Aldaron Lau
    User's Username        whoami::username():            Aldaron Lau
    User's Username        whoami::fallible::account():   Aldaron Lau
    Device's Pretty Name   whoami::devicename():          Helpy-Witch
    Device's Hostname      whoami::fallible::hostname():  HELPY-WITCH
    Device's Platform      whoami::platform():            Windows
    Device's OS Distro     whoami::distro():              Windows 10.0.19044 (Workstation)
    Device's Desktop Env.  whoami::desktop_env():         Windows
    Device's CPU Arch      whoami::arch():                x86_64
  • Testing complete on macOS Catalina

    MacOS Testing Clone whoami, and run:
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expect to see something like:

    WhoAmI 1.5.0
    
    User's Language        whoami::langs():               en/US
    User's Name            whoami::realname():            Aldaron Lau
    User's Username        whoami::username():            aldaronlau
    User's Username        whoami::fallible::account():   aldaronlau
    Device's Pretty Name   whoami::devicename():          Aldaron’s MacBook Air
    Device's Hostname      whoami::fallible::hostname():  Aldarons-MacBook-Air.local
    Device's Platform      whoami::platform():            Mac OS
    Device's OS Distro     whoami::distro():              Mac OS X 10.15.7
    Device's Desktop Env.  whoami::desktop_env():         Aqua
    Device's CPU Arch      whoami::arch():                x86_64
  • Testing complete on FreeBSD

    FreeBSD (virtualized on Fedora Silverblue) Testing Download from within GNOME Boxes.

    Set 4 GiB memory, and 20 GiB Storage limit

    Go through the installation process, keeping all defaults.

    Install packages

    Log in as root

    pkg install git

    Log in as you

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 1
    . "$HOME/.cargo/env"
    git clone https://github.com/ardaku/whoami.git
    cd whoami
    # run both debug and release
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expect to see something like:

    WhoAmI 1.5.0
    
    User's Language        whoami::langs():               
    User's Name            whoami::realname():            Aldaron Lau
    User's Username        whoami::username():            aldaron
    User's Username        whoami::fallible::account():   aldaron
    Device's Pretty Name   whoami::devicename():          bsdtime
    Device's Hostname      whoami::fallible::hostname():  bsdtime
    Device's Platform      whoami::platform():            BSD
    Device's OS Distro     whoami::distro():              FreeBSD 14.0-RELEASE
    Device's Desktop Env.  whoami::desktop_env():         Unknown: Unknown
    Device's CPU Arch      whoami::arch():                x86_64
  • Testing complete on illumos

    Tribblix (virtualized on Fedora Silverblue) Testing

    Download the 64-bit x86/x64 standard image.

    Install it in GNOME Boxes (select operating system OpenIndiana Hipster).

    Set 4 GiB memory, and 16 GiB Storage limit

    Login as jack (password jack)

    su - root # password `tribblix`
    format # 0, quit
    ./live_install -G c1t0d0 develop # replace c1t0d0 with disk
    reboot -p

    Login as jack (password jack)

    Now, install Rust (use bash instead of sh, sh doesn't work)

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash # 1
    source "$HOME/.cargo/env"

    Testing

    git clone https://github.com/ardaku/whoami.git
    cd whoami
    # run both debug and release
    cargo run --example whoami-demo
    cargo run --example whoami-demo --release

    Expected output is

    WhoAmI 1.5.0
    
    User's Language        whoami::langs():               ??
    User's Name            whoami::realname():            Tribblix Jack
    User's Username        whoami::username():            jack
    Device's Pretty Name   whoami::devicename():          tribblix
    Device's Hostname      whoami::fallible::hostname():  tribblix
    Device's Platform      whoami::platform():            illumos
    Device's OS Distro     whoami::distro():              Tribblix
    Device's Desktop Env.  whoami::desktop_env():         Unknown: Unknown
    Device's CPU Arch      whoami::arch():                Unknown: i86pc
  • Testing complete on Redox

    Redox (virtualized on Fedora Silverblue) Testing

    Update Rust Nightly and Stable

    rustup update nightly stable
    rustup target add --toolchain stable x86_64-unknown-redox

    Install pre-requisites

    sudo dnf install git file autoconf vim bison flex genisoimage gperf glibc-devel.i686 expat expat-devel fuse-devel fuse3-devel gmp-devel perl-HTML-Parser libpng-devel libtool libjpeg-turbo-devel libvorbis-devel SDL2_ttf-devel mesa-libOSMesa-devel m4 nasm po4a syslinux texinfo sdl12-compat-devel ninja-build meson python3-mako make gcc gcc-c++ openssl patch automake perl-Pod-Html perl-FindBin gperf curl gettext-devel perl-Pod-Xhtml pkgconf-pkg-config cmake cbindgen just mpfr-devel qemu doxygen 'perl(ExtUtils::MakeMaker)'
    
    cargo install --locked --force --version 0.1.1 cargo-config

    Get redox source

    mkdir -p build/
    cd build/
    git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
    cd redox
    git submodule update --recursive --init

    Create our demo recipe

    Back in the root whoami directory, make sure whome is updated to the whoami
    testing branch.

    mkdir -p build/redox/cookbook/recipes/demos/whome/
    cp recipe.toml build/redox/cookbook/recipes/demos/whome/
    cp build/redox/config/desktop.toml build/redox/config/x86_64/ardaku.toml

    In build/redox/config/x86_64/ardaku.toml, under [packages], add:

    whome = {}

    Select the config

    IN build/redox/mk/config.mk, set:

    CONFIG_NAME?=ardaku

    Build Redox

    Back in cd build/redox, this takes a while

    make all

    or

    make rebuild

    Run Redox

    make qemu

    Test it

    Verify you are on the new version

    whome --version

    Default settings should output:

    realname:     user
    username:     user
    devicename:   redox
    hostname:     redox
    distro:       Redox OS 0.9.0
    desktop_env:  Orbital
    platform:     Redox
    arch:         Unknown: x86_64
  • Testing complete on Web

    Build web example and start webserver on Fedora Silverblue Check the web console in Firefox:
    User's Name            whoami::realname():            Anonymous
    User's Username        whoami::username():            anonymous
    User's Language        whoami::langs():               en/US, en
    Device's Pretty Name   whoami::devicename():          Firefox 122.0
    Device's Hostname      whoami::fallible::hostname():  localhost
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Unknown Linux
    Device's Desktop Env.  whoami::desktop_env():         Web Browser
    Device's CPU Arch      whoami::arch():                wasm32

    Check the web console in Opera:

    User's Name            whoami::realname():            Anonymous
    User's Username        whoami::username():            anonymous
    User's Language        whoami::langs():               en/US, en
    Device's Pretty Name   whoami::devicename():          Opera 107.0.0.0
    Device's Hostname      whoami::fallible::hostname():  localhost
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Unknown Linux
    Device's Desktop Env.  whoami::desktop_env():         Web Browser
    Device's CPU Arch      whoami::arch():                wasm32

    Check the web console in Chrome:

    User's Name            whoami::realname():            Anonymous
    User's Username        whoami::username():            anonymous
    User's Language        whoami::langs():               en/US, en
    Device's Pretty Name   whoami::devicename():          Chrome 122.0.0.0
    Device's Hostname      whoami::fallible::hostname():  localhost
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Unknown Linux
    Device's Desktop Env.  whoami::desktop_env():         Web Browser
    Device's CPU Arch      whoami::arch():                wasm32

    Check the web console in Ungoogled Chromium:

    User's Name            whoami::realname():            Anonymous
    User's Username        whoami::username():            anonymous
    User's Language        whoami::langs():               en/US, en
    Device's Pretty Name   whoami::devicename():          Chrome 122.0.0.0
    Device's Hostname      whoami::fallible::hostname():  localhost
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Unknown Linux
    Device's Desktop Env.  whoami::desktop_env():         Web Browser
    Device's CPU Arch      whoami::arch():                wasm32

    Check the web console in GNOME Web (Epiphany):

    User's Name            whoami::realname():            Anonymous
    User's Username        whoami::username():            anonymous
    User's Language        whoami::langs():               en/US
    Device's Pretty Name   whoami::devicename():          GNOME Web
    Device's Hostname      whoami::fallible::hostname():  localhost
    Device's Platform      whoami::platform():            Linux
    Device's OS Distro     whoami::distro():              Unknown Linux
    Device's Desktop Env.  whoami::desktop_env():         Web Browser
    Device's CPU Arch      whoami::arch():                wasm32

Changelog

Added

  • Added LanguagePrefs

Changed

  • MSRV updated to 1.65, upgraded to 2021 edition
  • Rename Platform::MacOS to Platform::Mac
  • Rename Platform::Nintendo to Platform::Nintendo3ds
  • When checking pointer width, if can't be determined return ErrorKind::Unsupported instead of ErrorKind::Other
  • *::Unknown(_) variants are now defined at the top of enums
  • Updated redox_syscall to v0.5.1
  • desktop_env() now returns an Option - returning None when no desktop environment is applicable (such as over SSH)

Removed

  • Removed Platform::Xbox
  • Remove all infallible function variants, and remove the fallible module, moving those functions to the root module
  • Remove deprecated lang()
  • Remove langs() in favor of lang_prefs()

@AldaronLau AldaronLau added this to the v2.0.0 milestone Mar 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant