DelphiPackageManager / PackageManagerRFC

Delphi Package Manager RFC
Apache License 2.0
30 stars 0 forks source link

Great and very necessary! #17

Open jcangas opened 5 years ago

jcangas commented 5 years ago

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:

Sure I forget something at this moment, but these points will be critical from my experience.

vincentparrett commented 5 years ago

Interesting that you chose to write it in Ruby rather than Delphi?

As for folder structure, there will be a package spec file, which will define the inputs and outputs to the packing process, and this process will produce a metadata file that is included with the package(zip) file.

Semver will be used, I already created a Semver library for delphi

jcangas commented 5 years ago

I selected Ruby in order to meet 2 goals:

About folder structure: yes, DelphiVM spec file already has some logic for maping project folders, but at the end it is a nightmare. Building the package is the easy part, but when you deploy you need adjust projects paths, and if you want allow compile from sources you need a lot of extra work. Moreover: I don't see the gain. I see a standard package structure as a great value favoring collaboration and reuse of work for Delphi community. Ruby gem and npm can create a folder estructure and basic spec file for your package. I think a Delphi package manager needs do it also. So, at least to reduce work for first version, I think is a good idea to have a standard folder estructure.