Boxer

 view release on metacpan or  search on metacpan

TODO  view on Meta::CPAN

  * Use Object::Remote
    + Add subclass to use Rex::Inline
    + Add subclass to use debootstrap/cdebootstrap/multistrap
  * Limit coercion and type checks
    <http://blogs.perl.org/users/joel_berger/2013/05/typetiny-rescues-moo.html#comment-1104703>
  * Implement additional commands and classes to create a system:
    + bless
    + Bootstrap::Debootstrap
    + Bootstrap::Live-build
    + Bless::Extlinux
  * Implement commands and classes to interact with an existing system:
    + refresh
    + detect
    + distill
  * Implement commands and classes to interact with config classes:
    + list
    + enable
    + disable
  * Implement commands and classes to echange config classes:
    + push
    + pull
    + publish
  * Implement trojan" functionality for install and bless classes, to
    embed as trigger unfolding at first boot in target environment.
  * Implement alternate CLI shim tools which mimic conventional tools,
    to bring boxer flexibility to existing unmodified scripts.
  * Implement web export and/or service usable with debian-installer for
    static/live boxer-driven "Hands-off" <http://www.hands.com/d-i/>.
  * Implement commands and classes to interact with bug trackers:
    + triage
  * Implement PXE target - i.e. DHCP+TFTP services serving preseed file.
    + <https://wiki.fogproject.org/wiki/index.php?title=IPXE>.
    + <https://wiki.fogproject.org/wiki/index.php?title=FOG_on_a_MAC>
  * Improve testsuite
    + Test implicit --skeldir (by setting ENV variable instead)
  * Check for items in both @pkgs and @pkgs_avoid
    + Fail by default
    + Warn and remove from @pkgs when --force


misc.

  * Borrow boilerplate patterns from https://metacpan.org/pod/Sympatic
  * Maybe implement warning field.
    Examples:
    + Reference <https://lists.debian.org/debian-boot/2018/05/msg00250.html>
      when including package unattended-upgrades.
    + Tweaking conffiles
      (known to fail later upgrade: See bug#311188).
  * Track unit testing code coverage:
    <https://stackoverflow.com/questions/533553/perl-build-unit-testing-code-coverage-a-complete-working-example>
  * Ask for node(s) interactively if not provided
    * But fail if not on an interactive terminal

  * Refactor modularity
    + Minimize dependencies of core binary package boxer
      - Introduce (and have core package recommend) binary package boxer-reclass
    + Add core option --features
      - Space-delimited feature sets, each colon, declared and comma-delimited
      - Each feature set shadows defaults of same feature set
      - Defaults: --features "gui-desktop:xfce gui-widgets:gtk3,gtk2,xfce"
    + Optionally store defaults compatible with apt-config
      - Introduce (and have core package recommend) binary package boxer-apt
      - boxer::Feature::ui "tui,gui,cli"; # wui
      - boxer::Feature::gui-widgets "xfce,gtk,sdl,wxgtk,xlib"; # mate,gnome,wx-gtk2,qt5,qt4,lxqt,kde,fltk,gnustep,glut,tk,athena,motif
      - boxer::Feature::gui-widgets::gtk "gtk3,gtk2"
      - boxer::Feature::gui-widgets::sdl "sdl2" # sdl1.2
      - boxer::Feature::gui-widgets::xlib "xcb,xlib"
      - boxer::Feature::gui-protocol "x11" # wayland
      - boxer::Feature::tui-widgets "whiptail,dialog,newt,slang,cdk,ncurses,wxbase";
      - boxer::Feature::script-lang "perl,python3"; # python2,tcl,ruby
      - boxer::Feature::network::attitude "extraverted"; # introverted
      - boxer::Feature::network::framework "systemd" # nm,ifupdown
      - Add commands to show/change features (similar to apt-mark?)
    + Have Boxer::World::Flat support dump, and others support load, of sets
      - Track features
    + Have Boxer cache Boxer::World::Flat set for system default features
      - Ship build-time generated default set with package boxer-apt
      - If non-flat world exist (e.g. boxer-reclass is installed),
        (re)generate and cache sets (and use only cache sets: ignore default set)
      - If only flat world exist and system features match features of default set,
        warn about missing package boxer-reclass and use default set
      - If only flat world exist and system features are different from features of default set,
        fail with error that features are customized and package boxer-reclass is needed to resolve them
    + Introduce pkg-exempt for conditional avoidance
      listing packages tolerating its avoidance
      to exclude if only tolerant packages recommend or depend on it
    + Introduce pkg-ban for unconditional avoidance
      to avoid e.g gpm on hardware without video console
      or libgl1 on GPU-less hardware too slow for software rendering
    + Deprecate pkg-avoid: ambiguous
    + Support tweaks prefix "in-target" and deprecrate "chroot /target"



( run in 2.855 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )