Installer, package manager, build wrapper and version manager for Piccolo

Related tags

MiscellaneousPiccl
Overview

Piccl Logo

Piccl

Installer, package manager, build wrapper and version manager for Piccolo (https://github.com/PiccoloLang/piccolo)

Overview

Piccl aims to simplify the process of integrating and developing using Piccolo in your environments. "How?" I hear you ask? Simple!: - Compile the latest versions of Piccolo as a library, and offer to install it for you! - Manage your Piccolo versions conveniently from the command line! - Want more bang for your buck? Build Piccolo libraries and link them against your local versions!

Installing

Piccl itself can be installed quite easily! At the moment we can only provide the awesomeness that is Piccl for our Unix bretheren, but Windows support will be added down the line.

Simply run:

sudo Piccl/Install.py

And you should be ready to go! For more options use the --help switch.

Piccl requires: - Python 3.9 - git - cc compatible compiler (e.g. gcc or clang)

Any packages will have their own dependencies which should be listed in their repositories.

Running

In the future, Piccl will run tests to make sure that trunk Piccolo isn't banjaxed, but for now compiler errors will have to suffice on your end ;-;.

Using Piccl is simple! Here's the basic syntax:

piccl [flags] 
   
     [flags|suboperations...] [operands]

   

Each operation has its own set of flags and its own --help menu.

Versions

Piccolo versions are stored in the Piccl home directory under the Versions folder. Environments will hold references to installed Piccolo versions in this folder. By default Piccl will hold any versions meeting the following criteria: - Is the latest version - Has an active reference in an environment which is not set to autoupdate - Has been added by the user with the --keep flag of a version add operation - Has been registered manually with the config --register-version operation and flag

Piccl will always hold the latest version of Piccolo and will keep it up-to-date. To add a persistent version use:

piccl version add --keep 
   

   

to get the Piccolo version referenced by the commit UUID commit. Without the --keep command Piccl will delete the version at the next update operation or after the next operation if autoupdate is enabled.

For package developers or developers looking to integrate libPiccolo, you can install a version of Piccolo globally using:

piccl version install 
   

   

Environments

You can use Piccl to manage multiple environments for Piccolo. When performing any operation you can use the --target flag to specify which environment or version to perform the operation on. Each environment has its own package index and references one installed Piccolo version. By default Piccl will initialize one environment called default.

For example, to initialize a new environment use:

piccl environment create 
   

   

This will initialize a new environment with no Piccolo version and an empty package index, to initalize the environment use:

piccl environment update 
   

   

Which will install the latest Piccolo version if neccesary and add a reference to it in the environment. Note that this command will also update any packages in the environment.

To configure an environment use:

piccl environment config [flags] 
   

   

For a list of configuration flags use:

piccl environment config --help

Global Configuration

Piccl keeps track of some global configuration in the home directory: - A list of environments - A list of versions - Whether to autoupdate after every operation - Piccl package indexes: Packages - The compiler to use for compiling native code

These can be modified using:

piccl config [flags]

For a list of configuration flags use:

piccl config --help

Packages

While at the moment Piccolo does not natively support libraries and inclusion, nor does it have a shell for running packages, using Repiccl or another Piccolo shell can provide an interface for libraries and runnable Piccolo modules. To install a package use:

piccl package install 
   
     [environment]

   

If you omit environment the package will be installed to the default environment.

The default package index is restricted to Piccl packages, to manage package indexes use:

piccl config --register-package-index 
   

   

For local package indexes, use a file:// URI with the path to your index. Note that Piccl is not responsible for any malicious programs present on 3rd party package indexes.

Advanced

Piccl keeps track of environments and other persistent data through a folder which by default is located at ~/.config/Piccl. This can be redirected with the PICCL_HOME environment variable if you need to manage multiple Piccl configurations. This is not how to handle environments. Note that this will also set the home directory if it is set during the installation. The same effect can be achieved using the --homedir flag when using Piccl.

If you are a package developer or are developing with Piccolo in an integrated manner, you can set the PICCL_DEBUG environment variable which will cause all builds to be performed with debug symbols enabled.

A tool that bootstraps your dotfiles ⚡️

Dotbot Dotbot makes installing your dotfiles as easy as git clone $url && cd dotfiles && ./install, even on a freshly installed system! Rationale Gett

Anish Athalye 5.9k Jan 07, 2023
An app to help people apply for admissions on schools/hostels

Admission-helper About An app to help people apply for admissions on schools/hostels This app is a rewrite of Admission-helper-beta-v5.8.9 and I impor

Advik 3 Apr 24, 2022
KeyLogger cliente-servidor em Python para estudos

KeyLogger Esse projeto é apenas para estudos, não nos responsabilisamos por qualquer uso indevido ou prejudiciais do mesmo. Sobre O objetivo do projet

1 Dec 17, 2021
An end-to-end Python-based Infrastructure as Code framework for network automation and orchestration.

Nectl An end-to-end Python-based Infrastructure as Code framework for network automation and orchestration. Features Data modelling and validation. Da

Adam Kirchberger 15 Oct 14, 2022
Shows VRML team stats of all players in your pubs

VRML Team Stat Searcher Displays Team Name, Team Rank (Worldwide), and tier of all the players in your pubs. GUI WIP: Only username search works (for

Hamish Burke 2 Dec 22, 2022
Backups made easy, automated, monitored and SECURED with an audited encryption

Backup Controller Backups made easy, automated, monitored and SECURED with an audited encryption. Schedules backup tasks executed by Backup Maker, upl

RiotKit 1 Jan 30, 2022
Pre-crisis Risk Management for Personal Finance

Антикризисный риск-менеджмент личных финансов Риск-менеджмент личных финансов условиях санкций и/или финансового кризиса: делаем сегодня все, чтобы за

Dmitry Petukhov 593 Jan 09, 2023
Convert-Decimal-to-Binary-Octal-and-Hexadecimal

Convert-Decimal-to-Binary-Octal-and-Hexadecimal We have a number in a decimal number, and we have to convert it into a binary, octal, and hexadecimal

Maanyu M 2 Oct 08, 2021
Extend the maya channel box with searchability and colour

channel-box-plus will add search-ability over its attributes, and it will colour user defined attributes, making them easier to distinguish.

Robert Joosten 12 Jun 08, 2022
Howell County, Missouri, COVID-19 data and (unofficial) estimates

COVID-19 in Howell County, Missouri This repository contains the daily data files used to generate my COVID-19 dashboard for Howell County, Missouri,

Jonathan Thornton 0 Jun 18, 2022
Rufus port to linux, writed on Python3

Rufus-for-Linux Rufus port to linux, writed on Python3 Программа будет иметь тот же интерфейс что и оригинал, и тот же функционал. Программа создается

6 Jan 07, 2022
Simply create JIRA releases based on your github releases

Simply create JIRA releases based on your github releases

8 Jun 17, 2022
Adansons Base is a data management tool that organizes metadata of unstructured data and creates and organizes datasets.

Adansons Base is a data management tool that organizes metadata of unstructured data and creates and organizes datasets. It makes dataset creation more effective and helps find essential insights fro

Adansons Inc 27 Oct 22, 2022
A similarity measurer on two programming assignments on Online Judge.

A similarity measurer on two programming assignments on Online Judge. Algorithm implementation details are at here. Install Recommend OS: Ubuntu 20.04

StardustDL 6 May 21, 2022
A silly RPG(Not MMO) made in python

Project_PyMMo A silly RPG(Not MMO) made in python, FOR WINDOWS 10 ONLY! Hello tester, to install pymmo follow the steps bellow: 1.First install python

0 Feb 08, 2022
The presented desktop application was made to solve 1d schrodinger eqation

schrodinger_equation_1d_solver The presented desktop application was made to solve 1d schrodinger eqation. It implements Numerov's algorithm (step by

Artem Kashapov 2 Dec 29, 2021
A collection of design patterns and idioms in Python (With tests!).

Python Patterns Help the project financially: Donate: https://smartlegion.github.io/donate/ Yandex Money: https://yoomoney.ru/to/4100115206129186 PayP

5 Sep 12, 2021
Social reading and reviewing, decentralized with ActivityPub

BookWyrm Social reading and reviewing, decentralized with ActivityPub Contents Joining BookWyrm Contributing About BookWyrm What it is and isn't The r

BookWyrm 1.4k Jan 08, 2023
A shim for the typeshed changes in mypy 0.900

types-all A shim for the typeshed changes in mypy 0.900 installation pip install types-all why --install-types is annoying, this installs all the thin

Anthony Sottile 28 Oct 20, 2022
Odoo modules related to website/webshop

Website Apps related to Odoo it's website/webshop features: webshop_public_prices: allow configuring to hide or show product prices and add to cart bu

Yenthe Van Ginneken 9 Nov 04, 2022