Skip to content

Commit

Permalink
build: Release updated docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Ziwi01 committed Sep 5, 2024
1 parent 1608ef4 commit 1fd0284
Show file tree
Hide file tree
Showing 14 changed files with 206 additions and 206 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Versions management

:::warning[Latest defaults]
Please note that all software versions since 2.0.0 are set to 'latest', including `master` branch.

If you need to have particular software version static, add it to [overrides.yml](./variables)

This change ensure seamless support for both Ubuntu 22 and 24
:::

After every ansible run, it prints all the versions which were installed/updated.

Also, it saves/updates them in `./current-versions.yml`. This file is added to `.gitignore`, so it is not versioned.
Expand All @@ -14,3 +22,8 @@ Also, it saves/updates them in `./current-versions.yml`. This file is added to `

If you use `master` branch (which has all the versions set to `latest`), and you want stability for particular component, you can copy any of those outputs and add them to your `ansible/vars/overrides.yml` so this version will be used for any subsequent runs.

:::note[Overriding one version in a group]
For overriding only one package in a group (e.g `github_packages`), you need to set your desired version, but all the others need to be set to `latest`. In some cases `latest` can be something different (like `master` or `main`). You can find the reference in `latest-versions.yml`.

Please also note, that not every software version supports `latest`. Some need to be set explicitly. See `ansible/roles/software/vars/main.yml` for all static vars.
:::
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@ As described in [`config role`](../roles/config) section, there are certain conf
1. (not recommended) Disable particular config file(s) management sections in `ansible/vars/overrides.yml` using `config_tasks_exclude: []`. This will prevent running config for it. For list of sections, see respective `ansible/roles/config/tasks/main.yml`.
2. (**recommended**) I personally suggest to checkout a local branch in this repository (`git checkout -b my-branch`), modify any configuration file(s) in `ansible/roles/config/files` and/or `ansible/roles/config/templates` and commit them. When you want to update changes, just merge release tag (or `master`) to your branch when needed. That way, you can have both your own modifications to the file, and possible upcoming improvements/features which will come with those files. In case of confilcts, you can either choose your own piece of config, or the incoming one, or both.

:::note[Neovim config]
Neovim config (based on AstroNvim) has its own repository. You can fork it and modify for you use, or use your own Neovim config entirely (from your repository). For details see [Neovim usage section](../../usage/vim)
:::
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@ To exclude certain parts of ansible code for every subsequent runs, you can add

```yaml
software_tasks_exclude:
- bat # do not install Bat
- azurecli # do not install azurecli
- puppet # do not install Puppet
config_tasks_exclude:
- zsh # do not configure ZSH
```
For full list of exclude options, see [software](../roles/software) or [config](../roles/config) role description.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ To include/exclude whole roles:
- software

:::tip[Example: including only config]

```shell
ansible-playbook -i inventory.yml setup-ubuntu.yml --tags "config" -K
```
Expand All @@ -19,14 +20,23 @@ Above will run only configuration part of the automation, it won't install/updat
You can run multiple multiple tags at once:

```shell
ansible-playbook -i inventory.yml setup-ubuntu.yml --tags "neovim,lunarvim,tmux" -K
ansible-playbook -i inventory.yml setup-ubuntu.yml --tags "neovim,neovim-config,tmux" -K
```

:::

:::tip[Example: including particular software installation without config]

```shell
ansible-playbook -i inventory.yml setup-ubuntu.yml --tags "zsh" --skip-tags "config" -K
```

Above will run only `software` role for ZSH, and will **not** run configuration for it.
:::

For particular functionality (`software` + `config`) below tags are available:
For particular functionality (`software` + `config`) below tags are available:

- ansible
- bat
- diff-so-fancy
- fd
- fzf
Expand All @@ -39,7 +49,7 @@ ansible-playbook -i inventory.yml setup-ubuntu.yml --tags "neovim,lunarvim,tmux"
- kubectl
- lazygit
- lsg
- lunarvim
- neovim-config
- neovim
- nvm
- p10k
Expand All @@ -49,7 +59,7 @@ ansible-playbook -i inventory.yml setup-ubuntu.yml --tags "neovim,lunarvim,tmux"
- rvm
- sdkman
- software_packages
- thefuck
- ~thefuck~ # temporarily disabled. See docs.
- tmux
- w32yank
- yq
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ There are couple of useful plugins installed there (you can find them in `ansibl
- fuzzy search/go to directory
- aliases autosuggestions - tells you that you have an alias for particular commands
- easily traversing through **visited** directories (using [zoxide](https://github.com/ajeetdsouza/zoxide))
- correct your commands automatically with [thefuck](https://github.com/nvbn/thefuck)
- (turned off temporarily) ~correct your commands automatically with [thefuck](https://github.com/nvbn/thefuck)~
- finding files with FZF
- Windows clipboard support - also works from VIM (copying in VIM makes it available in Windows clipboard)

49 changes: 4 additions & 45 deletions docs-web/versioned_docs/version-stable/main/features/50-neovim.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,7 @@
# Neovim with LunarVIM
# Neovim

[LunarVIM](https://github.com/LunarVim/LunarVim) is set as default `EDITOR`, also aliased as `vim` (you can change it in `ansible/roles/config/templates/zshrc.j2`).
[Neovim](https://github.com/neovim/neovim) is installed in latest stable version.

For details on how to navigate and power-use this IDE like a boss, see [Neovim usage](../../usage/vim)

Core Neovim plugins, which are installed by LunarVIM, can be found [here](https://www.lunarvim.org/plugins/01-core-plugins-list.html).

Additionally, I setup the plugins below:
It is set as default `EDITOR`, also aliased as `vim` (you can change it in `ansible/roles/config/templates/zshrc.j2`).

- [folke/trouble.nvim](https://github.com/folke/trouble.nvim) - Toggle diagnostic windows and browse through them (`<Space>t` will list options to open)
- [rodjek/vim-puppet](https://github.com/rodjek/vim-puppet) - Puppet syntax support
- [pearofducks/ansible-vim](https://github.com/pearofducks/ansible-vim) - Ansible support
- [nanotee/zoxide.vim](https://github.com/nanotee/zoxide.vim) - Zoxide inside VIM: `:Zi` or `:Z <query>`.For Zoxide descrption see above for Zoxide description
- [will133/vim-dirdiff](https://github.com/will133/vim-dirdiff) - Diff directories. (`:DirDiff <dir1> <dir2>`)
- [plasticboy/vim-markdown](https://github.com/preservim/vim-markdown) - Markdown support
- [Sid0fc/mkdx](https://github.com/SidOfc/mkdx) - Markdown support #2
- [iamcco/markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim) - Preview your markdown files in the browser (with dynamic scroll and refresh)
- [godlygeek/tabular](https://github.com/godlygeek/tabular) - easily line up text (like align with equal sign etc.)
- [junegunn/fzf](https://github.com/junegunn/fzf) and [junegunn/fzf.vim](https://github.com/junegunn/fzf.vim) - FZF integration in VIM
- GIT integration plugins:
- [tpope/fugitive](https://github.com/tpope/vim-fugitive) - Git wrapper, execute any Git command from VIM
- [kdheepak/lazygit.nvim](https://github.com/kdheepak/lazygit.nvim) - Neovim integration with awesome GIT wrapper (LazyGIT). See `software` role description for details.
- [mhinz/vim-signify](https://github.com/mhinz/vim-signify) - shows GIT info about modified/added/removed lines
- [sindrets/diffview.nvim](https://github.com/sindrets/diffview.nvim) - great GIT diff plugin for comparing file tree with particular revision(s) or browse file/selection history
- [f-person/git-blame.nvim](https://github.com/f-person/git-blame.nvim) - show Git blame in-line virtual text.
- [junegunn/gv](https://github.com/junegunn/gv.vim) - show git commits graph
- [tzachar/cmp-tabnine](https://github.com/tzachar/cmp-tabnine) - AI completion mechanism
- [rmagatti/goto-preview](https://github.com/rmagatti/goto-preview) - do not jump around the definition in new tabs/buffers - show floating preview window and edit it there, close the preview. Being on top of searched function: `gpd` (for definition).
- [itchyny/vim-cursorword](https://github.com/itchyny/vim-cursorword) - underline all the words that the cursor is on right now. Handy for typo spotting.
- [auto-save.nvim](https://github.com/Pocco81/auto-save.nvim) - exactly what the name suggests.
- [tpope/vim-obsession](https://github.com/tpope/vim-obsession) - VIM session manager
- [tpope/vim-surround](https://github.com/tpope/vim-surround) - easily surrond text with brackets, braces, quotes
- [ntpeters/vim-better-whitespace](https://github.com/ntpeters/vim-better-whitespace) - automatically trim/prune obsolete whitespace
- [preservim/vimux](https://github.com/preservim/vimux) - integrate neovim with TMUX - run commands in splits easily (@TODO: Add keymappings)
- [christoomey/vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator) - integrate movements between TMUX splits and VIM windows/splits
- [towolf/vim-helm](https://github.com/towolf/vim-helm) - Helm files support
- [jvgrootveld/telescope-zoxide](https://github.com/jvgrootveld/telescope-zoxide) - Use Zoxide inside vim
- [kevinhwang91/nvim-bqf](https://github.com/kevinhwang91/nvim-bqf) - much better quickfix window
- [nvim-pack/nvim-spectre](https://github.com/nvim-pack/nvim-spectre) - Search and replace like on other IDEs
- [wincent/ferret](https://github.com/wincent/ferret) - Search and replace for files in your project. To be used if Spectre doesn't work as expected (see LunarVim usage docs for details)
- [roobert/search-replace.nvim](https://github.com/roobert/search-replace.nvim) - Better local search and replace
- [catpuccin/nvim](https://github.com/catppuccin/nvim) - Colorscheme
- [ggandor/leap.nvim](https://github.com/ggandor/leap.nvim) - Jump around the buffer like crazy

:::note
In LunarVIM there is an automatic LSP installer plugin - [lazy.nvim](https://github.com/folke/lazy.nvim) which will install supported language servers and use them, when you open a specific filetype. However, this doesn't work 100% of the time. I add custom configurations for terraform, ansible, markdown and puppet. If you have issues with automatic LSP config/attachment, you can add your own configurations for filetypes in `ansible/roles/config/files/lvim/ftplugin/<filetype>.lua` - all of the files from there will be copied over to LunarVim config. See: [LunarVIM docs](https://www.lunarvim.org/docs/configuration/language-features/language-servers) for details. I will be adding more LSP configs in the future probably.
:::
For details on how to navigate and power-use this IDE like a boss, see [Neovim usage](../../usage/vim)
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

- [ripgrep](https://github.com/BurntSushi/ripgrep) - much faster grep. Also used from within VIM to grep for text.
- [fd](https://github.com/sharkdp/fd) - faster `find` command
- [bat](https://github.com/sharkdp/bat) - prettier cat with syntax highlight, line numbers etc.
- [batcat](https://github.com/sharkdp/bat) - prettier cat with syntax highlight, line numbers etc.
- [yq](https://mikefarah.gitbook.io/yq/) - YAML parser
- [htop](https://github.com/htop-dev/htop) - better top
- [jq](https://stedolan.github.io/jq/) - JSON parser

And more...
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,12 @@ For usage examples see [Usage](../../usage/terminal#languages)

# Go

Automatic installation of Go is done using [`GVM`](https://github.com/moovweb/gvm) - Go Version Manager. By default `go1.20.4` gets installed (at the time of writing). See [Usage](../../usage/terminal#languages) for details.
Automatic installation of Go is done using [`GVM`](https://github.com/moovweb/gvm) - Go Version Manager. See [Usage](../../usage/terminal#languages) for details.

## Ruby

For Ruby management, there is [Ruby Version Manager (RVM)](https://rvm.io/) installed. See available Ruby's with `rvm list`, use particular with `rvm use <ruby_version>`. There are some gems already preinstalled on Rubys available here (like `neovim` gem, or if Puppet is being installed, it installs `puppet` and `puppet-lint` gems).

:::note
There might be some issues with installing/managing Ruby versions `< 3.1.x` on Ubuntu 22.04, but that might have been a random issue (to be confirmed)
:::

## JAVA/groovy

For multiple versions management for Java, groovy, gradle JDKs/SDKs, [SDKMAN!](https://sdkman.io/) manager is installed and some default JAVA and groovy versions.
Expand All @@ -42,11 +38,10 @@ By default, Puppet gets installed **for all rubies**. If you choose to install l

Ansible gets installed using PIP in designated `pyenv` Python environment. Also ansible-lint gets installed.

Also, there is an [Ansible Language Server](https://github.com/ansible/ansible-language-server) installed globally using default NPM, but LunarVIM uses it's own, auto-installed language server.
Also, there is an [Ansible Language Server](https://github.com/ansible/ansible-language-server) installed globally using default NPM.

To configure linter diagnostics (enable/disable some checks) in LunarVIM for Ansible files, see: `ansible/roles/config/files/ansible-lint`
To configure linter diagnostics (enable/disable some checks) for Ansible files, see: `ansible/roles/config/files/ansible-lint`

## Rust

As LunarVIM requires it, [Rust](https://www.rust-lang.org/) is installed with [Cargo](https://github.com/rust-lang/cargo/) package manager.

[Rust](https://www.rust-lang.org/) is installed with [Cargo](https://github.com/rust-lang/cargo/) package manager.
13 changes: 9 additions & 4 deletions docs-web/versioned_docs/version-stable/main/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,14 @@ Assuming all the [requirements](./requirements) are met:
4. (from repo root) Run `sudo ./prepare-ubuntu.sh` (if not already run during windows setup) to update the system and install required python and ansible packages
5. Reload your terminal (close and open again)
6. (from repo root) Run ansible:
6. Run ansible:

```shell
cd ansible; ansible-playbook -i inventory.yml setup-ubuntu.yml -K
```
```shell
cd ~/proveasio/ansible; ansible-playbook -i inventory.yml setup-ubuntu.yml -K
```

7. After successful installation (green summary of versions installed), reload you terminal.

:::note
If either the preparation or installation steps are failing for you (#4 or #6), please see [Troubleshooting](./troubleshooting) section. If there is no answer for your problem, please create an Issue in Github.
:::
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ If using Windows with WSL2 Ubuntu also ensure:

- Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
- WSL2 installed/enabled (version 0.67.6 and above)
- Ubuntu 22.04 installed
- Ubuntu 24.04 installed
- `systemd` enabled for installed Ubuntu distribution

:::note
Expand Down
37 changes: 14 additions & 23 deletions docs-web/versioned_docs/version-stable/main/roles/10-software.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,34 +10,30 @@ Various tools:
4. [Diff-so-fancy](https://github.com/so-fancy/diff-so-fancy) - alternate GIT DIFF presentation
5. [Git fuzzy](https://github.com/bigH/git-fuzzy.git) - managing GIT commands using FZF
6. [Gita](https://github.com/nosarthur/gita) - managing multiple GIT repositories at once (add groups, execute git or shell commands for those groups etc.)
6. [TheFuck](https://github.com/nvbn/thefuck) - corrects errors in previous console commands
7. [BAT](https://github.com/sharkdp/bat) - (much) better CAT
8. [Zoxide](https://github.com/ajeetdsouza/zoxide) - traverse directories with ease (also with FZF)
9. [Helm](https://github.com/helm/helm) - Kubernetes 'package manager'
10. [Ripgrep](https://github.com/BurntSushi/ripgrep) - `grep` on steroids. Blazing fast, easy to use
11. [fd](https://github.com/sharkdp/fd) - `find` alternative, much faster
12. [htop](https://htop.dev/) - process viewer, prettier `top` alternative
13. [TMUX](https://github.com/tmux/tmux) - terminal multiplexer
14. [LazyGIT](https://github.com/jesseduffield/lazygit) - GIT wrapper for both terminal and VIM
15. [keychain](https://www.funtoo.org/Funtoo:Keychain) - ssh-agent wrapper to keep SSH keys across terminal logins
16. [yq](https://mikefarah.gitbook.io/yq/) - awesome terminal YAML parser (also JSON, XML etc.)
7. (temporarily disabled) ~[TheFuck](https://github.com/nvbn/thefuck) - corrects errors in previous console commands~
8. [BAT](https://github.com/sharkdp/bat) - (much) better CAT
9. [Zoxide](https://github.com/ajeetdsouza/zoxide) - traverse directories with ease (also with FZF)
10. [Helm](https://github.com/helm/helm) - Kubernetes 'package manager'
11. [Ripgrep](https://github.com/BurntSushi/ripgrep) - `grep` on steroids. Blazing fast, easy to use
12. [fd](https://github.com/sharkdp/fd) - `find` alternative, much faster
13. [htop](https://htop.dev/) - process viewer, prettier `top` alternative
14. [TMUX](https://github.com/tmux/tmux) - terminal multiplexer
15. [LazyGIT](https://github.com/jesseduffield/lazygit) - GIT wrapper for both terminal and VIM
16. [keychain](https://www.funtoo.org/Funtoo:Keychain) - ssh-agent wrapper to keep SSH keys across terminal logins
17. [yq](https://mikefarah.gitbook.io/yq/) - awesome terminal YAML parser (also JSON, XML etc.)

Development-related software:

1. [Neovim](https://github.com/neovim/neovim) - more handsome VIM brother
2. [LunarVIM](https://github.com/LunarVim/LunarVim) - Neovim IDE-like extension with awesome plugins/configurations included out of the box
2. [AstroNvim](https://astronvim.com/) - Neovim IDE-like extension with awesome plugins/configurations included out of the box
3. [RVM](https://rvm.io/) (Ruby enVironment Manager, installed using [rvm1-ansible-role](https://github.com/rvm/rvm1-ansible)), along with Ruby `3.1.3`
4. [PDK](https://puppet.com/try-puppet/puppet-development-kit/) (Puppet Development Kit)
5. [NVM](https://github.com/nvm-sh/nvm) (Node Version Manager) with latest LTS Node version (by default). Among all - dependency for LunarVIM installation
6. [SDKMAN](https://sdkman.io/) - Manage multiple versions of groovy/java and other JDKs/SDKs.
7. [pyenv](https://github.com/pyenv/pyenv) - Python version manager not to mess system python
8. [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) - Python virtual environment manager to have separate environments with different packages for projects using same Python version

Also, common useful packages, like:

- mlocate (file search)
- tree (directory tree)
- jq (JSON/YAML parser)
Also, common useful packages, like `tree` (directory tree), `jq`/`yq` (JSON/YAML parser) and many others.

In `ansible/roles/software/vars/main.yml` file, you can find everything that can be configured in terms of software. See [Configuration customizations](../../category/customizations) for details.

Expand All @@ -53,10 +49,6 @@ See [excluding code](../customization/excludes) for details.

Available software excludes:

:::warning
Do not disable `yq` installation, or ensure you have it installed and available in your path, as it is used to modify yaml files during ansible run.
:::

- packages (default apt packages installation, including **dependencies**)
- git
- ripgrep
Expand Down Expand Up @@ -84,6 +76,5 @@ Do not disable `yq` installation, or ensure you have it installed and available
- rust
- ansible
- neovim
- lunarvim
- astronvim
- puppet

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ This role is mostly configs management. It will apply configuration for:
- thefuck (`~/.config/thefuck/settings.py`)
- LazyGIT (`~/.config/lazygit/config.yml`)
- ansible-lint (`~/.ansible-lint`)
- lunarvim (`~/.config/lvim/config.lua`)
- SDKMAN (`~/.sdkman/etc/config`)

If you want to exclude particular component configuration, you can add an array of sections, for example:
Expand All @@ -29,7 +28,7 @@ Available configs excludes:
- sdkman
- git
- lazygit
- lunarvim
- neovim-config
- thefuck
- ansible
Expand All @@ -40,4 +39,3 @@ By default, all configuration files are backed up in `~/.configs_backup` on ever
To disable taking backups, set:

`config_files_backup: false`

Loading

0 comments on commit 1fd0284

Please sign in to comment.