Skip to main content

No project description provided

Project description

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

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

stackler-0.2.2.tar.gz (13.9 kB view hashes)

Uploaded Source

Built Distribution

stackler-0.2.2-py3-none-any.whl (14.2 kB view hashes)

Uploaded Python 3

Supported by

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