Helo Vincent!. This is a great initiative!!!. Several years ago I create a package manager for Delphi. It has no sever side, so it is no "complete" and sure it can be better, but it is working in a few customers. Is here http://jcangas.github.io/DelphiVM/. Package format are simple zip files and package repos are simple folders. DelphiVM can resolve dependencies, compile sources and install the required IDE packages.
It was developed in Ruby language at sparse times, under pressure and with a lot of "ambition" (multi-IDE support, multi-platform support, can distribute complied, sources, docs, support for user tasks, can show and resolve your dependency tree, etc), so it don't have a good design, but I think we can learn some lessons from this experiment. Some points I found critical:
-
FIRST at all: Define a standard folder structure for develop and deploy your packages. This way the package manager can know what need be packaged and what can be ignored, where found sources, dcus, etc. Also, after install, your IDE can know where found dcus, bpls or debug sources in an easy way. Other way, you need a very sophisticated package format file.
-
Good package versioning and descriptive names. Something like mypackage-2.1.3+D250-Debug-Win32.zip, i.e, pack vs +IDE vs-Config-Platform will be necessary.
-
Use https://semver.org helps a lot.
-
Good package file specification format. Mine was inspired by ruby gem files, but other options can be good choices.
-
IDE "per-project" isolation. I always start IDE with a -r parameter: is the only way you can ensure the packages dependencies don't conflict with other versions already installed.
Sure I forget something at this moment, but these points will be critical from my experience.
Helo Vincent!. This is a great initiative!!!. Several years ago I create a package manager for Delphi. It has no sever side, so it is no "complete" and sure it can be better, but it is working in a few customers. Is here http://jcangas.github.io/DelphiVM/. Package format are simple zip files and package repos are simple folders. DelphiVM can resolve dependencies, compile sources and install the required IDE packages.
It was developed in Ruby language at sparse times, under pressure and with a lot of "ambition" (multi-IDE support, multi-platform support, can distribute complied, sources, docs, support for user tasks, can show and resolve your dependency tree, etc), so it don't have a good design, but I think we can learn some lessons from this experiment. Some points I found critical:
FIRST at all: Define a standard folder structure for develop and deploy your packages. This way the package manager can know what need be packaged and what can be ignored, where found sources, dcus, etc. Also, after install, your IDE can know where found dcus, bpls or debug sources in an easy way. Other way, you need a very sophisticated package format file.
Good package versioning and descriptive names. Something like mypackage-2.1.3+D250-Debug-Win32.zip, i.e, pack vs +IDE vs-Config-Platform will be necessary.
Use https://semver.org helps a lot.
Good package file specification format. Mine was inspired by ruby gem files, but other options can be good choices.
IDE "per-project" isolation. I always start IDE with a -r parameter: is the only way you can ensure the packages dependencies don't conflict with other versions already installed.
Sure I forget something at this moment, but these points will be critical from my experience.