New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

makim

Package Overview
Dependencies
Maintainers
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

makim

Simplify the usage of containers

  • 1.23.1
  • PyPI
  • Socket score

Maintainers
3

Makim

CI Python Versions Package Version License Discord

Makim is inspired by tools like Make and Ansible, focusing on improving task definition and dependency management. Instead of using the Makefile format, it utilizes YAML for defining tasks.

  • License: BSD 3 Clause
  • Documentation: Makim Docs

Features

  • Help Text as First-Class: Add detailed help text to tasks and arguments for clear documentation.
  • Task Arguments: Define and manage arguments with types, defaults, and descriptions.
  • Dependencies with Conditional Control: Set task dependencies with if conditionals to manage execution dynamically.
  • Environment Variables: Scope variables globally, by group, or by task to reduce redundancy and maintain modularity.
  • Jinja2 Templating: Access arguments, variables, or environment variables via Jinja2 templates.
  • Matrix Configuration: Automate tasks across multiple parameter combinations (ideal for CI/CD workflows).
  • Hooks: Use pre-run and post-run hooks to customize task lifecycles.
  • Scheduler: Cron-like scheduling with APScheduler integration for periodic tasks.
  • Remote Execution: Execute tasks on remote servers via SSH with flexible configurations.
  • Validation: Ensures .makim.yaml configurations are correct with schema validation.

How to use it

First you need to place the config file .makim.yaml in the root of your project. This is an example of a configuration file:

groups:
  build:
    env:
      GROUP_ENV: group_value
    tasks:
      clean:
        help: Clean build artifacts
        args:
          cache:
            type: bool
            action: store_true
            help: Remove all cache files
        run: |
          echo "Cleaning build directory..."
          rm -rf build/
      compile:
        help: Compile the project
        hooks:
          pre-run:
            - task: clean # Run 'clean' before 'compile'
        run: |
          echo "Compiling the project..."

# Scheduler for automated tasks
scheduler:
  daily-clean:
    task: build.clean
    schedule: "0 0 * * *" # Every day at midnight

Some examples of how to use it:

  • run the compile task: makim build.compile

  • run the clean task with argument: makim build.clean --cache

The help menu for the .makim.yaml file would looks like this:

$ makim --help

 Usage: makim [OPTIONS] COMMAND [ARGS]...

 Makim is a tool that helps you to organize and simplify your helper commands.

╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --version             -v            Show the version and exit                                                                                                                      │
│ --file                        TEXT  Makim config file [default: .makim.yaml]                                                                                                       │
│ --dry-run                           Execute the command in dry mode                                                                                                                │
│ --verbose                           Execute the command in verbose mode                                                                                                            │
│ --install-completion                Install completion for the current shell.                                                                                                      │
│ --show-completion                   Show completion for the current shell, to copy it or customize the installation.                                                               │
│ --help                              Show this message and exit.                                                                                                                    │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ build ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ build.clean     Clean build artifacts                                                                                                                                              │
│ build.compile   Compile the project                                                                                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Extensions ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ cron            Tasks Scheduler                                                                                                                                                    │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

 If you have any problem, open an issue at: https://github.com/osl-incubator/makim

As you can see, the help menu automatically adds information defined by all the help key, inside the .makim.yaml file.

Playground

Experience makim directly in your browser using Google Colab! Google Colab is an online platform that allows you to write, run, and share Python code through your browser. It is especially useful for machine learning, data analysis, and education.

To try makim, simply click the following link, make a copy of the notebook to your drive, and then you can modify and execute the code as needed:

Experiment with makim on Google Colab

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc