Code Monkey home page Code Monkey logo

modman's Introduction

Reeto Chatterjee

Hi! One day I'll think of something snappy to put here.

I'm currently working as a Site Reliability Engineer at the Google in London.

Visit my website so I can justify the amount of time it took me to kinda understand CSS.

modman's People

Watchers

 avatar  avatar

modman's Issues

Command completions

  • Add command completions for zsh (and bash?)
  • Completions for:
    • module names (using modman list)
    • cmd flags

Host specific configuration

  • Allow optional configuration dependent on system metadata, such as:

    • hostname
    • host type (server, graphical system etc.)
  • Configuration of meta-hosts which are collections of hosts that can be referred to as a group

Dependency Management

Current Behaviour

N/A

Expected Behaviour

  • Specify Arch Linux package dependencies (AUR using yay?)
    • User can install dependencies explicitly or as dependencies (in the pacman sense).
    • Optional dependencies for additional functionality (e.g. addditional aliases for shell etc.)

Atomic package operations

Current Behaviour

Although a package is verified at runtime, a partial install/uninstall may result from modifications between verifying a package and installing it. This is an unbounded delay due to the possibility of arbitrary init/cleanup scripts. In fact, the scripts themselves may cause a future package to be uninstallable.

Required behaviour

Implement a simple transaction system which requires:

  • All files to be modified successfully
  • Any script to run successfully

This can be implemented pretty simply by keeping track of progress and reverting if something wrong. This will not guarantee full atomicity (can have a failure cleaning up; fs changes between operations), but this should be good enough.

Additional complexity results from the separation of init and cleanup scripts. Although reverting files is easy, reverting the result of running an arbitrary script is not. A potential solution is to always require neither or both and pass the complexity of cleaning up to the scripts. Will also possibly require additional state to be generated about the install status of a module (in order to revert a failed uninstall without guessing whether the package was installed in the first place).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.