Metadata-Version: 2.1
Name: pystall
Version: 0.3.0
Summary: A system to automate configuration and setup of fresh Operating systems.
Home-page: UNKNOWN
Author: Kieran Wood
Author-email: kieran@canadiancoding.ca
License: UNKNOWN
Project-URL: Docs, http://pystall.readthedocs.io/
Project-URL: Bug Reports, https://github.com/Descent098/pystall
Project-URL: Source, https://github.com/Descent098/pystall
Project-URL: Roadmap, https://github.com/Descent098/pystall/projects
Description: ![pystall logo](https://raw.githubusercontent.com/Descent098/pystall/master/docs/img/pystall-logo.png)
        
        
        
        A system to automate installation and configuration of resources.
        
        ## Table of Contents
        - [Features](#features)
        - [Quick-start](#quick-start)
          - [Installation](#installation)
            - [From PyPi](#from-pypi)
            - [From Source](#from-source)
          - [Basic Usage](#basic-usage)
            - [Custom defined resources](#custom-defined-resources)
            - [Built-in resource library](#built-in-resource-library)
            - [Logging](#logging)
            - [Additional Docs](#additional-docs)
        - [Roadmap](#roadmap)
        - [Assumptions](#assumptions)
        - [What is Pystall?](#what-is-pystall)
        
        ## Features
        - Pull from a [built in resource library](https://pystall.readthedocs.io/en/latest/resource-library-list/) for quick installation
        - Define your own [custom local and remote resources](https://pystall.readthedocs.io/en/latest/quick-start/#custom-defined-resources)
        - Built in [logging](#logging)
        - The ability to build scrips into a [no dependency binary](https://pystall.readthedocs.io/en/latest/creating-binary-distributions/)
        - Specification of [resources in files](https://pystall.readthedocs.io/en/latest/file-resources/)
        - And more
        
        ## 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).
        
        ```python
        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.
        
        ```python
        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
        
        ```python
        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)
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Provides-Extra: dev
