Repository: comtrya/comtrya (language: rust)

Issue:
Bug: execution of manifests random and exits unexpectedly
**Description**

when i run 

```shell
$ comtrya -v apply
```

- I see that it picks a manifest to start with.
- It's not obvious why it picks that manifest.
- Each time i run `comtrya -v apply` It's never the same manifest that it starts with.
- Each time i run `comtrya -v apply` The order of the manifests executed is never the same.
- Each time i run `comtrya -v apply` Some manifests are not executed.



**Steps to reproduce**
Step by step explanation. Please add the output of with `-vvv` flag enabled (be careful not to include any secrets from your config).

**Expected behaviour**
What the expected behaviour in your opinion.

**Environment**
- OS
- Version: `comtrya --version`

**Additional information**
Add more context which didn't fit in the fields above.

first run : 

```

DEBUG execute:{manifest="packagemanagers.scoop"}: Result of 'where' condition 'os.name == "windows"' -> 'true'
 INFO execute:{manifest="packagemanagers.scoop"}: CompletedDEBUG execute:{manifest="shells.powershell.fzf"}: Result of 'where' condition 'os.name == "windows"' -> 'true'
 INFO execute:{manifest="shells.powershell.fzf"}: Completed
DEBUG execute:{manifest="shells.zsh.install"}: Result of 'where' condition 'os.name == "linux" || os.name == "macos"
' -> 'false'
 INFO execute:{manifest="shells.zsh.install"}: Skip manifest, because 'where' conditions were false!
```

second run : 

```
DEBUG execute:{manifest="shells.xresources.xresource"}: Result of 'where' condition 'os.name == "linux" || os.name == "macos"' -> 'false'
 INFO execute:{manifest="shells.xresources.xresource"}: Skip manifest, because 'where' conditions were false!
```

third run : 
```
DEBUG execute:{manifest="devtools.vscode.config"}: Result of 'where' condition 'os.name == "windows"' -> 'true'
 INFO execute:{manifest="devtools.vscode.config"}: Completed
DEBUG execute:{manifest="devtools.asdf.setup"}: Result of 'where' condition 'os.name == "linux" || os.name == "macos"' -> 'false'
 INFO execute:{manifest="devtools.asdf.setup"}: Skip manifest, because 'where' conditions were false!
```


why is it random? 


Discussion / hints:
related to #273 
One question for some manifests not executing. Are errors being raised? What I have seen is comtrya, on windows at least, bails out at the sign of an error, which would explain why some manifests don't run. 

The second run example you gave, should that manifest have run? According to the output, it didn't run because that manifests specifies a where condition for linux and macos, so with it being windows, the where condition evaluates to false and doesn't run it. If it is the same manifest as [here](https://github.com/airtonix/dotfiles/blob/master/shells/xresources/xresource.yml) that is probably why it doesnt run. 

As for order, Ill need to either confirm looking in the code or asking Rawkode or Icepuma, but if dependencies are not specified, comtrya will and should be able to run the manifests in any order. I'll talk with them to see if this is an issue.
Not sure if related, I'm running into this issue with `v0.8.0` even with Dependencies specified. It completely ignores dependencies, throws errors about them and just tries to run in random order each time and usually fails silently aside from the dependency error in the beginning. If I keep running some stuff will get applied eventually.

Going back to `v0.7.4` respects dependencies.

Also does not respect `-m` or the `Comtrya.yaml` manifest key and will try to run any yaml file it the project.
> Not sure if related, I'm running into this issue with `v0.8.0` even with Dependencies specified. It completely ignores dependencies, throws errors about them and just tries to run in random order each time and usually fails silently aside from the dependency error in the beginning. If I keep running some stuff will get applied eventually.
> 
> Going back to `v0.7.4` respects dependencies.
> 
> Also does not respect `-m` or the `Comtrya.yaml` manifest key and will try to run any yaml file it the project.

I believe I ran into this yesterday or the day before. I will try to remember to bring it up at the next community call so we can look into it. That is a pretty big regression. If you can get a repro on it, can you open an issue? I had it happen to me once, but only once.
I did bring up the random ordering at a maintainer standup. We don't guarantee anything is done in a specific order unless dependencies are specified. So this is expected behavior that we currently do not intend to change unless there is a good reason why comtrya should run manifests that don't have dependencies to run in a specific order.
side note: I feel like the approach of "depends" instead of "includes" makes things more difficult for users to declare order. I made a comment somewhere else to this effect.

I realise the choice to go with a depends approach is probably motivated by a desire to do manifest validation across the end result before running, but worth raising in terms of how it affects the UX and expectations from users.

for example, ansible, salt, chef, puppet all require you to define an entrypoint manifest, where you can then define the entire set of tasks in that one file or start splitting things up by using some kind of `require(filepath)` or `includes(filepath)`

just so were clear, from my perspective the main difference is this: 

`depends`

- current manifest only executes when the `depends[]` manifests themselves have finished.
- can't intersperse depends steps with actions: 

```
depends: 
 - manifest.one
 - manifest.two

actions:
  - action: log
    content: thing i wanted to happen between manifest.one and manifest.two
 
```

`require/include/import`

- everything is an action, so current manifests actions executes alongside imports
- can intersperse actions with imports


```
depends:
 - manifest.one
 - manifest.two

actions:
 - action: manifest
   name: manifest.one

 - action: log
   content: thing i wanted to happen between manifest.one and manifest.two

 - action: manifest
   name: manifest.two
```

This combined with :
- a config/flag that prevents Comtrya from executing `depends` before `actions`, instead only crawls the dependencies to create the DAG and use it for analysis and validation.
- a new action that allows us to choose when to execute other manifests

would give us more control over the order of things.
> I did bring up the random ordering at a maintainer standup. We don't guarantee anything is done in a specific order unless dependencies are specified. So this is expected behavior that we currently do not intend to change unless there is a good reason why comtrya should run manifests that don't have dependencies to run in a specific order.

The biggest reason is that it's not obvious, documented or even expected from a users point of view.

Even when you document this, it never feels obvious when you forget the documented behaviour.

I feel like this will just continually lead to reported bugs and low confidence in the tool.
> Not sure if related, I'm running into this issue with `v0.8.0` even with Dependencies specified. It completely ignores dependencies, throws errors about them and just tries to run in random order each time and usually fails silently aside from the dependency error in the beginning. If I keep running some stuff will get applied eventually.
> 
> Going back to `v0.7.4` respects dependencies.
> 
> Also does not respect `-m` or the `Comtrya.yaml` manifest key and will try to run any yaml file it the project.

I am unable to replicate this. Can you share your manifests, please?

My tests include:

```
 File: a.yaml
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ actions:
   2   │ - action: command.run
   3   │   command: echo
   4   │   args: ["c"]
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: b.yaml
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ depends:
   2   │ - c
   3   │
   4   │ actions:
   5   │ - action: command.run
   6   │   command: echo
   7   │   args: ["b"]
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: c.yaml
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ depends:
   2   │ - a
   3   │
   4   │ actions:
   5   │ - action: command.run
   6   │   command: echo
   7   │   args: ["c"]
───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: d.yaml
───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ actions:
   2   │ - action: command.run
   3   │   command: echo
   4   │   args: ["d"]
───────┴────────────────────
```
> side note: I feel like the approach of "depends" instead of "includes" makes things more difficult for users to declare order. I made a comment somewhere else to this effect.
> 
> I realise the choice to go with a depends approach is probably motivated by a desire to do manifest validation across the end result before running, but worth raising in terms of how it affects the UX and expectations from users.
> 
> for example, ansible, salt, chef, puppet all require you to define an entrypoint manifest, where you can then define the entire set of tasks in that one file or start splitting things up by using some kind of `require(filepath)` or `includes(filepath)`
> 
> just so were clear, from my perspective the main difference is this:
> 
> `depends`
> 
> * current manifest only executes when the `depends[]` manifests themselves have finished.
> * can't intersperse depends steps with actions:
> 
> ```
> depends: 
>  - manifest.one
>  - manifest.two
> 
> actions:
>   - action: log
>     content: thing i wanted to happen between manifest.one and manifest.two
>  
> ```
> 
> `require/include/import`
> 
> * everything is an action, so current manifests actions executes alongside imports
> * can intersperse actions with imports
> 
> ```
> depends:
>  - manifest.one
>  - manifest.two
> 
> actions:
>  - action: manifest
>    name: manifest.one
> 
>  - action: log
>    content: thing i wanted to happen between manifest.one and manifest.two
> 
>  - action: manifest
>    name: manifest.two
> ```
> 
> This combined with :
> 
> * a config/flag that prevents Comtrya from executing `depends` before `actions`, instead only crawls the dependencies to create the DAG and use it for analysis and validation.
> * a new action that allows us to choose when to execute other manifests
> 
> would give us more control over the order of things.

We use `depends` because we build a graph and traverse the graph during execution - this is what will power async runs in the future.

`include` would mean allude that we copy and paste the actions into each manifest that referenced it, where as we actually deduplicate on the graph.

> for example, ansible, salt, chef, puppet all require you to define an entrypoint manifest, where you can then define the entire set of tasks in that one file or start splitting things up by using some kind of require(filepath) or includes(filepath)

You can provide an entrypoint, by running `comtrya apply -m entry` and adding a bunch of dependencies to the `entry.yaml`, but we don't require an entrypoint because the application of dotfiles is usually more flexible than that. I often just run a subset, based on labels or directories.

> > I did bring up the random ordering at a maintainer standup. We don't guarantee anything is done in a specific order unless dependencies are specified. So this is expected behavior that we currently do not intend to change unless there is a good reason why comtrya should run manifests that don't have dependencies to run in a specific order.
> 
> The biggest reason is that it's not obvious, documented or even expected from a users point of view.
> 
> Even when you document this, it never feels obvious when you forget the documented behaviour.
> 
> I feel like this will just continually lead to reported bugs and low confidence in the tool.

So, we do load the manifests in a consistent manner - but the graph isn't walked predictably.

What order should we guarantee if we made this change?
> > Not sure if related, I'm running into this issue with `v0.8.0` even with Dependencies specified. It completely ignores dependencies, throws errors about them and just tries to run in random order each time and usually fails silently aside from the dependency error in the beginning. If I keep running some stuff will get applied eventually.
> > Going back to `v0.7.4` respects dependencies.
> > Also does not respect `-m` or the `Comtrya.yaml` manifest key and will try to run any yaml file it the project.
> 
> I am unable to replicate this. Can you share your manifests, please?
> 
> My tests include:
> 
> ```
>  File: a.yaml
> ───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>    1   │ actions:
>    2   │ - action: command.run
>    3   │   command: echo
>    4   │   args: ["c"]
> ───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> ───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>        │ File: b.yaml
> ───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>    1   │ depends:
>    2   │ - c
>    3   │
>    4   │ actions:
>    5   │ - action: command.run
>    6   │   command: echo
>    7   │   args: ["b"]
> ───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> ───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>        │ File: c.yaml
> ───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>    1   │ depends:
>    2   │ - a
>    3   │
>    4   │ actions:
>    5   │ - action: command.run
>    6   │   command: echo
>    7   │   args: ["c"]
> ───────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
> ───────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>        │ File: d.yaml
> ───────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
>    1   │ actions:
>    2   │ - action: command.run
>    3   │   command: echo
>    4   │   args: ["d"]
> ───────┴────────────────────
> ```

Sorry for the late reply, these are the manifests in question <https://github.com/TheFynx/workstation-osx>; I may be doing something wrong but like I said it works in 0.7.4 but not in 0.8.0 and maybe I missed in required change in the upgrade.
@TheFynx Your manifests look perfect.

Can you share the `comtrya -vvv apply` output, please?
@rawkode I don't have a Mac right now, waiting on my new work one to come in (can run there as well when I get it). But I can recreate on my Linux system using <https://github.com/TheFynx/workstation> which are what I built the OSX ones off of (yea, I need to use the OS switch and make it one setup but left it simple for now).

At least part of the issue is it seems to recognize the `Comtrya.yaml` is there but ignores the manifest directory I'm setting, the tries to read the archive items I'm trying to ignore.

`Comtrya.yaml`
```yaml
# Manifest Location
# Default: [.]
# This is a list because we'll eventually support multiple.
# However, only the first is used atm.
manifests:
  - manifests/

# Used by the variables context provider:
# context="variables" key="<key>" value="<value>"
variables:
  pythonVersion: "3.11.0"
  rubyVersion: "3.1.2"
  nodeVersion: "16.14.2"
  userFullName: "Levi Smith"
  userEmail: "levi@fynx.me"
  desktopEnvironment: "cinnamon"
```

`-vvv` Output
```shell
❯ comtrya080 -vvv apply --dry-run
DEBUG load_config{args=GlobalArgs { manifest_directory: None, no_color: false, verbose: 3, command: Apply(Apply { manifests: [], dry_run: true }) }}:load_config: Comtrya.yaml found in current working directory
DEBUG build_contexts: context="user" key="id" value="1000"
DEBUG build_contexts: context="user" key="name" value="Levi Smith"
DEBUG build_contexts: context="user" key="username" value="levi"
DEBUG build_contexts: context="user" key="home_dir" value="/home/levi"
DEBUG build_contexts: context="user" key="config_dir" value="/home/levi/.config"
DEBUG build_contexts: context="os" key="hostname" value="Desktop"
DEBUG build_contexts: context="os" key="family" value="unix"
DEBUG build_contexts: context="os" key="name" value="linux"
DEBUG build_contexts: context="os" key="distribution" value="EndeavourOS"
DEBUG build_contexts: context="os" key="codename" value="rolling"
DEBUG build_contexts: context="os" key="bitness" value="64-bit"
DEBUG build_contexts: context="os" key="version" value="Rolling Release"
DEBUG build_contexts: context="os" key="edition" value="unknown"
DEBUG build_contexts: context="env" key="ALACRITTY_LOG" value="/tmp/Alacritty-73748.log"
DEBUG build_contexts: context="env" key="ALACRITTY_SOCKET" value="/run/user/1000/Alacritty-wayland-0-73748.sock"
DEBUG build_contexts: context="env" key="ALACRITTY_WINDOW_ID" value="94455398634944"
DEBUG build_contexts: context="env" key="BROWSER" value="firefox"
DEBUG build_contexts: context="env" key="COLORTERM" value="truecolor"
DEBUG build_contexts: context="env" key="DBUS_SESSION_BUS_ADDRESS" value="unix:path=/run/user/1000/bus"
DEBUG build_contexts: context="env" key="DEBUGINFOD_URLS" value="https://debuginfod.archlinux.org "
DEBUG build_contexts: context="env" key="DESKTOP_SESSION" value="gnome"
DEBUG build_contexts: context="env" key="DISPLAY" value=":0"
DEBUG build_contexts: context="env" key="EDITOR" value="/usr/sbin/nvim"
DEBUG build_contexts: context="env" key="GDMSESSION" value="gnome"
DEBUG build_contexts: context="env" key="GDM_LANG" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="GIO_LAUNCHED_DESKTOP_FILE_PID" value="73748"
DEBUG build_contexts: context="env" key="GNOME_KEYRING_CONTROL" value="/run/user/1000/keyring"
DEBUG build_contexts: context="env" key="GNOME_SETUP_DISPLAY" value=":1"
DEBUG build_contexts: context="env" key="HOME" value="/home/levi"
DEBUG build_contexts: context="env" key="INVOCATION_ID" value="9a3062e46eb8439196372e90e6945456"
DEBUG build_contexts: context="env" key="JOURNAL_STREAM" value="8:33078"
DEBUG build_contexts: context="env" key="LANG" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_ADDRESS" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_IDENTIFICATION" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_MEASUREMENT" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_MONETARY" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_NAME" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_NUMERIC" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_PAPER" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_TELEPHONE" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LC_TIME" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LOGNAME" value="levi"
DEBUG build_contexts: context="env" key="MAIL" value="/var/spool/mail/levi"
DEBUG build_contexts: context="env" key="MANAGERPID" value="1390"
DEBUG build_contexts: context="env" key="MOTD_SHOWN" value="pam"
DEBUG build_contexts: context="env" key="OLDPWD" value="/home/levi"
DEBUG build_contexts: context="env" key="PATH" value="/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl"
DEBUG build_contexts: context="env" key="PWD" value="/home/levi/git/thefynx/workstation"
DEBUG build_contexts: context="env" key="SESSION_MANAGER" value="local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471"
DEBUG build_contexts: context="env" key="SHELL" value="/usr/bin/zsh"
DEBUG build_contexts: context="env" key="SHLVL" value="1"
DEBUG build_contexts: context="env" key="SSH_AUTH_SOCK" value="/run/user/1000/keyring/ssh"
DEBUG build_contexts: context="env" key="SYSTEMD_EXEC_PID" value="1775"
DEBUG build_contexts: context="env" key="TERM" value="xterm-256color"
DEBUG build_contexts: context="env" key="USER" value="levi"
DEBUG build_contexts: context="env" key="USERNAME" value="levi"
DEBUG build_contexts: context="env" key="WAYLAND_DISPLAY" value="wayland-0"
DEBUG build_contexts: context="env" key="WINDOWID" value="94455398634944"
DEBUG build_contexts: context="env" key="WINIT_X11_SCALE_FACTOR" value="1.5"
DEBUG build_contexts: context="env" key="XAUTHORITY" value="/run/user/1000/.mutter-Xwaylandauth.KQ9HY1"
DEBUG build_contexts: context="env" key="XDG_CURRENT_DESKTOP" value="GNOME"
DEBUG build_contexts: context="env" key="XDG_MENU_PREFIX" value="gnome-"
DEBUG build_contexts: context="env" key="XDG_RUNTIME_DIR" value="/run/user/1000"
DEBUG build_contexts: context="env" key="XDG_SESSION_CLASS" value="user"
DEBUG build_contexts: context="env" key="XDG_SESSION_DESKTOP" value="gnome"
DEBUG build_contexts: context="env" key="XDG_SESSION_TYPE" value="wayland"
DEBUG build_contexts: context="env" key="LS_COLORS" value="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:"
DEBUG build_contexts: context="env" key="RBENV_SHELL" value="zsh"
DEBUG build_contexts: context="env" key="PYENV_SHELL" value="zsh"
DEBUG build_contexts: context="env" key="NODENV_SHELL" value="zsh"
DEBUG build_contexts: context="env" key="HSTR_CONFIG" value="hicolor"
DEBUG build_contexts: context="env" key="LC_ALL" value="en_US.UTF-8"
DEBUG build_contexts: context="env" key="LESS_TERMCAP_md" value=""
DEBUG build_contexts: context="env" key="TODOTXT_DEFAULT_ACTION" value="ls"
DEBUG build_contexts: context="env" key="DOCKER_CONTENT_TRUST" value="0"
DEBUG build_contexts: context="env" key="AWS_SDK_LOAD_CONFIG" value="1"
DEBUG build_contexts: context="env" key="PULUMI_SKIP_UPDATE_CHECK" value="1"
DEBUG build_contexts: context="env" key="GPG_TTY" value="/dev/pts/1"
DEBUG build_contexts: context="env" key="P9K_SSH" value="0"
DEBUG build_contexts: context="env" key="P9K_TTY" value="old"
DEBUG build_contexts: context="env" key="_P9K_TTY" value="/dev/pts/1"
DEBUG build_contexts: context="env" key="RUST_BACKTRACE" value="full"
DEBUG build_contexts: context="env" key="_" value="/usr/sbin/comtrya080"
DEBUG build_contexts: context="variables" key="desktopEnvironment" value="cinnamon"
DEBUG build_contexts: context="variables" key="nodeVersion" value="16.14.2"
DEBUG build_contexts: context="variables" key="pythonVersion" value="3.11.0"
DEBUG build_contexts: context="variables" key="rubyVersion" value="3.1.2"
DEBUG build_contexts: context="variables" key="userEmail" value="levi@fynx.me"
DEBUG build_contexts: context="variables" key="userFullName" value="Levi Smith"
TRACE execute: manifests=""
ERROR execute:manifest_load{manifest="6-neovim.yaml"}: actions: invalid type: integer `755`, expected a string at line 10 column 3
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="1-init"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="4-node"
ERROR execute: Unresolved dependency dependency="4-python"
ERROR execute: Unresolved dependency dependency="4-ruby"
ERROR execute: Unresolved dependency dependency="4-rust"
ERROR execute: Unresolved dependency dependency="5-terminal"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="1-init"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="4-node"
ERROR execute: Unresolved dependency dependency="4-python"
ERROR execute: Unresolved dependency dependency="4-ruby"
ERROR execute: Unresolved dependency dependency="4-rust"
ERROR execute: Unresolved dependency dependency="5-terminal"
ERROR execute: Unresolved dependency dependency="1-init"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="4-node"
ERROR execute: Unresolved dependency dependency="4-python"
ERROR execute: Unresolved dependency dependency="4-ruby"
ERROR execute: Unresolved dependency dependency="4-rust"
ERROR execute: Unresolved dependency dependency="5-terminal"
ERROR execute: Unresolved dependency dependency="1-init"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="1-init"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="4-node"
ERROR execute: Unresolved dependency dependency="4-python"
ERROR execute: Unresolved dependency dependency="4-ruby"
ERROR execute: Unresolved dependency dependency="4-rust"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="1-init"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="4-node"
ERROR execute: Unresolved dependency dependency="4-python"
ERROR execute: Unresolved dependency dependency="4-ruby"
ERROR execute: Unresolved dependency dependency="4-rust"
ERROR execute: Unresolved dependency dependency="5-terminal"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="1-init"
ERROR execute: Unresolved dependency dependency="2-packages"
ERROR execute: Unresolved dependency dependency="3-services"
ERROR execute: Unresolved dependency dependency="4-node"
ERROR execute: Unresolved dependency dependency="4-python"
ERROR execute: Unresolved dependency dependency="4-ruby"
ERROR execute: Unresolved dependency dependency="4-rust"
ERROR execute: Unresolved dependency dependency="5-terminal"
TRACE execute: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute: Add dynamic constant 'include_variables' -> #{}
TRACE execute: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.4-python"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.4-rust"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.4-rust"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.4-rust"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.4-rust"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.4-rust"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR": "/usr/sbin/nvim", "GDMSESSION": "gnome", "GDM_LANG": "en_US.UTF-8", "GIO_LAUNCHED_DESKTOP_FILE_PID": "73748", "GNOME_KEYRING_CONTROL": "/run/user/1000/keyring", "GNOME_SETUP_DISPLAY": ":1", "GPG_TTY": "/dev/pts/1", "HOME": "/home/levi", "HSTR_CONFIG": "hicolor", "INVOCATION_ID": "9a3062e46eb8439196372e90e6945456", "JOURNAL_STREAM": "8:33078", "LANG": "en_US.UTF-8", "LC_ADDRESS": "en_US.UTF-8", "LC_ALL": "en_US.UTF-8", "LC_IDENTIFICATION": "en_US.UTF-8", "LC_MEASUREMENT": "en_US.UTF-8", "LC_MONETARY": "en_US.UTF-8", "LC_NAME": "en_US.UTF-8", "LC_NUMERIC": "en_US.UTF-8", "LC_PAPER": "en_US.UTF-8", "LC_TELEPHONE": "en_US.UTF-8", "LC_TIME": "en_US.UTF-8", "LESS_TERMCAP_md": "", "LOGNAME": "levi", "LS_COLORS": "rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:", "MAIL": "/var/spool/mail/levi", "MANAGERPID": "1390", "MOTD_SHOWN": "pam", "NODENV_SHELL": "zsh", "OLDPWD": "/home/levi", "P9K_SSH": "0", "P9K_TTY": "old", "PATH": "/usr/sbin:/home/levi/.goenv/bin:/home/levi/.nodenv/shims:/home/levi/.nodenv/bin:/home/levi/.pyenv/shims:/home/levi/.pyenv/bin:/home/levi/.rbenv/shims:/home/levi/.rbenv/bin:/usr/sbin:/sbin:/home/levi/.local/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PULUMI_SKIP_UPDATE_CHECK": "1", "PWD": "/home/levi/git/thefynx/workstation", "PYENV_SHELL": "zsh", "RBENV_SHELL": "zsh", "RUST_BACKTRACE": "full", "SESSION_MANAGER": "local/Desktop:@/tmp/.ICE-unix/1471,unix/Desktop:/tmp/.ICE-unix/1471", "SHELL": "/usr/bin/zsh", "SHLVL": "1", "SSH_AUTH_SOCK": "/run/user/1000/keyring/ssh", "SYSTEMD_EXEC_PID": "1775", "TERM": "xterm-256color", "TODOTXT_DEFAULT_ACTION": "ls", "USER": "levi", "USERNAME": "levi", "WAYLAND_DISPLAY": "wayland-0", "WINDOWID": "94455398634944", "WINIT_X11_SCALE_FACTOR": "1.5", "XAUTHORITY": "/run/user/1000/.mutter-Xwaylandauth.KQ9HY1", "XDG_CURRENT_DESKTOP": "GNOME", "XDG_MENU_PREFIX": "gnome-", "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", "XDG_SESSION_DESKTOP": "gnome", "XDG_SESSION_TYPE": "wayland", "_": "/usr/sbin/comtrya080", "_P9K_TTY": "/dev/pts/1"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'include_variables' -> #{}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'os' -> #{"bitness": "64-bit", "codename": "rolling", "distribution": "EndeavourOS", "edition": "unknown", "family": "unix", "hostname": "Desktop", "name": "linux", "version": "Rolling Release"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'user' -> #{"config_dir": "/home/levi/.config", "home_dir": "/home/levi", "id": "1000", "name": "Levi Smith", "username": "levi"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'variables' -> #{"desktopEnvironment": "cinnamon", "nodeVersion": "16.14.2", "pythonVersion": "3.11.0", "rubyVersion": "3.1.2", "userEmail": "levi@fynx.me", "userFullName": "Levi Smith"}
TRACE execute:{manifest="manifests.3-services"}:{action=command.run}: Add dynamic constant 'env' -> #{"ALACRITTY_LOG": "/tmp/Alacritty-73748.log", "ALACRITTY_SOCKET": "/run/user/1000/Alacritty-wayland-0-73748.sock", "ALACRITTY_WINDOW_ID": "94455398634944", "AWS_SDK_LOAD_CONFIG": "1", "BROWSER": "firefox", "COLORTERM": "truecolor", "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus", "DEBUGINFOD_URLS": "https://debuginfod.archlinux.org ", "DESKTOP_SESSION": "gnome", "DISPLAY": ":0", "DOCKER_CONTENT_TRUST": "0", "EDITOR"
```
Thanks @TheFynx, I know what the problem is now. I'll open a fix

Fix patch:
diff --git a/app/src/commands/apply.rs b/app/src/commands/apply.rs
index cd0032b4..954ab443 100644
--- a/app/src/commands/apply.rs
+++ b/app/src/commands/apply.rs
@@ -75,12 +75,17 @@ pub(crate) fn execute(args: &Apply, runtime: &Runtime) -> anyhow::Result<()> {
 
     for (name, manifest) in manifests.iter() {
         manifest.depends.iter().for_each(|dependency| {
-            let m1 = match manifests.get(dependency) {
+            let (local_dependency_prefix, _) = name.rsplit_once('.').unwrap_or(("", ""));
+
+            let resolved_dependency_name =
+                dependency.replace("./", format!("{}.", local_dependency_prefix).as_str());
+
+            let m1 = match manifests.get(&resolved_dependency_name) {
                 Some(manifest) => manifest,
                 None => {
                     error!(
                         message = "Unresolved dependency",
-                        dependency = dependency.as_str()
+                        dependency = resolved_dependency_name.as_str()
                     );
 
                     return;
diff --git a/examples/Comtrya.yaml b/examples/Comtrya.yaml
index 3685f051..6f54c842 100644
--- a/examples/Comtrya.yaml
+++ b/examples/Comtrya.yaml
@@ -2,8 +2,10 @@
 # Default: [.]
 # This is a list because we'll eventually support multiple.
 # However, only the first is used atm.
-manifests:
-  - https://github.com/rawkode/rawkode
+manifest_paths:
+  - .
+  # We also support Git repositories, using Docker's syntax:
+  #   https://docs.docker.com/build/building/context/#git-repositories
 
 # Used by the variables context provider:
 # context="variables" key="<key>" value="<value>"
@@ -12,4 +14,4 @@ variables:
   kuci: "xhpv"
 
 include_variables:
- - "dns+txt://comtrya.icepuma.dev"
+  - "dns+txt://comtrya.icepuma.dev"
diff --git a/examples/group/add_to_group.yaml b/examples/group/add_to_group.yaml
index 84097b87..811344da 100644
--- a/examples/group/add_to_group.yaml
+++ b/examples/group/add_to_group.yaml
@@ -1,5 +1,5 @@
 depends:
-  - group
+  - ./group
 
 actions:
   - action: user.add
@@ -7,6 +7,5 @@ actions:
     home_dir: /home/test
     username: test
     shell: sh
-    group: 
+    group:
       - testgroup
-


Test patch: