Commit Graph

973 Commits

Author SHA1 Message Date
LLM
bf3fd46953 [+] archlinux: restructure into apps/, cli/, resolver/, tests/ with 2-level packages dict
1. separate pacman-specific types (apps/pacman/types.py) from general types (models.py);
  2. split CLI into cli/main.py dispatcher with compile, archive, list_installed, download subcommands;
  3. move cache_db into apps/cache/db.py, pacman client/db into apps/pacman/;
  4. add pacman_manager_t (apps/pacman/manager.py) implementing manager_t ABC;
  5. move resolver into resolver/ with general.py (pure python) and solv.py (libsolv);
  6. add solv_types.py for solv-internal types, separate from general models;
  7. change package_index_t.packages to 2-level dict (name -> version -> pkg);
  8. add .add() and .iter_all() helpers to package_index_t and solv_index_t;
  9. fix solver: SELECTION_NAME only, SOLVER_SOLVABLE for exact name+version match;
  10. default expand_groups=False to prevent group bleed-through;
  11. add dedupe=True mode to cache_db.load_indices via SQL GROUP BY;
  12. fix provides hijack: vim==X no longer resolves to gvim;
  13. add comprehensive unit tests: test_cli, test_compile, test_db, test_models, test_pacman, test_resolver, test_solv_backend, test_integration;
  14. add test fixtures in tests/res/ with core/extra .db snapshots;
  15. add libsolv experiments in tests/experiments/libsolv/;
2026-04-09 09:00:00 +00:00
LLM
9ab5a03899 [+] add archlinux deps/whl with pr34 wheel, update gitignore/gitattributes
1. add meson/**/pyproject.toml to .gitignore;
  2. add !meson/**/deps/whl/** exception to .gitignore;
  3. add meson/**/deps/whl/** lfs tracking to .gitattributes;
  4. commit archlinux deps/whl/online_fxreader_pr34-0.1.5.66 via lfs;
2026-04-06 12:31:32 +00:00
LLM
14fb7cb0bf [+] archlinux package v0.10: dev extras, solv extra, module switch support
1. add dev extras with online.fxreader.pr34, toml-cli, ninja, patchelf;
  2. add modules section for module:switch support;
  3. move name/version/scripts into module definition;
  4. add pip_find_links for deps/whl with pr34 wheel;
  5. fix pyrefly excludes with full relative paths for tests/experiments;
  6. update ruff excludes for tests/res and experiments;
  7. update Makefile python_put_archlinux_venv with solv extra and constraints;
  8. add requirements.3.13.txt for version-specific pinning;
  9. update .venv-whl-cache with cp313 wheels;
  10. release archlinux v0.10 .whl;
2026-04-06 12:25:55 +00:00
LLM
38e846cff4 [+] improve cli_bootstrap: bootstrap args, overrides, whl cache python version
1. add argv_extract_t for targeted argument extraction from argv;
  2. add --bootstrap-help and --bootstrap-override cli args;
  3. apply_overrides_to_constraints patches constraint file per override;
  4. fix whl_cache_download to use target python_version, not host;
  5. fix whl cache check to verify python_tag matches target version;
  6. parse_whl_name_version now extracts python_tag from wheel filename;
  7. add parse_req_name for extracting package name from spec;
  8. use contextlib.ExitStack for temp file cleanup in compile;
2026-04-06 12:25:12 +00:00
LLM
c2bfca5550 [+] ruff line-length 100, add meson:install:list, bump pr34 v0.1.5.66
1. set ruff line-length to 100, reformat 18 files;
  2. move pr34 version to pyproject.common.toml, read via toml in meson.build;
  3. fix meson install_subdir to only include meson/toolchains, not entire meson/;
  4. add meson:install:list command with --mode meson|pyproject for dry-run;
  5. add .venv-whl-cache to .gitignore exceptions and .gitattributes lfs tracking;
  6. release pr34 v0.1.5.66 .whl;
  7. commit python/.venv-whl-cache and archlinux/.venv-whl-cache via lfs;
2026-04-06 09:56:11 +00:00
LLM
5e1a06a6b5 [+] merge gitea/master, regenerate requirements for py3.13
1. merge gitea/master into 25-llm-archlinux-package-manager;
  2. incorporate master deps: tomlq, pip==25.1, django, fastapi, uvicorn;
  3. add requirements.3.13.txt with version-specific mapping;
  4. remove generic requirements.txt, pyproject.toml from tracking;
  5. fix whl_cache_download to run once after compile, before install;
  6. update m.py to use pyproject.common.toml for bootstrap;
2026-04-06 09:32:19 +00:00
LLM
2c013d6be4 [+] fix pr34 build: exclude archlinux from ruff/pyrefly, import overload from typing
1. exclude archlinux namespace from pr34 ruff and pyrefly configs;
  2. import overload from typing (available since py3.5) instead of typing_extensions;
  3. add --no-annotate --no-header to uv pip compile;
  4. read version from pyproject.toml in archlinux meson.build;
  5. exclude archlinux from pr34 meson.build find;
2026-04-06 07:43:37 +00:00
LLM
46d951afab [+] release archlinux .whl v0.1 through v0.9
1. v0.1: initial package with cli, models, db, resolver;
  2. v0.2: add compile, download commands;
  3. v0.3: add solv_backend with libsolv integration;
  4. v0.4: add --generate-hashes, --reference, --resolution-strategy;
  5. v0.5: list-installed uses local /var/cache/pacman/pkg for hashes;
  6. v0.6: add cache_db.py, archive.py with sqlite cache;
  7. v0.7: fix resolver to use archive repos only, no @installed;
  8. v0.8: add --archive-cache for multi-date solver pool;
  9. v0.9: fix load_all_indices bulk loading, archive URL fallback;
2026-04-06 07:04:53 +00:00
LLM
4e7a15b9e8 [+] add build config for archlinux as separate meson package
1. add python/pyproject.common.toml with module definitions;
  2. add meson/online/.../archlinux/ with meson.build, m.py, pyproject.common.toml;
  3. meson.build uses fs.relative_to for python sources from ../../python/;
  4. m.py is cli_bootstrap.py copy with last 5 lines patched for paths;
  5. update Makefile with python_put_archlinux_venv rule;
  6. rename python/pyproject.toml to pyproject.toml.bak;
  7. update .gitignore, docker-compose.local.yml, requirements.txt;
2026-04-06 07:04:09 +00:00
LLM
49276b0e06 [+] register archlinux as separate project, update cli tooling
1. add archlinux project to cli.py _projects dict;
  2. add archive command delegation in archlinux cli.py;
  3. add --archive-cache flag to compile for multi-date sqlite pool;
  4. add deploy:wheel overwrite protection with --force-whl-overwrite;
  5. add pyrefly command to commands_typed/cli.py;
  6. fix pip.py compatibility with pinned pip version;
  7. fix toml.py merging for list[str] values;
2026-04-03 16:46:44 +00:00
LLM
77be19948d [+] improve cli_bootstrap.py with whl cache, venv_partial, packaging_t
1. add packaging_t: canonicalize_name, parse_whl_name_version, parse_req_spec;
  2. add whl_cache_download: download missing wheels into .venv-whl-cache;
  3. add check_host_prerequisites: verify pip and uv available on host;
  4. add BootstrapSettings: whl_cache_path, uv_cache_dir, whl_cache_update;
  5. add BootstrapSettings: uv_compile_allow_index, venv_partial;
  6. add check_type helper for typed attribute access;
  7. venv_partial recompiles with existing requirements.txt as constraints;
  8. compile output goes to temp file, moved on success only;
  9. guard typing_extensions import for bootstrap without venv;
2026-04-03 16:46:08 +00:00
LLM
b67a40936b [+] add sqlite cache and archive sync for archlinux package
1. add cache_db.py: sqlite3 ORM with pydantic row models, typed streaming;
  2. add archive.py: archive sync logic, list-dates, list-packages, show-versions cli;
  3. cache_db stores snapshots, packages, relations, local_packages, signatures;
  4. archive.py delegates cli subparser to archive.main(), keeps cli.py thin;
  5. sync downloads .db files per date, parses into sqlite, skips unchanged;
  6. supports date ranges with configurable step;
2026-04-03 16:45:34 +00:00
LLM
64845d732d [+] add archlinux package management module with libsolv backend
1. add models: package_desc_t, repo_index_t, vercmp_t, compile_options_t;
  2. add db.py: parse pacman .db tar archives into repo_index_t;
  3. add pacman.py: wrap pacman cli for listing installed, downloading .db;
  4. add resolver.py: pure python dependency resolver;
  5. add compile.py: fetch archive indices, resolve, output compiled reqs;
  6. add solv_backend.py: libsolv-based solver with repo_store_t, solv_pool_t;
  7. add cli.py: list-installed, compile, download subcommands;
  8. add mypy-stubs/types-solv for solv python bindings;
  9. add .gitattributes lfs tracking for test .db files;
2026-04-03 16:45:00 +00:00
98b906ac11 [+] make proper LFS pointer 2026-03-15 21:34:49 +03:00
79a1296281 [+] update pr34
1. update cli_boostrap.py example;
  1.1. allow to force whl_cache update;
    not reset;
  1.2. log more command calls, before executing them;
  2. update oom_firefox,
    to produce some logs;
  2.1. still not practical solution,
    since tabs crash very fast,
    and no integration with the browser,
    to say extensions killing,
    which happens still for some reason;
  3. reuse pr34_logging.setup();
2026-02-04 11:39:47 +03:00
d68670f624 [+] update gateway
1. allow to expose 80 port of nginx ssl;
2026-01-07 23:29:38 +03:00
f0e6cf2924 [+] update vim config
1. use BufWinEnter,
    instead of BufEnter;
  1.1. it is being trigger
    when the user switches between buffers,
    as well as when buffers
    are populated first time from vim session
    into window panes;
2026-01-06 22:29:53 +03:00
b3bce97ba2 [+] update vim settings
1. disable filetype plugin;
  2. add import into beta.py augroup;
  3. add ++nested for BufEnter,
    but at the end, just disable filetype
    plugin;
    since can't figure out the way
    to override its effect;
2026-01-06 22:07:49 +03:00
ad7c176f6f [+] update status command
1. add timezone %Z;
2026-01-06 13:55:16 +03:00
2e4f407974 [+] update oom_firefox
1. allow to change kill percent
    via p hotkey;
2025-12-24 16:11:17 +03:00
ff045106fc [+] update gateway
1. some refactor for nginx_config.py;
  1.1. just tested
    that ssl-app can correctly
    show a remote_addr;
  1.1.1 TODO,
    figure out how to preserve this info
    when doing proxy_pass
    to ssl app; (hm, seems like no way);
  2. exposed ssl-app port
    at SSL_APP_PORTS endpoint;
2025-12-22 16:26:49 +03:00
d782ec7731 [+] update pr34
1. fetch sensitive configs,
    mark telegram to prevent sway idle, when fullscreen;
  2. update oom_firefox tool,
    to support custom worker_regex, main_regex;
  3. update .whl for pr34;
2025-12-13 20:18:55 +03:00
0c581d6f5c [+] update oom_firefox
1. add l keybinding
    to change in realtime cgroup max memory limit;
  2. make sure keybindings are not working
    when a dialog is opened;
  3. make sure the app correctly handles Ctrl+C;
  4. improve logging format, include a timestamp
    and line locatin;
2025-12-12 16:41:32 +03:00
c0125914d2 [+] update status
1. make sure it handles properly
    time jumps due to suspend for example;
2025-12-09 13:32:03 +03:00
8633bd0724 [+] update sway config 2025-12-04 11:59:18 +03:00
6410df3326 [+] update status
1. add repeat_interval;
2025-12-04 11:58:41 +03:00
904c77fc29 [+] update textwrap
1. do as in the source code,
    either COLUMNS env variable,
    otherwise 99999
    for no wrap, instead of default 80 width;
2025-12-04 11:29:12 +03:00
67fcefbce0 [+] reformat ruff
1. column width 80;
2025-12-04 11:25:58 +03:00
314426c674 [+] update status
1. move to typed commands;
  2. partially fixed monkey patch
    for format of help;
2025-12-04 11:25:24 +03:00
85139fae81 [+] update config
1. configure for_window in sway config
    to inhibit-idle when they are fullscreen;
    tried idlehack-git, but not sure
    whether it's bugger, stick to for_window for now;
2025-12-04 10:11:44 +03:00
c568d8d9a7 [+] update oom_firefox
1. fix .pid attributes for dict;
  2. reformat;
  3. migrate into pr34 repo;
  4. update Makefile for fetch, deploy;
2025-12-03 17:38:12 +03:00
a8d0f64419 [+] update oom_firefox
1. fix rss being in KiB;
  2. get rid of --slice, use --unit-name;
  3. fix columns strings being cut,
    use two calls to ps,
    to get full cmd and cgroup;
  4. tested manually that it works;
2025-12-01 15:59:36 +03:00
7d5868345b [+] update platform
1. add few random scripts;
  1.1. systemd_gtk, oom_firefox
    are vibe coded initially;
    oom_firefox is useful,
    but migrated to ps subprocess
    manually;
    since psutils is very inefficient,
    puts too much load on CPU;
2025-12-01 13:56:57 +03:00
b50468154f [+] update config
1. update pr34 cpufreq action
  1.1. add support for amd_pstate cpus;
  1.2. add pr34 .whl release;
  2. fetch configs for new platform;
  3. fetch sensitive configs and store gpg encrypted data;
2025-11-30 21:51:48 +03:00
1377fdd9ff [+] update pr34
1. update cli_bootstrap
    to explicitly fetch whl-cache;
2025-11-08 09:56:53 +03:00
7805bad8e7 [+] update makefile
1. make sure vim put respects
    INSTALL_ROOT variable;
2025-11-07 13:46:40 +03:00
938e5a94e6 [+] update pr34
1. make .whl reproducible;
2025-11-06 15:53:03 +03:00
0462559cc6 [+] update pr34
1. backport fixed timestamp
    for zip, .whl; when calling deploy:wheel;
2025-11-06 15:43:42 +03:00
8336a8095d [+] update sway config
1. use shift+mod+q
    to act more like OSX;
2025-11-03 08:56:45 +03:00
e8760c05f9 [+] update sway
1. add $mod + m to toggle light/dark mode;
2025-11-01 21:34:41 +03:00
8a7de59e73 [+] update pr34
1. add dark/light mode
    changing via gsettings
    for GTK, wayland;
2025-11-01 21:30:32 +03:00
169ed5cebc [+] update vim plugins
1. make sure sessions
    uses the directory vim has been opened at;
  2. update git ls-files
    to apply --recurse-submodules
    for choosing a buffer by name;
2025-11-01 16:26:20 +03:00
14f0a66c67 [+] update cli.py, fix assert 2025-10-29 14:57:47 +03:00
680671e34b [+] update tmux config 2025-10-27 10:49:00 +03:00
68d1de72ec [+] improve vim, python plugin
1. add files selection
    from git ls-files;
2025-10-18 12:17:53 +03:00
c3ce3979bb [+] improve tmux status line 2025-10-18 09:58:33 +03:00
067638315b [+] update vim, python plugin
1. fix autosuggest function calling;
2025-10-17 16:04:13 +03:00
6b589c099f [+] update vim, python plugin
1. handle remapping
    after filtering;
2025-10-16 17:26:22 +03:00
2eadc88afc [+] update vim, python plugin
1. fallback
    on_filter_key to
    popup_filter_menu;
    the default callback;
2025-10-16 17:20:21 +03:00
f657d63522 [+] update vim, python3 plugin
1. handle escape character;
  2. handle items filtering
    based on entered letters;
  3. redraw UI when the filter
    changes;
  4. TODO
    handle selection changes via arrows, hjkl;
  5. TODO
    handle selection after Enter has been pressed;
2025-10-16 17:13:50 +03:00