Max Package Manager

Andrew Benson's icon

With our new 7.1 release, we are introducing a new Package Manager window that provides immediate access to Max Packages hand-picked by C74. We hope our first batch of available content will keep you busy for a minute, but we're also planning regular updates to the Package Manager. Since I anticipate there will be some questions about this, I would like to open up this thread for any questions that might arise around this feature and the content that's included.

If you'd like to propose your own package, please visit the page here: https://cycling74.com/submit-packages

and feel free to post questions on the forum. We hope you all enjoy the access to Max Packages and the tools to manage installed Packages provided with the Package Manager window.

metamax's icon

Thanks for this!

(edit - whoops... moved original post to other thread)

kodamapixel's icon

I'm wondering why the decision for a curated approach, rather than something along the lines of the Add Library tool in Processing? I personally find some of the file maintenance in Max a bit disparate and thought the Package Manager would be a nice way to get around that.

That aside, I'm very glad to see it in the 7.1 release.

Andrew Benson's icon

@kodamapixel, in addition to our selection of packages, the Package Manager also lets you manage your self-installed packages (using the "Installed" tab). You can even add your own icon by putting an "icon.png" file in the root folder of your packages. Hope that helps.

kodamapixel's icon

Thanks, Andrew. I guess my post was poorly worded and maybe a bit off topic... I'd like to see something like the Package Manager as the interface for adding all externals - if not through a search function, maybe a drag-and-drop install or similar would work. I do realise that packages and external folders are different structurally, but it would seem to be in keeping with the usability focus of Max 7.

Kasper's icon

HI
when intalling Max 7.1 and opening "show package manager", in the new window (All packages) for some (not all and even not all already installed) it is written "Conflicting package installed".
Hum on those libs (Bach, ejies) ARE already installed on my computer, but some others probably are as well (CNMAT) and seem perfectly fine...

How to resolve this conflict?

many thanks

kasper

metamax's icon

Kasper, I just clicked "overwrite" to install the latest versions. Might be a good idea to back up your existing packages if you are concerned about losing any work.

btw, this new Package Manager is really f*cking nice... thank you again Andrew et al.

Jeremy's icon

@kodamapixel, we're hoping that content (incl external) developers will increasingly use the Package format for their distributions, and we'll be expanding the available downloads in the PM over time. Ideally, at some point, all externals for Max will be installable via the PM. Until then, there may be things we can investigate for future releases of Max, although it's not always obvious _where_ users want their externals installed (Library, Packages, etc.). In any case, the PM is clearly a step in this direction, and we hope it makes your Max-life somewhat more comfortable.

Kasper's icon

"overwrite" worked with some (Bach) but not with others (ejies) - I had to remove the previous ejies myself (no big deal, sure, once you got it) the installer installed the new eijies, but not over the previous one.

kodamapixel's icon

@jeremy I appreciate that the onus is on developers here; I was mostly just thinking aloud. The PM is a very welcome addition in 7.1 and the interface is excellent - C74 deserve high-fives all round for this release (I should have said that right off the bat).

Chris's icon

This is a super welcome development! Thanks! Have been using Nathanaël Lécaudé’s Package Downloader for a while, so it is great to see this become a native part of Max.

Is there any documentation anywhere of the package.json format? And what will the system be for package updates? Can they be automated to pull from a GitHub repo for example like npm and other similar managers do? I notice there’s no explicit link within package.json, so presumably you are maintaining that separately? I know this is brand new so hopefully more documentation will emerge over time, but it would be great to see how that process will work.

Looking forward to see where this goes!

metamax's icon

How are "categories" defined? I don't see any mention of them and all of the installed packages have "this package has no categories" under the categories heading.

pdelges's icon

Kasper, I have the same kind of problem…
It looks like the Package Manager installs the packages in the user's folder and not globally. For bach, there is a choice in the package manager to choose between 'System Domain' and 'User Domain' but strangely not for the ejies.

Now I have 2 versions of the packages (back & eijies) I updated from the package manager, 1 into my initial package folder (located in /Users/Shared/Max 7/) and 1 into /Users/pdelges/Documents/Max 7/

I looked for a preference setting for the PAckage Manager to set the default path of the packages, but I couldn't find any.

I suppose I should for now rather manage my packages myself, it seems safer.
I always hated having things written into my "Document folder" by applications, but those days, they all do that.

Yuri Didevich's icon

cool news!

Andrew Benson's icon

@metamax, Categories are a mostly unused curatorial feature of our server, and are defined by us as needed. For now, we are only using this feature to decide which Package is featured at the top of the page, but we'll likely find other uses as we go.

Andrew Benson's icon

@Chris Currently, the updating and administration of the Packages on our server is done by hand. We're likely going to be looking at more technically advanced ways to manage it in the future as more Packages are included, but for now it is very hands-on.

vichug's icon

hey, is there any way to declare a custom path as a path where to install packages ? A little like the paths in file preferences ? Currently my packages are installed in max 6 package folder, and softlinked in the max 7 packages folder, to avoid double installing everything. And the bach package must be installed in /applications/Max 6.1/packages if you want Orchis to work. So...

Vincent Charlebois's icon

downloads in the package manager don't work for me.
the wheel just keeps spinning...

Capture-d’écran-2015-12-16-à-14.43.56.png
png
Vincent Charlebois's icon

in package manager, it seems like it doesn't download.
i click on install and get the wheel of death spinning for eternity.

Jeremy's icon

Hey folks. We're not planning to support a custom package install path anytime soon. @vichug might need to link from the Max 7 to Max 6 folder for now, or get comfortable with the idea that most packages are small and disk space cheap. The feature is unique to Max 7, so you'll understand that we're not considering parallel Max 6 usage as we plan future development.

As for the domain issue, we wrestled with this for some time during development. For now, users/admins who need globally - installed packages will need to (manually) move the folders from ~/Documents/Max 7/Packages to /Users/Shared/Max 7/Packages. The switch exists to permit lab users to install their own, local versions and choose between them if the administration has installed a version they don't want. We'll reexamine this at some point and potentially provide tools for handling this in some automated fashion in the future. Every iteration of OSX makes it more difficult to trigger complex operations with elevated permissions, which complicates this substantially.

vichug's icon

fair enough, and again, tanks for the clarifications !

Rodrigo's icon

This is definitely a great idea for handling externals in the future. Particularly for first time Max users, that's the most confusing part when I'm sharing software with them.

I just threw together a karma~ package (I think!), will see if it works alright, and take it from there.

( know there are projects already, but I've never gotten the hang out of making a project with oodles of dependencies (that aren't all loaded from start) that works on multiple OSs, but that's another topic!)

Jeremy's icon

@Chris, we're going to be releasing a package-info.json spec + user-facing tools for generating those files in the coming days and weeks, thanks for your patience. In the meantime, I would suggest resisting the temptation to do a lot of reverse-engineering, for a couple of reasons: for one, we have some fields in the package-info.json format which are reserved for our client/server communication, and we'd appreciate if 3rd parties don't use those; also, we've already put a fair amount of work into developing these tools, and there's no reason for anyone else to waste their time on that effort. Thanks!

Chris's icon

@Jeremy — excited to see the user-facing tools, thanks for the great work on this! I’ll resist my temptations (although I couldn’t help but put icons into my packages just to make the Package Manager look pretty…)

Jeremy's icon

That's why we 'leaked' the info about the icons being user-definable, as we suspected that would be priority 1 for several users. 😉

Rodrigo's icon

Ah that's good to hear. I just copied one over and deleted the relevant fields for mine. But having some user-end stuff is great too.

jonah's icon

seems cool. :)

i hacked it a little because i noticed a package had custom xml for the help pages. i like that you can add a bunch of "see also" objects into the xml then use that cool drag from reference page into patcher feature. i needed something to help me bookmark too.

then i noticed that if you make a object in patcher with the name of your reference page, the patcher recognizes it on the patcher reference sidebar and you can drag custom methods from there as well as the "see also" objects. nice. :)

i'd like to be able to 'package' my calendar every so often. the thing that gets me about making 'projects' is majority of the time i don't realize it's a project until it's done or the real project ends up being part of a bunch of different projects. i like the idea of being able to package things up afterwards and re-arrange things.

hollyhook's icon

Though I like the idea of a curated list of max packages, I'm a bit hesitant to submit some of my work as package, because I don't know what you mean with "hand-picked by C74". What are your criteria for packages to be included? What kind of work would you like to see there?

danieleghisi's icon

@vichug - the Orchids issue was due to the fact that the software was created as a Max6 standalone, and Max6 standalones were ALWAYS searching inside the Max packages search path, which was of course very bad for any standalone application relying on 3rd party libraries. This appears to be solved in Max7, hence we're switching the Orchids interface to Max 7 and this issue will be fixed with the forthcoming Orchids release (hopefully soon...).
Hope this helps...

vichug's icon

Thanks Daniele, it's not that much a problem now tho it's good to know that it wilk be fixed

Jan M's icon

This is a question to support/c74 i guess....

I have Max as a (greyed out) package showing up in the package manager. Is that a bug or a feature?

P:S: Thanks for this feature! To me the package manager rounds up the package/project system.

Cheers Jan

Andrew Benson's icon

@Jan that sounds funny. Please send along a note to support@ to follow up as there may be something unexpected going on.

nesa's icon

Hi Andrew/Cycling'74,

few weeks ago I tried to submit the jit.freenect.grab as a package, but haven't had any sort of response so far - not sure if the website/browser worked properly. Was something wrong, should I re-submit?

Georg Hajdu's icon

Hi guys,

Is there a command that would allow me to open the Package Manager simply by sending a message to Max?

Thanks, Georg

Jeremy's icon

Undocumented, and therefore subject to change: ; max packagebrowser

Georg Hajdu's icon

Thanks, for the info. I had figured it out in the meantime just by looking at the link in the Max documentation. I still have another questions about Packages, namely about where to put Live devices? Does the user have to add a folder to Places in Live manually, or is there another mechanism that tells Live about their existence?

andremartins's icon

hi there,

I am getting error on Package Manager when trying to install any package. I am having this on Max 7.2.1, on Windows 7 Pro, 64 bits. Everything works pretty well, but Package Manager keep saying "Error Installing Package", with a red cross.... Any idea why is this happening?

Thanks.

Error-Package-Manager-MAX.jpg
jpg
Rodrigo's icon

Is there currently a way to see what's changed in a package update? Or are there some release/change notes somewhere that I'm missing?

(I've just updated my smFilterPack, and nothing seems different....)

djlbe's icon

Hi,

I'm also getting this Error message with 7.2.3 on Win 7 64 bit

Carlo Cattano's icon

yeah , same errors here . Specially with m4L enviroment , Pm is causing major lags i think, slower start up and other crashes

Jeremy's icon

Hey everyone -- please contact support with these problems, if you haven't already.

Diemo Schwarz's icon

Hi, is there now the promised documentation how to define the package-info.json?

The only hint I found is in Package Authoring tutorials part 3, saying to copy and adapt an existing one (implicitly: guessing the meaning of the fields) , and the reference doc doesn't mention it at all.

I'd be interested in how to define a patch-only package, and how to specify dependencies on other packages (mandatory and optional ones).

Thanks!

Alex Van Gils's icon

Hi Diemo — I agree that more complete documentation for a package's package-info.json would be helpful, we are working on that.

In the meantime, if you want to look at an example of a patch-only package, you could check out the package-info.json for MC Movement Studies. One thing I can point out here — some of what you will see in package-info.json files that you find in the Package Manager reflects information that is generated by the PM itself. For example, you do not need to list a "filelist" of all the patchers and examples in your package. This is list of the files in those directories, generated by the PM.

Also, there is not currently a way to specify dependencies on other packages. You could simply put that information in the package's "description" for now.

Thanks for the questions and for reaching out.

Rodrigo's icon

That's good to hear, and definitely some more info would be useful.

There appears to be an "extends" tag, which does point to other Packages if you format the name correctly and it's available in the PM. (I'm using it in a Package I'm working on that's built on top of a separate Package).

Diemo Schwarz's icon

Thanks Alex and Rodrigo, that's already very helpful!

Jeremy's icon

Here's a draft of a doc containing some additional info. Let us know if it's helpful.

The package-info.json file.pdf
application/pdf 64.57 KB
package-info.json format DRAFT 2022.08.24

keepsound's icon

Hi, how do you open the window (the Package Manager, main window) from inside a patch?

Source Audio's icon

;
max packagebrowser