Skip to main content

Stackler

Working with Phabricator Stack has never been so easy.

$ stackler submit -m "rebase msg"
By continuing, this script will:
Update D157389 with [24a42cd9 1/3 Add Framework], message: rebase msg.
Update D157390 with [67cfa09f 2/3 Add UI], message: rebase msg.
Submit [7bc9760d 3/3 Add API] based on [67cfa09f 2/3 Add the UI framework fo...].
  • Display the working stack
  • Submit/Update all the commits into a Phabricator Stack
  • Wrap around git rebase <sha>^ to allow easy mid-stack edit

Install

With pipx

# get pipx, which runs a pip command easily
brew install pipx
pipx ensurepath

# use pipx to install stackler
pipx install stackler

Manual Install

# install from pip
pip3 install --user stackler

If your path isn't setup to work with pip already, as in if you see

WARNING: The script stackler is installed in <pip-path> which is not on PATH.

You need to add the pip executable path to your $PATH. Here are some examples:

  • bash

    echo -n 'PATH="$(python3 -m site --user-base)/bin:${PATH}"' >> ~/.bash_profile
    
  • zsh

    echo -n 'PATH="$(python3 -m site --user-base)/bin:${PATH}"' >> ~/.zshrc
    

Develop

Roadmap

  • Arc land Improvements
    • Add the ability to arc diff --create
    • Landing on custom base / target arc land --onto
  • Complex Repo Support
    • Exit gracefully when .arcconfig is not found
    • Support config file to point to .arcconfig
  • Environment Precheck
    • Have a setup / doctor command to check environment setup
  • Test and make sure the branches created by arc work work
    • Submission by multiple people on custom base
  • Edit the stack (wrap around git rebase -i)
    • Wrap around git rebase -i <target>^ to start the work of editing one commit
    • Wrap around git rebase --continue to complete the edit action
  • Basic functionality (submit the stack and chain the diffs)
  • Print the stack
  • Gracefully land
    • Pull and rebase before landing
    • Wrap around arc land
    • reset head after calling land

Setup Enviornment

poetry install
poetry config virtualenvs.in-project true
poetry shell

Make sure you use the Python in the virtual environment setup by poetry. In VS Code, use ⌘⇧P and enter Select Interpreter, then pick the one with python.

Linter and Formatter

As specified in the VS Code setting file (.vscode/settings.json), this project uses pylint for linting and autopep8 for auto formatting.

Publish

This is mostly an excerpt from Typer CLI's publish documentataion.

Add PyPI API Token (Once)

poetry config pypi-token.pypi <pypi api token>

Publish to PyPI

  • Make sure you bump the version.
  • Publish.
poetry publish --build

Metadata

Release files for stackler 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stackler 0.2.2
File Size Uploaded Provenance Actions
stackler-0.2.2.tar.gz 13.9 kB Without provenance Details for stackler-0.2.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for stackler 0.2.2
File Interpreter ABI Platform Actions
stackler-0.2.2-py3-none-any.whl Python 3 none any Details for stackler-0.2.2-py3-none-any.whl

Total release size: 28.1 kB

Release files / stackler-0.2.2.tar.gz

Download URL stackler-0.2.2.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dc4892e230b87ebe46d5fcf1107ec13145f544c143f91e218a25e5e402e9b04d
BLAKE2b-256 checksum
How to use checksums
428c8f6cd5f3a6e53e6dcd809993c20492946abe85491eb4e00555cf64b8d9d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.14 CPython/3.9.17 Darwin/22.3.0

Release files / stackler-0.2.2-py3-none-any.whl

Download URL stackler-0.2.2-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cde1d47315499fb41ff9685875330bcbd4b75cc843d6e44b3dc2246673cf4ef2
BLAKE2b-256 checksum
How to use checksums
f0cef06b94777d55abae1dee09d66816ee130b891ea9941dafd0c9bc151096bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.14 CPython/3.9.17 Darwin/22.3.0

Security for stackler 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page