Skip to content

Latest commit

 

History

302 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WΣMI (Windows Environment Modulefiles Installer)

pre-commit version License

WEMI is a Experimential, Python based Environment Modules generator and installer, targeting on Windows 10/11 systems to solving enviromnent setups.

WEMI will scan, compile and install tcl Modulefiles to your Environment Modules system on your device.

Intel oneAPI   AMD HIP SDK   ROCm/TheRock   NVIDIA CUDA/CUDA-X   VS2017   VS2019   VS2022   VS2026   MATLAB   Strawberry Perl   Cangjie-Lang  
Honkai Impact 3   Genshin Impact   Honkai: Star Rail   ZZZ   Honkai: Nexus Anima   Petit Planet

Early State development

As WEMI declared current development status is in Early State development and version is InfDev status, WEMI will take several/lot of rolling destructable/refactoring changes, and not recieveng PR requests before a future stable release.

Issues and disscutions are open welcomed.

CI status (Under maintainence: Refactoring CI Task)

CI Testing are based on windows-2025 runner.

Status will be blank as the test case is pending for CI design.

  • Windows Platform

    Platform Support Status
    Windows AMD64
    Windows ARM64
  • pre-commit, Python 3 version test

    task information/details status
    pre-commit pre-commit pre-commit-ci-badge
    Python test uv, CPython 3.10.13 python-310-badge
    Python test uv, CPython 3.11.9 python-311-badge
    Python test uv, CPython 3.12.13 python-312-badge
    Python test uv, CPython 3.13.12 python-313-badge
    Python test uv, CPython 3.14.2 python-314-badge
    Python test uv, CPython 3.15.0a python-315-badge
  • Compiler smoke test

    • Note: NVIDIA CUDA 13.4 Toolkit has been local tested via my PC, but have no official release from winget.

      NVIDIA CUDA Toolkit Modulefile rule is using $(env:VSCMD_ARG_TGT_ARCH) follows host compiler cl.exe to select correct target platform. So there's no need major fix.

    task toolchain Local build CI status
    Visual C/C++ MSVC v145 msvc-badge
    MSVC v143
    MSVC v142
    MSVC v141
    Windows SDK Combined test with VC++
    Intel oneAPI MSVC v145, oneAPI latest intel-badge
    NVIDIA CUDA MSVC v145, CUDA 13.2 cuda-badge
    NVIDIA CUDA MSVC v145, CUDA 13.4 No avail winget install binary installer
    NVIDIA HPC SDK NVHPC Latest Pending for Windows x64 release
    AMD HIP SDK MSVC v145, HIP ??? No avail release via winget
    AMD ROCm/TheRock MSVC v145, TheRock 7.XX No avail release via winget
    Embarcadero C++ C++ builder 12 Pending
    Cangjie Language Cangjie LTS cangjie-badge
    Swift Language ---- Pending
    Rust Language ---- No ETA
    Zig Language ---- Pending
    Zen-C Language ---- Pending
    LLVM LLVM No ETA
    Perl Languange ---- Pending
    Ruby Languange ---- No ETA
    Java Language ---- No ETA
    Go Language ---- Pending
    Codon ---- Pending Exaloop release windows version
    Form 5.0 Pending
  • Build test, Recursive build examination (No eta)

    task toolchain condition status
    [ROCm/TheRock] VS2026, MSVC v145, Perl 5.42 -DTHEROCK_AMDGPU_FAMILIES = gfx1100;gfx1101;gfx1102;gfx1200;gfx1201
    [NVIDIA/cutlass] VS2026, MSVC v145, CUDA 13.4 -DBUILD_TESTING=OFF
    [pytorch/pytorch] VS2026, MSVC v145, CUDA 13.4 -DUSE_CUDA=1, -DUSE_CUDNN=1, -DUSE_CUDSS=1
    [pytorch/pytorch] VS2026, MSVC v145, TheRock -DUSE_ROCM=1
    [python/cpython] VS2026, MSVC v145
    [exaloop/codon] VS2026, MSVC v145, CUDA 13.4 -DCODON_GPU=ON
    [HDF/HDF4] VS2026, MSVC v145
    [HDF/HDF5] VS2026, MSVC v145
    [NetCDF] VS2026, MSVC v145
    [pNetCDF] VS2026, MSVC v145
    [GDAL] VS2026, MSVC v145
    [GMT] VS2026, MSVC v145
    [form-dev/form] VS2026, MSVC v145, MSMPI
    etc.
  • Repository Sync Status

    There are other hosting platforms sync with GitHub as mirror site by CI action.

    GitHub repo is major develop upstream, other mirror site will sync every next day at 04:00 UTC+8.

    Repo Server type status link
    GitHub main upstream https://github.com/TaiXeflar/wemi
    GitLab mirror gitlab_badge https://gitlab.com/TaiXeflar/wemi
    Gitea mirror gitea_badge https://gitea.com/TaiXeflar/wemi
    Gitee mirror gitee_badge https://gitee.com/TaiXeflar/wemi
    GitCode mirror gitcode_badge https://gitcode.com/TaiXeflar/wemi

Requirements

Usage

  1. Clone this repo and build a venv.
  • PowerShell / CMD
    PS X:\> git clone https://github/TaiXeflar/wemi.git --depth=1 wemi
    
    PS X:\> cd wemi
    
    PS X:\wemi> uv venv .venv --python 3.11/3.12/3.13/3.14
    
    PS X:\wemi> .venv/Scripts/Activate.ps1
    
  1. Run wemi.py. WEMI allows (some) Unix-style flags -flag/--flags, DOS-style flags /flags, and cmake-style cache flags -DFLAGS....
  • PowerShell
    # Configure     (generates build/cache.json.)
    (.venv) PS X:\wemi> python ./wemi.py configure --<flags/options> -D<FLAGS/OPTIONS>
    
    # Build         (based on build/cache.json.)
    (.venv) PS X:\wemi> python ./wemi.py build
    
    # Install       (based on build/cache.json.)
    (.venv) PS X:\wemi> python ./wemi.py install --prefix "C:/Developer/Modules"
    
    # Configure All-In-One command     (generates build/cache.json.)
    (.venv) PS X:\wemi> python ./wemi.py configure --aio/-D_ALL_IN_ONE --<flags/options> -D<FLAGS/OPTIONS>
    

Limitations

  • Locale

    WEMI strongly not recommend set non Latin characters, full widith characters, half/full width spaces, dots, laft/right slashes as your user name, especially on these regions:

    • Traditional Chinese (ZH-TW, Big5): Complexed Chinese word character, common used by R.O.C.(Taiwan), Hong Kong, Macao.
    • Simplfied Chinese (ZH-CN, GBK): Simplfied Chinese word character, common used by Mainland China.
    • Japanese (JA, Shift-JIS): Japanese uses Kanji, Hiragana(平仮名) and Katakana(片仮名).
    • Korean (KR).

    This is not WEMI cases because most development toolchains are prefer English environment, include full english charcters path. Instead, PC users should keep their names to English based names, dashes and underscores to avoid any cross-platform program have not complete support to it. For example:

    • Avoid names like C:/Users/三月七, C:/Users/琪亞娜 卡斯蘭娜.
    • Recommend user names: C:/Users/SilverWolf999, C:/Users/Miku39, C:/Users/OMNI_1206 etc.
  • Code formatter

    The code base is under Inf Dev status with possiable large changes there, the code format is not at the priority (not I'm f**king lazy), with pre-commit feature only set SDPX License identifier only.

    In future plan will add black or ruff formater.

  • Cygwin/MSYS2

    WEMI requires Python Standard Module win32 which is not available in Cygwin/MSYS2 based posix Python. And most of wemi supported SDKs, their ecosystem are MSVC based toolchains, with Microsoft or Intel/AMD/NVIDIA and other 3rd party provided environment setup support.

    The solution is:

    1. Run a Cygwin/MSYS2 bash and Envmodules/modules build process as Linux/macOS does.
    2. Run run another pwsh process to run wemi, set install prefix to Cygwin/MSYS2 dir's modulefiles.
    3. Check installed modulefiles, if they need dos2unix to set CRLF -> LF.

    There's a future CI plan to play this environment.

  • GCC, GCC based LLVM

    GCC compilers with it's releases may be different, with target triple X MSVCRT/UCRT matrix, and also different SDKs will contain their gcc redistribution.

    This may need time to select what kind of GCC compilers and related SDKs to support. But wemi will have future plan to support them.

  • AMD ROCm

    1. HIP SDK will not be planned to CI test due it is not avail at winget.
    2. ROCm/TheRock will be planed to future case test, with a recursive build test.
  • Windows on ARM64

    I'm interested in this, such as Snapdragon Elite X platform (Qualcomm) and GB10 (NVIDIA + MediaTek). But I can only keep these platforms on watching list:

    • No experience on playing MSVC on ARM64/ARM64EC. But I'll try it.

    • Qualcomm's SDK is hard to get with is QPM and licenses problems.

    • GB10 chip has no existed MediaTek optimized compilers/SDKs and NVIDIA CUDA SDKs.

      [Update]: NVIDIA has released CUDA 13.4 developer version release with cross compilation support.

      CUDA SDKs will follow $env(VSCMD_ARG_TGT_ARCH) env variable. So I think this is effectness to NVIDIA CUDA that need refactoring, but NVIDIA CUDA-X is in plan.

  • CI test coverage limitation on SDKs

    This is the highlight and become a core to WEMI to prove that WEMI can handle environment setup coverage is enough to handle large compile/build tasks as Linux HPC systems. But with some limits here, to prevent or wait for future fix/add CI build test cases.

    1. Some SDKs are not avail with package managers like winget, choco:

      • NVIDIA CUDA-X Libraries
      • AMD HIP SDK
      • Qualcomm Snapdragon LLVM compiler
      • etc.
    2. Some SDKs is on my interested list but have no experience before:

      • Cangjie
      • Zig
      • Rust
      • Swift
    3. Some SDKs are meant to be examined to be built from source will take time:

      • ROCm/TheRock
      • Exaloop/codon
      • ROOT-Project/Cling
      • Swift
      • torch/libtorch
      • XGBoost
      • NetCDF/pNetCDF
      • GDAL
      • HDF4/HDF5
      • etc.
    4. Some SDKs will require Licenses to install:

      • MATLAB
      • Borland/Embarcadero C++ Builder
    5. Experimential SDKs:

      • MiHoYo/Hoyoverse GunsGirlsZ, GGZ/BH2
      • MiHoYo/Hoyoverse Honkai Impact 3
      • MiHoYo/Hoyoverse Genshin Impact
      • MiHoYo/Hoyoverse Honkai: Star Rail
      • MiHoYo/Hoyoverse Zenless Zone Zero, ZZZ
      • MiHoYo/Hoyoverse Nexus Anima
      • MiHoYo/Hoyoverse Varsapura
      • MiHoYo/Hoyoverse PetitPlanet

Docs Language Localization

Currently main language will be written in English (US). With after updates, there will several languages updates to docunemtation and wemi program.

The idea/inventing monent

This project is based on my collage school lifetime thoughts.

The develop environment is have Youtube Music with listening 七見斷滅智論抄 Prajnaparamitopadesa to Quell Seven Calamities.

About

A Windows specific Environment Modules Installer

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages