Skip to main content

pystall logo

A system to automate installation and configuration of resources.

Table of Contents

Features

Quick-start

Installation

From PyPi

You can install the project from PyPi using pip install pystall or pip3 install pystall

From Source

clone this source repo using either the github button or git clone https://github.com/Descent098/pystall

Then in the root directory (the one with setup.py) run pip install . or sudo pip3 install . This will install the package and it's dependencies.

Basic Usage

Custom defined resources

This script shows downloading the python 3 installer (a .exe) the go installer (a .msi) and a logo image (a .png).

from pystall.core import EXEResource, MSIResource, StaticResource, build

python = EXEResource("python-installer", "https://www.python.org/ftp/python/3.8.1/python-3.8.1.exe")

go = MSIResource("Golang", "https://dl.google.com/go/go1.13.5.windows-amd64.msi")

logo = StaticResource("Wallpaper", ".png", "https://canadiancoding.ca/static/img/post-banners/python-post-banner.9bf19b390832.png")

build(python, go, logo)

Built-in resource library

There is also the option to use the built-in library of resources that have been setup.

from pystall.core import build
from pystall.library import python, go, micro

build(python, go, micro)

Logging

If you want logs while the script runs you can use the show_logs() function in the core library

from pystall.core import build, show_logs
from pystall.library import python, go, chrome, micro

show_logs()

build(python, go, chrome, micro)

Additional Docs

For a full list of available library resources, how to extend the framework for specific functionality, and a development guide if you would like to contribute, check the docs: https://pystall.readthedocs.io/en/latest/

Roadmap

For more detailed roadmap check out the project planning board on github: https://github.com/Descent098/pystall/projects/1

Assumptions

  • You are running Windows, Linux (currently debian-based, with arch support in future), or Mac OS (on the way)
  • Your machine is x86 64-bit based (no I won't be adding 32-bit support, but arm support is coming)
  • You have an internet connection (if downloading resources and not using local copies of installers)

What is Pystall?

Pystall is:

  • A system to write single scripts to setup environments across platforms
  • A relatively boilerplate-free method of writing system configurations
  • A way to create easy to distribute binaries to handle complicated installations.
  • Meant for end-users looking for a simple syntax to create scripts

Pystall is not:

  • A server management utility
  • An infrastructure management utility
  • An orchestration replacement (ansible, jenkins, puppet, chef etc.)
  • Meant for consistent (in terms of frequency) updating to existing packages (though i'm not opposed to this in the future necessarily)
  • An ABSOLUTELY automated system, due to the amount of tradeoffs of extensibility I have opted to leave installers to be configured as they run (i.e. running the python installer exe still requires you to do the configuration).

Changelog

V 0.3.0 September 15th 2020

Focus for this release is to make the whole API more user and dev friendly.

Features:

  • Notification to let people know that they have to agree to the TOS of each piece of software
  • Ability to specify resources as dependencies
  • Resource file format; use YAML files to specify a set of resources
  • Added download progress bars
  • Created function to add folders to path (will be implemented in next release)

Development QOL:

  • Added user docs to the repo under /docs
  • ReadTheDocs Site update
  • Added test suite
  • Added deepsource.io for quality validation
  • Added type hints to all functions/methods
  • Moved from universal planning board to version specific planning boards

V 0.2.0 January 15th 2020

The focus for this release was debian linux support, and implementing the current feature sets in debian linux as much as possible.

Features:

  • Added Support for local files and not just download links
  • .deb support
  • .tar.gz support (just extracting no binary installation stuff)
  • Installation of custom PPA based packages
  • Installation of apt packages
  • Porting all available resource library resources

Development QOL:

  • Added nox for automation
    • Distribution building
    • Distribution releasing
    • Running tests
  • Began implementing functionality and runtime compatibility tests with pytest

V 0.1.0 January 5th 2020

Features:

  • Created base resource class that can be extended to support multiple file types
  • Ability to install binaries from URL or local path (currently limited to .exe and .msi)
  • Ability to download static assets from the web (image files, video files etc)
  • Ability to download and extract zip archives
  • Initial library of predefined resources (15 in total)

Metadata

Release files for pystall 0.3.0

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

Source distribution (sdist)

Source distribution for pystall 0.3.0
File Size Uploaded Provenance Actions
pystall-0.3.0.tar.gz 16.9 kB Without provenance Details for pystall-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pystall 0.3.0
File Interpreter ABI Platform Actions
pystall-0.3.0-py2.py3-none-any.whl Python 3, Python 2 none any Details for pystall-0.3.0-py2.py3-none-any.whl

Total release size: 44.4 kB

Release files / pystall-0.3.0.tar.gz

Download URL pystall-0.3.0.tar.gz
Size 16.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b4b1266c06b48d269696e9e7783f79e1a9a7f5a65d48afce55ffa80c0ccb0129
BLAKE2b-256 checksum
How to use checksums
a65b2d7215d066661f989658cc7b9de4289c9e46dd0c292648af8d67fdc83aa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Release files / pystall-0.3.0-py2.py3-none-any.whl

Download URL pystall-0.3.0-py2.py3-none-any.whl
Size 27.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
4623ca144b4a48bc1acc7f1befc716a89ccda3dcca5ce2531516def1dfe3adc5
BLAKE2b-256 checksum
How to use checksums
6fcdbdd12e98a5520e6a62487deaeb79669af72288612d92b01f0abaad3036b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Security for pystall 0.3.0

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