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
- Initialize a new project:
bucket init - Create and switch to a feature branch:
bucket branch create flask-dependency bucket branch switch flask-dependency
- 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"
- Commit the addition:
bucket vs commit
- Create a pull request to merge changes:
bucket pr create --source flask-dependency --target main --description "Add Flask dependency to project."
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8aa0b9f050b9c75265c77d25d27ecf8209b600809f75a38f2f23166c5958da2
|
|
| MD5 |
64e88797f0b6d9fef3b1f9904fc21464
|
|
| BLAKE2b-256 |
7df7d52cadf9b49491cca7420258f23b5ba090c58f669848eaec9c0b04187c9f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
761267d56034a280e2c7f2160fa642e6250a6419773f77e238b0ea03d39ed21a
|
|
| MD5 |
7679f7049d83d6e541a77f6825490c9d
|
|
| BLAKE2b-256 |
9d6cbca7c714a852c72e065567b48f99f6596105268b7240072a2e04d090f879
|