Signal drop!
Relay (operand.online) is unreachable.
Usually, a dropped signal means an upgrade is happening. Hold on!
Sorry, no connección.
Hang in there while we get back on track
Code Log - Rebuild `gram:op`
As I begin re-launching operand.online,
many problems and old pains reappear.
I had been ignoring my failed domain for months,
because I've been engrossed in occupying a new nomadic residence,
my camper has gone from Grand Rapids to Baltimore to Los Angeles,
to Baltimore to Chicago to Grand Rapids, this year alone.
I've been finding conferences to go to, although they've been of less use than I assumed. The long hours on the road and hurried composure that I normally embody mean that I'm late to show up and a mess when I do. I'm learning that there are other more sensible methods of spending my days, and this domain is one superb manner of being in many places at once.
Beside my human concerns, I'm spending more energy absorbing the news of global chaos, and I'm sad as each day begins that my sleep has likely carried me through someone elses' tragedy. I'm aligning my business to ending these ongoing and expanding horrors.
Whereas before I used my essays to explore my psychology and relationships, now I am beginning to see how much I had been lacking any purpose. I had a chance to briefly meet and collaborate with 404 Media, I had chances to learn from peers at OpenGovHub, and I am coming to see how my passions are indeed aligned, both to the quirks of my unique education and to the compelling demands of the now.
Rearrange.
I begin by erasing a couple unnecessary pieces of my app's homepage, the summary and the sidebar, and collapse the codebase index; these seem to only occupy space with no purpose.
As I record my source changes I realize that this new deployment machine needs a copy, because I am unable to push my code.
- I double-check that I can access the machine using ssh, to the public ip address.
- I double-check that I opened the router port (UDP 60001) needed by Mosh.
- I've already loaded in some code under
share/gram/:nue,nux,mech, andpool. These are my baseline programs that I can use to quickly push programs into place. mkcd share/gram/op; c initon the domain machine.- on local,
cd share/gram/op; c r set-url share nixos@<public-ip>:share/gram/op; c k - check that gram:op has a basic public copy.
Preliminaries: loading baseline code.
A number of days ago I breezed through some preliminaries on this machine.
I've already loaded in some code under
share/gram/:nue,nux,mech, andpool. These are my baseline programs that I can use to quickly push programs into place.
Here's how this happened;
these are copied from a raspberry pi's
~/.bash_history and ~/.config/nushell/history.txt,
as I ran through a similar process.
These logs are redundant because many of the commands failed, and needed to be rephrased or re-run after changing a config. They are here so a full and more concise deployment guide can be made someday, by slicing through to the core commands.
~/.bash_history
git diff
sudo rm -r /etc/nixos
sudo ln -s /home/nixos/.nux /etc/nixos
nix flake update
hx ~/.config/nixpkgs/config.nix
mkdir ~/.config/nix/
mkdir -p ~/.config/nix/
hx ~/.config/nix/nix.conf
nix flake update
hx flake.nix
nix flake update
sudo nixos-rebuild --flake /etc/nixos/#pebble
sudo nixos-rebuild --flake /etc/nixos/#pebble build
ls -alD /etc/nixos
cd /etc/nixos
sudo nixos-rebuild --flake .#pebble build
hx flake.nix
hx cell/pebble/index.nix
sudo nixos-rebuild --flake .#pebble build
ls /dev/disk/by-uuid/
hx cell/pebble/index.nix
sudo nixos-rebuild --flake .#pebble build
hx cell/pebble/index.nix
sudo nixos-rebuild --flake .#pebble build
sudo nixos-rebuild --flake .#pebble switch
hx .
sudo nixos-rebuild --flake .#pebble switch
hx .
sudo nixos-rebuild --flake .#pebble switch
sudo passwd
passwd
sudo nixos-rebuild --flake .#pebble switch
reboot
nix-shell -p elixir --run iex
hop home
ls .nue
nix-shell -p elixir --run iex
nix-shell -p elixir --run iex
ls -a
date
wget https://share.operand.online/gram/nux/?download=tar_gz
nsh wget wget https://share.operand.online/gram/nux/?download=tar_gz
nix-shell -p wget --run wget https://share.operand.online/gram/nux/?download=tar_gz
nix-shell -p wget --run 'wget https://share.operand.online/gram/nux/?download=tar_gz'
nix-shell -p gnutar --run 'tar -xzvf ./index.html?download=tar_gz'
mv nux .nux
nix-shell -p wget --run 'wget https://share.operand.online/gram/nux/?download=tar_gz -O nux.tar.gz'
mv index.html\?download\=tar_gz nux.tar.gz
nix-shell -p wget --run 'wget https://share.operand.online/gram/nue/?download=tar_gz -O nue.tar.gz'
nix-shell -p gnutar --run 'tar -xzvf ./nue.tar.gz'
nix-shell -p wget --run 'wget https://share.operand.online/gram/mech/?download=tar_gz -O mech.tar.gz'; nix-shell -p gnutar --run 'tar -xzvf ./mech.tar.gz'
ls mech
mv nue .nue
ls nue
sudo chown nixos nue
ls nue
sudo chown -R nixos nue
ls -al
ls .nux
ls .nue
ls mech
nix-shell -p wget --run 'wget https://share.operand.online/gram/mech/?download=tar_gz -O mech.tar.gz'; nix-shell -p gnutar --run 'tar -xzvf ./mech.tar.gz'; mv mech .mech
nix-shell -p wget --run 'wget https://share.operand.online/gram/mech/?download=tar_gz -O mech.tar.gz'; nix-shell -p gnutar --run 'tar -xzvf ./mech.tar.gz'; mv mech .mech
rm mech.tar.gz mech; nix-shell -p wget --run 'wget https://share.operand.online/gram/mech/?download=tar_gz -O mech.tar.gz'; nix-shell -p gnutar --run 'tar -xzvf ./mech.tar.gz'; mv mech .mech
rm mech.tar.gz mech; nix-shell -p wget --run 'wget https://share.operand.online/gram/mech/?download=tar_gz -O mech.tar.gz'; nix-shell -p gnutar --run 'tar -xzvf ./mech.tar.gz'; mv mech .mech
rm mech.tar.gz mech; nix-shell -p wget --run 'wget https://share.operand.online/gram/mech/?download=zip -O mech.zip'
hx mech.zip
ls -al mech.zip
rm mech.zip
sudo ls /etc/nixos/
ls /etc
ls /etc/nixos/
nixos-generate-config
sudo nixos-generate-config
sudo cp /etc/nixos/hardware-configuration.nix ~/.nux/cell/pebble/machine.nix
cd .nux
git status
nix-shell -p git
nix-shell -p git helix
~/.config/nushell/history.txt
rm -r ~/.config/nushell; ln -s ~/.nue ~/.config/nushell
ls ~/.config/nushell/
session hop
hx ~/.nue/page.nu
hx ~/.nue/media.nu
atuin init nushell
mkdir ~/.local/share/atuin
atuin init nu | save ~/.local/share/atuin/init.nu
$env.NU_VERSION
hx ~/.local/share/atuin/init.nu
zoxide init nu | save ~/.zoxide.nu
zoxide init nushell | save ~/.zoxide.nu
starship init nu
starship init nu | save ~/.cache/starship/init.nu
nsh elixir iex
sudo nix-channel --add https://nixos.org/channels/nixpkgs-stable nixos
sudo nix-channel --update
ip a
hx /etc/nixos
hostname
x -r
hx /etc/nixos
x -r
x
hx /etc/nixos
h -r
x
rg hypr cell
ag hypr cell
grep hypr
x -r
pwd
ls
c s
clear
ls
nsh elixir iex
sudo nix-channel --add https://nixos.org/channels/nixpkgs-stable nixos
sudo nix-channel --update
ip a
date
date now
zellij action dump-session
zellij action dump-layout
zellij action dump-layout | save ~/.config/zellij/session/home.kdl
zellij attach -c home
hop home
mkdir ~/.config/zellij/session
zellij action dump-layout | save ~/.config/zellij/session/home.kdl
zellij attach -c home
hop home
date now
sudo nix-channel --update
cycle { date now }
sudo nix-channel --update
sudo ntpdate
h
date now
x
date now
sudo ntpdate time.nist.gov
sudo systemctl stop ntpdate
h -r
http get https://python.org
ping python.org
ping nixos.org
ip a
x
iex
which elixir
h
iex
mkcd relay
cd ..
rmdir relay
mix new relay
cd relay
hx mix.exs
iex -S mix
mix deps.get
iex -S mix
mix compile
http get https://share.operand.online/gram/op/flake.nix
http get https://share.operand.online/gram/op/flake.nix | save flake.nix
hx flake.nix
nd mix compile
hx flake.nix
mix compile
nd mix compile
hx flake.nix
nd mix compile
hx flake.nix
nd mix compile
hx flake.nix
nd mix compile
iex -S mix
hx ~/.bash_history ~/.config/nushell/history.txt
x
ip a
x
Upgrading Node Packages
NodeJS is infamous for "dependency hell", a condition where a full day or occasionally a week can be expended in researching how packages have been upgraded, and how each package depends on others.
For this essay,
i'm hoping to use the collapsible feature of DaisyUI,
and I saw that the package had an upgrade.
As I tried to upgrade that package, I began seeing myself pulled into a dependency hell loop.
Here are the immediate symptoms;
error Invariant Violation: expected workspace package to exist for "eslint"
error Invariant Violation: expected workspace package to exist for "ts-jest"
error Invariant Violation: expected workspace package to exist for "@babel/plugin-bugfix-firefox-class-in-computed-class-key"
error Invariant Violation: expected workspace package to exist for "@babel/plugin-bugfix-safari-class-field-initializer-scope"
error Invariant Violation: expected workspace package to exist for "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression"
error Invariant Violation: expected workspace package to exist for "@eslint/plugin-kit"
error Invariant Violation: expected workspace package to exist for "minimatch"
error Invariant Violation: expected workspace package to exist for "glob" at invariant (/nix/store/8j2jw3v2vzjl9z4xkw2m9xsqxaxzdw89-yarn-1.22.22/libexec/yarn/lib/cli.js:2318:15)
error Invariant Violation: expected workspace package to exist for "@babel/cli"
error Invariant Violation: expected workspace package to exist for "@eslint/config-array"
Each one of these lines indicates one-or-more runs of yarn install,
after changing the dependency index inside gram:op/assets/package.json;
each of these errors also required me to head to npm,
and search for the missing package so I could include the proper recent version number.
This was a failing method, and new problems kept appearing.
I realized a more dominant error was higher in the logs, preceding these "invariant violations": the "unmet peer dependency".
warning " > @babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5" has unmet peer dependency "@babel/core@^7.0.0".
warning " > @babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1" has unmet peer dependency "@babel/core@^7.0.0".
warning " > @babel/preset-env@7.29.5" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1" has unmet peer dependency "@babel/core@^7.13.0".
warning "@babel/preset-env > @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-corejs2@0.4.17" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-corejs2@0.4.17" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".warning "@babel/preset-env > babel-plugin-polyfill-regenerator@0.6.8" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-corejs2 > @babel/helper-define-polyfill-provider@0.6.8" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-corejs2 > @babel/helper-define-polyfill-provider@0.6.8" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".warning " > postcss-import@16.1.1" has unmet peer dependency "postcss@^8.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-corejs3@0.14.2" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-corejs3@0.14.2" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".warning "@babel/preset-env > @babel/plugin-transform-async-to-generator > @babel/helper-remap-async-to-generator@7.27.1" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-corejs3 > @babel/helper-define-polyfill-provider@0.6.8" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".
warning "@babel/preset-env > babel-plugin-polyfill-regenerator@0.6.8" has unmet peer dependency "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".
warning "@babel/preset-env > @babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-syntax-import-assertions@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-syntax-import-attributes@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-syntax-unicode-sets-regex@7.18.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-syntax-unicode-sets-regex > @babel/helper-create-regexp-features-plugin@7.28.5" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-syntax-unicode-sets-regex > @babel/helper-create-regexp-features-plugin@7.28.5" has unmet peer dependency "@babel/core@^7.0.0".warning "@babel/preset-env > @babel/plugin-transform-class-static-block > @babel/helper-create-class-features-plugin@7.29.3" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-arrow-functions@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-async-generator-functions@7.29.0" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-async-generator-functions > @babel/helper-remap-async-to-generator@7.27.1" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-async-to-generator@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-async-to-generator > @babel/helper-remap-async-to-generator@7.27.1" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-block-scoped-functions@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-block-scoping@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-classes@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-classes > @babel/helper-replace-supers@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-class-properties@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-class-properties > @babel/helper-create-class-features-plugin@7.29.3" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-class-static-block@7.28.6" has unmet peer dependency "@babel/core@^7.12.0".
warning "@babel/preset-env > @babel/plugin-transform-class-static-block > @babel/helper-create-class-features-plugin@7.29.3" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-computed-properties@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-destructuring@7.28.5" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-dotall-regex@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-duplicate-keys@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-dynamic-import@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-explicit-resource-management@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-exponentiation-operator@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-export-namespace-from@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-for-of@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-function-name@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-json-strings@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-literals@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-logical-assignment-operators@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-member-expression-literals@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-modules-amd@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-modules-amd > @babel/helper-module-transforms@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-modules-commonjs@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-modules-commonjs > @babel/helper-module-transforms@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-modules-systemjs@7.29.4" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-modules-umd@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-modules-umd > @babel/helper-module-transforms@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-named-capturing-groups-regex@7.29.0" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-new-target@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-nullish-coalescing-operator@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-numeric-separator@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-object-rest-spread@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-object-super@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-optional-catch-binding@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-optional-chaining@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-parameters@7.27.7" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-private-methods@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-private-methods > @babel/helper-create-class-features-plugin@7.29.3" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-private-property-in-object@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-property-literals@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-regenerator@7.29.0" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-regexp-modifiers@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-reserved-words@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-shorthand-properties@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-spread@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-sticky-regex@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-template-literals@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-typeof-symbol@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-unicode-escapes@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-unicode-property-regex@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-unicode-regex@7.27.1" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-env > @babel/plugin-transform-unicode-regex > @babel/helper-create-regexp-features-plugin@7.28.5" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/plugin-transform-unicode-sets-regex@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-env > @babel/preset-modules@0.1.6-no-external-plugins" has unmet peer dependency "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0".
warning " > @babel/preset-typescript@7.28.5" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-typescript > @babel/plugin-syntax-jsx@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-typescript > @babel/plugin-transform-modules-commonjs@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-typescript > @babel/plugin-transform-modules-commonjs > @babel/helper-module-transforms@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-typescript > @babel/plugin-transform-typescript@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-typescript > @babel/plugin-transform-typescript > @babel/helper-create-class-features-plugin@7.29.3" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-typescript > @babel/plugin-transform-typescript > @babel/helper-create-class-features-plugin > @babel/helper-replace-supers@7.28.6" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/preset-typescript > @babel/plugin-transform-typescript > @babel/plugin-syntax-typescript@7.28.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning: Git tree '/home/calliope/share/gram/op' is dirty
warning " > postcss-import@16.1.1" has unmet peer dependency "postcss@^8.0.0".
warning " > ts-jest@29.4.9" has unmet peer dependency "jest@^29.0.0 || ^30.0.0".
warning " > ts-jest@29.4.9" has unmet peer dependency "typescript@>=4.3 <7".
warning " > ts-jest@29.4.9" has unmet peer dependency "typescript@>=4.3 <7".warning " > vite-plugin-babel@1.6.0" has unmet peer dependency "@babel/core@^7.0.0".
warning " > vite-plugin-babel@1.6.0" has unmet peer dependency "@babel/core@^7.0.0".
If you take these ~100 errors, place them in a helix buffer,
place a cursor on each line, skim to the third quote, and erase the preceding phrase,
you have ~100 lines of only the peer dependencies that are being called for.
If you then select the full buffer and run :pipe sort , you can see the minimal requirements:
"@babel/core@^7.0.0".
"@babel/core@^7.0.0-0".
"@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0".
"@babel/core@^7.12.0".
"@babel/core@^7.13.0".
"@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0".
"jest@^29.0.0 || ^30.0.0".
"postcss@^8.0.0".
"typescript@>=4.3 <7".
try {rm -r deps assets/node_modules}
nd mix deps.get
nd yarn install --cwd assets
nd mix assets.build
This really did nothing for me;
after going through the process I had remaining invariant violations,
and my package.json was expanding beyond means.
Before:
{
"private": true,
"workspaces": [
"../deps/*"
],
"dependencies": {
"daisyui": "^5.5",
"phoenix": "workspace:*",
"phoenix_html": "workspace:*",
"phoenix_live_view": "workspace:*",
"postcss-import": "^16.1",
"tailwindcss": "^4.3",
"theme-change": "^2.5",
"topbar": "^3.0",
"vite": "^8.0",
}
}
an hour in:
{
"private": true,
"workspaces": [
"../deps/*"
],
"dependencies": {
"@babel/core": "^7.0",
"@babel/preset-env": "^7.29",
"@eslint/config-array": "*",
"@eslint/plugin-kit": "*",
"@jest/reporters": "*",
"@tailwindcss/vite": "^4.3",
"daisyui": "^5.5",
"eslint": "^10.3",
"glob": "^13.0",
"json5": "*",
"minimatch": "^10.2",
"phoenix": "workspace:*",
"phoenix_html": "workspace:*",
"phoenix_live_view": "workspace:*",
"postcss": "^8",
"postcss-import": "^16.1",
"tailwindcss": "^4.3",
"theme-change": "^2.5",
"topbar": "^3.0",
"typescript": "^6.0",
"vite": "^8.0"
}
}
Re-sparking
I rigged up most of my JS-compiler procedure using phoenix_vite,
and this package includes an Igniter module to spark the necessary code and configs.
I decide to erase the package.json index and begin again.
➜ rm package.json
➜ rm assets/yarn.lock
➜ nd mix igniter.install phoenix_vite
warning: Git tree '/home/calliope/share/gram/op' is dirty
checking for igniter in project ✔
Updating project's igniter dependency ✔
compiling igniter ✔
compile ✔
Dependency phoenix_vite is already in mix.exs. Should we replace it?
Desired: `{:phoenix_vite, "~> 0.4"}`
Found: `{:phoenix_vite, "~> 0.4.3"}`
[Y/n] n
`phoenix_vite.install` x
Issues:
* assets/vite.config.mjs: File already exists
* Cannot move priv/static/corp/dlcp.cert.pdf to assets/public/corp/dlcp.cert.pdf, as assets/public/corp/dlcp.cert.pdf already exists.
* Cannot move priv/static/corp/2024-04-21.dlcp.png to assets/public/corp/2024-04-21.dlcp.png, as assets/public/corp/2024-04-21.dlcp.png already exists.
* Cannot move priv/static/corp/dlcp.CorpForProfitDomesticInitialFiling.pdf to assets/public/corp/dlcp.CorpForProfitDomesticInitialFiling.pdf, as assets/public/corp/dlcp.CorpForProfitDomesticInitialFiling.pdf already exists.
* Cannot move priv/static/cache_manifest.json to assets/public/cache_manifest.json, as assets/public/cache_manifest.json already exists.
* Cannot move priv/static/corp/CP575Notice_1704499942839.pdf to assets/public/corp/CP575Notice_1704499942839.pdf, as assets/public/corp/CP575Notice_1704499942839.pdf already exists.
* Cannot move priv/static/images/favicon.ico to assets/public/images/favicon.ico, as assets/public/images/favicon.ico already exists.
* Cannot move priv/static/robots.txt to assets/public/robots.txt, as assets/public/robots.txt already exists.
* Cannot move priv/static/images/logo.svg to assets/public/images/logo.svg, as assets/public/images/logo.svg already exists.
* Cannot move priv/static/fonts/fa-solid-900.ttf to assets/public/fonts/fa-solid-900.ttf, as assets/public/fonts/fa-solid-900.ttf already exists.
* Cannot move priv/static/images/screen.png to assets/public/images/screen.png, as assets/public/images/screen.png already exists.
➜ try { rm -r assets/vite.config.mjs priv/static assets/package.json assets/yarn.lock }
➜ nd mix igniter.install phoenix_vite
These folders will be created:
/assets/public
These files will be removed:
* assets/vendor/daisyui-theme.js
* assets/vendor/daisyui.js
* assets/vendor/topbar.js
The following installer was found and executed: `phoenix_vite.install` - Warnings:
* Failed to remove dependency :esbuild from `mix.exs`.
Please remove the old dependency manually.
* Failed to remove dependency :tailwind from `mix.exs`.
Please remove the old dependency manually.
These tasks will be run after the above changes:
* deps.clean --unlock --unused esbuild
* deps.clean --unlock --unused tailwind
* assets.setup
Warning! Uncommitted git changes detected in the project.
You may want to save these changes and rerun this command.
This ensures that you can run `git reset` to undo the changes.
Output of `git status -s --porcelain`:
D assets/package.json
D assets/vite.config.mjs
D assets/yarn.lock
M config/dev.exs
M config/prod.exs
M config/runtime.exs
M flake.lock
M flake.nix
M lib/op_web/live/chronicle/show.ex
M lib/op_web/router.ex
M lib/render.ex
M mix.exs
M mix.lock
D priv/static/images/logo.svg
Proceed with changes?
[Y/n] y
Resolving Hex dependencies...
Resolution completed in 0.274s
Unchanged:
bandit 1.11.0
cachex 4.1.1
call 0.0.2
db_connection 2.10.1
decimal 3.1.0
dns_cluster 0.2.0
earmark_parser 1.4.44
eternal 1.2.2
ex_ast 0.11.2
ex_doc 0.40.2
ex_hash_ring 6.0.4
ex_heroicons 3.1.0
expo 1.1.1
file_system 1.1.1
finch 0.22.0
floki 0.38.1
gettext 0.26.2
git_cli 0.3.0
glob_ex 0.1.11
hpax 1.0.3
igniter 0.8.0
jason 1.4.5
jumper 1.0.2
live_debugger 0.3.2
lumis 0.5.0
makeup 1.2.1
makeup_elixir 1.0.1
makeup_erlang 1.1.0
mdex 0.12.2
mime 2.0.7
mint 1.8.0
nimble_options 1.1.1
nimble_parsec 1.4.2
nimble_pool 1.1.0
owl 0.13.0
phoenix 1.8.7
phoenix_html 4.3.0
phoenix_html_helpers 1.0.1
phoenix_live_dashboard 0.8.7
phoenix_live_reload 1.6.2
phoenix_live_view 1.1.30
phoenix_pubsub 2.2.0
phoenix_template 1.0.4
phoenix_vite 0.4.3
plug 1.19.1
plug_crypto 2.1.1
postgrex 0.22.2
req 0.5.17
rewrite 1.3.0
rustler_precompiled 0.9.0
sleeplocks 1.1.4
sobelow 0.14.1
sourceror 1.12.0
spitfire 0.3.11
telemetry 1.4.2
telemetry_metrics 1.1.0
telemetry_poller 1.3.0
text_diff 0.1.0
thousand_island 1.4.3
tox 0.2.3
unsafe 1.0.2
websock 0.5.3
websock_adapter 0.5.9
yamerl 0.10.0
yaml_elixir 2.12.1
yaml_front_matter 1.0.0
All dependencies are up to date
** (File.Error) could not remove file "assets/vendor/daisyui-theme.js": no such file or directory
(elixir 1.18.4) lib/file.ex:1222: File.rm!/1
(elixir 1.18.4) lib/enum.ex:987: Enum."-each/2-lists^foreach/1-0-"/2
(igniter 0.8.0) lib/igniter.ex:1253: Igniter.do_or_dry_run/2
(igniter 0.8.0) lib/igniter/util/install.ex:211: Igniter.Util.Install.run_installers/5
(mix 1.18.4) lib/mix/task.ex:495: anonymous fn/3 in Mix.Task.run_task/5
(mix 1.18.4) lib/mix/cli.ex:107: Mix.CLI.run_task/2
/nix/store/4nvnygngnha29ycn4lilh5iazc6hikff-elixir-1.18.4/bin/mix:2: (file)
So, an error appears after much helpful guidance. good enough. obey guidance.
I check mix.exs and see there is no dependency on esbuild or tailwindcss. odd.
Maybe my dependencies are old.
➜ try { rm -r deps }; nd mix deps.update --all
➜ try { rm -r assets/vendor assets/vite.config.mjs priv/static assets/package.json assets/yarn.lock }; nd mix igniter.install phoenix_vite
This final error occurred again,
** (File.Error) could not remove file "assets/vendor/daisyui-theme.js": no such file or directory
so I added some quirky placeholder-insertions into my command:
[ assets/vendor assets/vite.config.mjs priv/static assets/package.json assets/yarn.lock ] | each {|n| try { rm -r $n } }
[ assets/vendor/daisyui-theme.js
] | each { mkdir ($in | path dirname); touch $in; }
nd mix igniter.install phoenix_vite
This also failed.
Why was I doing all this?
I remembered the reason - I planned to make those code snippets above accordion-able. This is not worth the hours of dependency upgrades. I was miserable and pulled in so deep.
One source of my misery here is that I am currently supposed to be in DC; these computer upgrades have had me pegged to the desk for 24 hours longer than planned, and there's more hardware issues to address before I go. I need to pull back out of this unplanned upgrade cycle.
Undue.
I run c co -b vite, making a branch for my changes.
I run cap, my alias for git add -p.
Anything to do with these dependency upgrades goes into the branch.
I commit, then change back to main. Clean branch.
As I try to rebuild again and reclaim the normal experience,
I see a line inside mix.exs for installing dependencies.
yarn install --production.
I run:
nd yarn install --cwd assets --production
Success. Goddamn, one missing option this whole day.
Resume, deploy.
So, up and running locally. Yay? Seems like a small consolation. Now I need to log on to the lab and proxy the code to the domain.
Begin by seeing if I can push the changes, to [gram:op] and [gram:page].
I had some code to help on this, inside [gram:nue/gram.nu] (naming issue?) though that's basically useless now, obscured through many broken layers.
➜ c r set-url share nixos@76.112.8.171:unshare/page
➜ c k share
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 24 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 548 bytes | 548.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: error: refusing to update checked out branch: refs/heads/main
remote: error: By default, updating the current branch in a non-bare repository
remote: is denied, because it will make the index and work tree inconsistent
remote: with what you pushed, and will require 'git reset --hard' to match
remote: the work tree to HEAD.
remote:
remote: You can set the 'receive.denyCurrentBranch' configuration variable
remote: to 'ignore' or 'warn' in the remote repository to allow pushing into
remote: its current branch; however, this is not recommended unless you
remote: arranged to update its work tree to match what you pushed in some
remote: other way.
remote:
remote: To squelch this message and still keep the default behaviour, set
remote: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To 76.112.8.171:unshare/page
! [remote rejected] main -> main (branch is currently checked out)
error: failed to push some refs to '76.112.8.171:unshare/page'