Skip to main content

Dependency manager for any language, for free, no subscriptions.

Project description

Here’s a comprehensive documentation for your Bucket Dependency Manager, designed for easy understanding and practical use.


Bucket Dependency Manager Documentation

Author: Astridot

License: Makoschin Free Software License (MFSL)

Bucket is a lightweight, flexible dependency manager designed for managing projects in any language. With features like branching, version control, and pull request management, it supports collaborative development and simplifies dependency handling.


Features

  • Dependency Management: Add, edit, list, install, and remove dependencies.
  • Branching: Create, switch, list, and delete branches for isolated development workflows.
  • Versioning: Save, list, and rollback to specific project states with version snapshots.
  • Pull Requests: Create, list, view, and approve pull requests between branches.
  • Entrypoint Commands: Set and run entrypoint commands for your project.

Installation

Ensure you have Python 3.12 or later installed.

Using pip:

pip install bkt

CLI Commands

The CLI commands are invoked using bucket or bucket<version> (e.g. bucket6) after installation.


Getting Started

1. Initialize a Bucket

To start using Bucket in a project:

bucket init

This creates a .bucket directory and sets up the necessary structure.


2. Manage Dependencies

  • Add a dependency by specifying its name, source, and optional version or install command:
bucket dep add --name <name> --source <source> --version <version> --install-command <command>
  • List all dependencies:
    bucket dep list
    
  • Remove a dependency:
    bucket dep rm <name>
    
  • Install dependencies:
    bucket dep install <name>
    

Example:

bucket dep add --name requests --source https://pypi.org/project/requests --version 2.31 --install-command "pip install requests==2.31"

3. Manage Branches

Branches allow isolated development for specific dependencies.

  • Create a branch:
    bucket branch create --name <branch-name>
    
  • Switch to a branch:
    bucket branch switch --name <branch-name>
    
  • List branches:
    bucket branch list
    
  • Delete a branch:
    bucket branch rm --name <branch-name>
    

4. Handle Pull Requests

Collaborate by merging changes using pull requests.

  • Create a pull request:
    bucket pr create --source <source-branch> --target <target-branch> --description "<description>"
    
  • Approve and merge a pull request:
    bucket pr approve --id1 <pr-id> --id2 <pr-id2>
    
  • List open pull requests:
    bucket pr list
    
  • View a pull request:
    bucket pr info --id1 <pr-id> --id2 <pr-id2>
    

5. Version Control

Track changes with snapshots of your project's state.

  • Save a version:
    bucket vs commit
    
  • List saved versions:
    bucket vs history
    
  • Rollback to a version:
    bucket vs rollback --id1 <commit-id> --id2 <commit-id2>
    

6. Clean Up

Destroy the .bucket setup if no longer needed:

bucket destroy

Example Workflow

  1. Initialize a new project:
    bucket init
    
  2. Create and switch to a feature branch:
    bucket branch create flask-dependency
    bucket branch switch flask-dependency
    
  3. Add Flask dependency:
    bucket dep add --name flask --source https://pypi.org/project/flask --version 2.2.3 --install-command "pip install flask==2.2.3"
    
  4. Commit the addition:
    bucket vs commit
    
  5. Create a pull request to merge changes:
    bucket pr create --source flask-dependency --target main --description "Add Flask dependency to project."
    
  6. Approve and merge the pull request:
    bucket pr approve 20242311 170224
    

Additional Help

Run the following for detailed command help:

bucket --help

Contributing

Feedback and contributions are welcome! Open issues or submit pull requests on the GitHub repository.


License

This project is licensed under the Makoschin Free Software License (MFSL) Version 2.0. See the source code headers for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bkt-6.0.0.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bkt-6.0.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file bkt-6.0.0.tar.gz.

File metadata

  • Download URL: bkt-6.0.0.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for bkt-6.0.0.tar.gz
Algorithm Hash digest
SHA256 b8aa0b9f050b9c75265c77d25d27ecf8209b600809f75a38f2f23166c5958da2
MD5 64e88797f0b6d9fef3b1f9904fc21464
BLAKE2b-256 7df7d52cadf9b49491cca7420258f23b5ba090c58f669848eaec9c0b04187c9f

See more details on using hashes here.

File details

Details for the file bkt-6.0.0-py3-none-any.whl.

File metadata

  • Download URL: bkt-6.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for bkt-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 761267d56034a280e2c7f2160fa642e6250a6419773f77e238b0ea03d39ed21a
MD5 7679f7049d83d6e541a77f6825490c9d
BLAKE2b-256 9d6cbca7c714a852c72e065567b48f99f6596105268b7240072a2e04d090f879

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page