Skip to content

Latest commit

 

History

155 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TrypPM

TrypPM

The official package manager for the Trypillia language.

TrypPM CI Workflow Test Coverage License: CSSM Unlimited License v2.0

Commands · Project Manifest · Example Output · Contributing


TrypPM handles dependencies, project initialization, and core language upgrades seamlessly. It parses dependencies defined in a tryp.json manifest and automatically installs them locally into a tryp_modules directory directly from remote repositories.

Features

  • Project Initialization: Automatically generates a beautifully formatted tryp.json manifest to jumpstart your projects.
  • Seamless Dependency Management: Effortlessly resolves, downloads, and installs packages directly from remote sources (GitHub, GitLab, etc.) into your local workspace.
  • Flexible Versioning: Provides native Semantic Versioning (SemVer) support, intelligently resolving complex version constraints (like @^1.0.0 or @latest) against remote release tags.
  • Clean Uninstalls: Safely removes packages, purges unneeded files, and keeps your project's autoloader perfectly synchronized.
  • Native Compiler Upgrades: Keep your toolchain up-to-date by downloading and compiling the newest Trypillia compiler directly from source.
  • Zero-Configuration: Designed to work out of the box with zero boilerplate or complex setup steps.

Commands

Command Description
tryppm init Generate a tryp.json manifest file with pretty-printing
tryppm install Parse tryp.json and install all listed dependencies
tryppm install <provider>:<User>/<Repo>[@version] Install a single package from a remote provider (e.g., github:, gitlab:)
tryppm uninstall <pkg> Remove a package from tryp.json, delete its files, and update the autoloader
tryppm upgrade Upgrade the Trypillia language compiler from source natively

Project Manifest

A standard tryp.json generated by TrypPM looks like this:

{
  "name": "my-project",
  "version": "0.1.0",
  "description": "My first Trypillia application",
  "author": "Serhii Cherneha",
  "entry": "main.try",
  "dependencies": {
    "github:trypillia/tryp-logger": "^1.0.0"
  }
}

Example Output

When running tryppm install, TrypPM will automatically resolve Semantic Versioning constraints against repository tags and install your packages:

Looking for tryp.json ...

Name: my-project v0.1.0
Author: Serhii Cherneha

Found 1 dependencies to install.
Installing package: github:trypillia/tryp-logger@^1.0.0
Fetching from: https://raw.githubusercontent.com/trypillia/tryp-logger/v1.0.5/main.try ...
Saved to tryp_modules/tryp-logger.try

All dependencies installed!

Contributing

Contributions are welcome and appreciated! Here's how you can contribute:

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and adhere to the existing coding style.

License

This project is licensed under the CSSM Unlimited License v2.0 (CSSM-ULv2). See the LICENSE file for details.

About

The official package manager for the Trypillia programming language.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors