Code Monkey home page Code Monkey logo

ppm's Introduction

Verify Install PPM

PPM (PHP Package Manager) is a package manager built in PHP that allows you to convert your PHP libraries and programs to redistributable files and install multiple versions of the same code onto the system instead of locally unlike composer.

Compatibility

Note: From v1.1.3.6, PPM only supports PHP 8.0 and 8.1+ due to several changes which make it difficult and inefficient to develop a compatibility layer for inferior versions, making PHP 7.4 or older to be marked as deprecated.

Documentation

  • Introduction (Installing, uninstalling, fixing package lock)
  • Making Packages (Creating package.json and compiling your software)
  • Managing Packages (Installing, uninstalling and viewing installed packages)
  • Github Vault (Adding tokens and installing from github)
  • Using PPM (Importing packages and debugging)
  • PPM Notes (Developer notes on how PPM is suposed to be used and what it's intended for)
  • Contribute (How to contribute to PPM)

Changelog

License

Copyright (C) Intellivoid Technologies - All Rights Reserved.

Unauthorized copying of this file, via any medium is strictly prohibited Proprietary and confidential, written by Zi Xing Narrakas [email protected]

ppm's People

Contributors

netkas avatar antiengineer avatar coniguero avatar

Stargazers

Sasank reddy avatar

Watchers

James Cloos avatar  avatar  avatar

ppm's Issues

Updating composer built packages

When running the --update command, PPM will attempt to update packages installed from a composer source but when succeeded the PPM process exits with an exit code 0, below is a partial output of the update process until the exit state.

Compiling components
WARNING: Cannot compile vendor/guzzlehttp/psr7/src/Rfc7230.php, Malformed UTF-8 characters, possibly incorrectly encoded. Will byte-compile instead
Packing extras
Packing package contents
Completed! Operation took 0.088290500640869 seconds
Preparing installation
Fixing conflicted package net.intellivoid.lydia_chat_bot==2.0.0.0
Uninstalling net.intellivoid.lydia_chat_bot==2.0.0.0
Updating Package Lock
Installing net.intellivoid.lydia_chat_bot==2.0.0.0
Updating Package Lock
Cleaning up
Running composer
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Using version ^2.2 for defuse/php-encryption
./composer.json has been created
Running composer update defuse/php-encryption
Loading composer repositories with package information
Updating dependencies
Lock file operations: 2 installs, 0 updates, 0 removals
  - Locking defuse/php-encryption (v2.2.1)
  - Locking paragonie/random_compat (v9.99.100)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
  - Downloading paragonie/random_compat (v9.99.100)
  - Downloading defuse/php-encryption (v2.2.1)
  - Installing paragonie/random_compat (v9.99.100): Extracting archive
  - Installing defuse/php-encryption (v2.2.1): Extracting archive
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
Success
Parsing composer.lock
Finding defuse/php-encryption in composer lockfile
Generating package
Parsing metadata of 'defuse/php-encryption'
Validating package
Generating main configuration for 'defuse/php-encryption/bin/generate-defuse-key'
WARNING: For security and compatibility purposes, no symlink will be created for 'defuse/php-encryption/bin/generate-defuse-key'
Will use composers pre-generated autoloader
Discovering components
Discovering files
Generating package.json
Compiling and installing package
Loading from source
Validating package
Compiling components
WARNING: Cannot compile defuse/php-encryption/src/Core.php, Malformed UTF-8 characters, possibly incorrectly encoded. Will byte-compile instead
WARNING: Cannot compile defuse/php-encryption/src/Key.php, Malformed UTF-8 characters, possibly incorrectly encoded. Will byte-compile instead
WARNING: Cannot compile defuse/php-encryption/src/KeyProtectedByPassword.php, Malformed UTF-8 characters, possibly incorrectly encoded. Will byte-compile instead
Packing extras
Packing package contents
Completed! Operation took 0.0075199325879415 seconds
Installing defuse/php-encryption
Preparing installation
Fixing conflicted package com.defuse.php_encryption==2.2.1
Uninstalling com.defuse.php_encryption==2.2.1
Updating Package Lock
Installing com.defuse.php_encryption==2.2.1
Updating Package Lock
The composer package 'defuse/php-encryption' has been installed successfully as 'com.defuse.php_encryption'

Add the ability to compiled static binaries

The current build of PPM is only capable of building dynamic binaries that pulls dependencies from other sources during runtime, adding the ability to bundle the required dependencies into the output binary will increase installation time and provide the ability to install software without the need of remote sources.

Add self-updater to PPM

For each release of PPM, the update needs to be installed manually by cloning this repository and running the installer, in the future it would be easier to implement a self-updating command that securely retrieves the latest update from this private repository and install the update and run any optional scripts when it comes to updating an existing install.

Add proper version comparision checks

To minimize the update/install time, it's important to have PPM compare versions appropriately and that package.json can include version dependency information, for example.

"1.0.0.0^" which would tell PPM that the package requires x version 1.0.0.0 and or later, prompting PPM to check if there's any new versions available if possible. If not, and the only package available is version 2.0.0.0 for example, PPM will assume the dependency has been met.

"1.0.0.0" means that x package's version 1.0.0.0 must be installed otherwise the dependency is not met

"1.0.0.0~2.0.0.0" means that the a package version between 1.0.0.0 and 2.0.0.0 must be installed, PPM will use the most latest version available and assume the dependency has been met

"1.0.0.0~" means that the package version 1.0.0.0 or lower must be installed, PPM will use the most latest version available and assume the dependency has been met

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.