• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

JASS Package Manager (/w JNGP integration)

Status
Not open for further replies.
Pre-release.

This is an application which can download and cache vJASS libraries. It reads all the vJASS libraries in your map, checks the requirements, and inserts the ones you don't already have declared. This allows you to use code without having to manually search for it online.

For example, if you want to use TimerUtils, you can just add it as a requirement to a library, and the tool will make sure the map has it.

JASS:
library Example requires TimerUtils
endlibrary
Even if you are requiring a library which also has (multiple) dependencies, the package manager will include those too.

For example: library Example requires TextSplat2, TextSplat2 requires libraries which also require libraries. They are all included by simply requiring TextSplat2.

It works by checking an online repository for the library. You can create accounts and upload your own code to the repository.

You can view the libraries currently uploaded to the repository here: http://185.92.220.118/jassrepo/api/list.php

Command Line Usage

Works off of local package.json file.
  1. jpm adduser - Creates a new account (asks email/password ect..)
  2. jpm login - Stores login session
  3. jpm init - Generate new package.json
  4. jpm publish - Publish library
  5. jpm update - Update library
  6. jpm delete <name> - Delete library
  7. jpm parsemap <mapfile> - Add vjass library dependencies to map
  8. jpm version list <library> - Lists all available versions a library has
  9. jpm version default <library> <version> - Sets the preferred library version to use
Lets say you want to use the Table library by Vexorian instead of Bribe's. You would simply run:

jpm version list Table
jpm version default Table 3.0


and from then are you are using Vexorian's Table. If you want to switch back:

jpm version default Table 4.1.0

Much more information will be included when I actually release this and the source code.

Download with JNGP Integration
 

Attachments

  • jpm v0.1.3.zip
    5 MB · Views: 119
Last edited:

Deleted member 219079

D

Deleted member 219079

(Tsk...) I like that you have your own server, you can do whatever you want.

2) There are now like 50 versions of JNGP floating around, and you people keep creating new ones for every feature.
I'd think TH will work with @MindWorX once this matures. (That or I notify Mindy.)
 

MindWorX

Tool Moderator
Level 20
Joined
Aug 3, 2004
Messages
709
2) There are now like 50 versions of JNGP floating around, and you people keep creating new ones for every feature.
The problem stems from JNGP not being very configurable in the first place, so anytime something new is made, it needs its own pack. The replacement I'm working on is much more flexible and will come with a plugin system that is much easier to work with.
 
I have two complaints.

1) You are not using a public site like github, which is guaranteed to always work.
2) There are now like 50 versions of JNGP floating around, and you people keep creating new ones for every feature.

1. Repositories will be configurable (able to dynamically add sources).
2. Temporary until integration with official JNGP. I don't expect anyone to use my pack as a daily thing, it's just for people to quickly be able to use my stuff when I want. You can also add this to an existing JNGP with like... 2 lines.


I wrote something similar to yours a while back.

[JSU] JassScriptUpdater

I like that you have your own server, you can do whatever you want.

It's only $5 a month, and you can find cheaper ones.

The server also runs my many other War3 projects.
 
Last edited:
Updated - 0.1.3
  • Fixed a bug that could occur when trying to read settings when there are none.
Updated - 0.1.2
  • Fixed a bug where the adduser function wasn't working correctly.
Updated - 0.1.1
  • Improved parsing of library requirments (failed under certain cases).
  • Optional requirements are ignored.
Updated - 0.1.0
  • Cleaned and reorganized the source code.
  • Settings are now loaded from jpm-settings.json instead of jpm-login.json.
  • Can now specify the output directory where packages will be downloaded (with --output).
  • Added "config" command which generates a settings file for you.
  • Added "version" command which lets you run actions related to versions on packages.
    • Added action "default" to version command. This lets you specify the version you want to use for a library.
    • Added action "list" which lists all available versions for a library.
 
Last edited:
Status
Not open for further replies.
Top