Skip to content

Core Package Manager: "cpm"

TriTech edited this page Mar 4, 2025 · 4 revisions

Say Hi to cpm!

Core Package Manager is - you guessed it - Core2's custom package manager. It connects to the list of TriTechX repositories to download packages.
Designing a package for use with Core2 is fairly simple, it just might require teensy bit of tinkering to work.
At the moment, Core2 only downloads repos from the TriTechX profile. You can change this, but it will require minimal knowledge of code. There are no plans to change this, the idea is to host all Core2 packages on the TriTechX profile after going through an approval process.

How to Create a Package for cpm

Setup:

-The program must be compatible with Debian Linux -The program’s source code be in an internal directory, seperate from the licenses and markdowns. -Outside of this folder there must be a “meta.json” file providing necessary information about the project.

NECESSARY VARIABLES

  • repo_name: the name of the repository
  • package_name: the name of the package when used in the terminal (if package_name was “cb”, then running “corebench” will do nothing, but “cb” will run corebench)
  • version: the semantic version of the repository
  • python: whether the project uses python or not
  • requirements: the location of the requirements.txt file if it is a Python project
  • linuxrequirements: any required linux dependencies
  • main: the bash file executed to run the project on call

BASIC meta.json FILE STRUCTURE

{"repo_name":"coreaddon",
"package_name":"caddon",
"version":"1.34.211",
"python":"true",
"requirements":"src/requirements.txt",
"linuxrequirements":["neofetch", "lolcat", "examplepackage3"]
"main":"coreaddonrun.sh"}

BASIC RUNNER FILE STRUCTURE

coreaddonrun.sh

#!/bin/bash
python main.py

This will execute the main python file if it is called main.py.

It is recommended to have your project run inside of a venv if it uses any file operations, especially those that could disturb the Core2 file structure.

BASIC VENV RUNNER FILE STRUCTURE

coreaddonrun.sh

#!/bin/bash
python3 -m venv coreaddonenv
source coreaddonenv/bin/activate
pip cache purge
pip install -r requirements.txt
python3 main.py

This does the same thing fundamentally, but allows for your module to run inside of a virtual environment, minimising the risk of potentially destructive actions occurring.