note: non-official repo for experimentation and QA!
Programmer's System equips your development machine with the finest software ecosystems. The CLI allows one to specify their needs and Ansible reliably installs everything using familiar packaging modules such as apt
, brew
, yum
, snap
, npm
, script
, and many more.
This project is in alpha and currently supports fresh installs of Ubuntu 22.04 LTS... project TODO resolutions, Fedora 36, and macOS 12 Monterey are on the way!
This is an ambitious project looking to make a difference for us devs. Please consider contributing!
Ecosystems: General, Python, JavaScript and Node, Web Tools, Version Control, Database Clients, Containers and VMs, Scientific, Cloud Tools, Java, C and Cpp, Go, PHP, Rust, Ruby.
(Review the Master Software Document to see all software descriptions, how-to guides, and licenses for the ecosystems.)
Software: All (mostly open source) software and tools are carefully selected based on industry standards with security in mind.
Platforms: Only *nix operating systems are supported. All systems should be the latest (stable) os version. For instance, the newest Ubuntu LTS version and major macOS release.
Ansible: Mission critical tool for server provisioning, configuration management, and deployments. This project uses a small a portion of its features to target local machines for provisioning. This translates to a small learning curve.
Restrictions: No backends (DB engines, web servers, etc), only clients (DBeaver, Azure CLI, etc). Snaps/Flatpaks Ansible modules are allowed, but use them as a last resort due to performance.
Editors: VSCode is the "default" editor and has many relevant extensions installed in each ecosystem. A large amount of editors/IDEs are selectable as well. Vim/Emacs distribution/configurations are recommended here.
(middle-click for new tab)
For Ubuntu, you may wish extend the sudoers timeout for bigger installs (many ecosystems). Video Instructions.
# Git pull the project to ~/.progsys
sudo apt install git -y && git clone git@github.com:programmers/system_qa.git ~/.progsys
# Install the base dependencies, launch the CLI, and then installs everything
cd ~/.progsys && sudo ./run ubuntu
# When finished, a "Post Install" page link will appear to provide helpful considerations
OS: Support macOS 12 Monterey*, and Fedora 36*
Ansible: Standard project structure*, better logging*, Support ZSH/Oh-My-ZSH*
Base Install: Loading indicator*, new lock file approach*, redo var.yml approach*
CLI: More relevant ecosystem questions*, more Writer docs*, address TODOs in prompt.py*
Modules: Support existing OS upgrades by updating runscript*
Playbooks: Add a mobile playbook*, redo Ruby playbook*
Docs Gen: Refactor license link function in generate_page.py*
Scripts: Spring Tool Suite not showing in search*, Use a local "tmp" directory for install assets*