Delphinus PackageManager for Delphi XE and Newer

Delphinus is a new Packagemanager i have been working on for the past weeks. It runs on Delphi XE and Newer, directly from within your IDE. I think it’s in a state where i can preview it to the public. With the most recent Delphi (XE8) we got a Packagemanager to install packages from within the IDE. Unfortunately, this means XE to XE7 are left out. And people are still using those “older” ones.  Besides, adding new Packages isn’t that simple at the moment. So the idea came up to create one that runs at least on XE and is more open to the community.(Besides a few other features i plan to implement which i’ll discuss at the end). And with open to the community i mean you don’t have to call me to get your package online! The Project is on GitHub.

DelphinusDialog

But how does that work? Delphinus uses Github as a Backend to get a list of Packages, download, install and keep them up to date. All that’s required is to host your project on Github and add a few files to your repository to allow Delphinus to detect it as a Delphinus-Package. You can read more on it on the WIKI. Once your package is live, you can keep it up to date by using releases on Github to provide new Versions. Users which have installed your package, can see when an update is available.

UpdateDetection

Each package provides information on which delphi versions are supported.

What is planned for the Future?

One major feature(which is already specified in the Wiki) is Dependencies. This allows a package to specify other packages it depends on. When it is installed, Delphinus will install/update the required packages automatically. And this is my primary task for the next week(s).

Another thing is flexibility of sources. Delphinus is designed to not know where the packages come from. For the future i plan to add support for other sources(like a local folder in an offline environment) to provide packages. This allows to cach packages from the online System in a local folder, so your developers pull them from an offlinesource, instead of pulling them always through the internet. Or providing packages which are not meant to be available to the public but only for the internal development team.

But all of this rises and falls with the community. It all depends on how well this project is accepted by you, and i keep my fingers crossed for the best. If you have any further questions or need help, ask me here. Testen on XE and XE6 but should work on XE2-XE5 and XE7-XE8. If you encounter a bug, open an issue on Github.

Posted in Delphi, Delphinus.

17 Comments

    • Yes, sorry. For maintenancereasons, it’s simpler to support XE and up(and i have no access to Delphi prior XE atm, too).

  1. Great work and good that we can now use this instead of the Embarcadero version that only allows for ‘Embarcadero Approved’ packages (packages that do not compete with something that they are also selling).

  2. I’d like to test it. But I got the error -1 when try to connect to github.
    On indy I saw it was #10060 error.

    • okay that sounds strange. If i understand this correctly, this is the “Connection timed out” error. Currently no idea o.O. Did you connect with an anonymous account or with a registered one?

      • Really it’s strange. No, everything is correct with my github accont (I think).
        I saw there was a bug on Indy that causes this error, maybe is this the problem.
        I’ll try to update my Indy and I’ll post here later.

    • Spring4D is already on Delphinus. It’s an official mirrored Repo for Delphinus from the Spring4D developers.

      Bitbucket is not possible(not easily) it does not have a searchapi as powerfull as Githubs, which is required for getting the list of Packages. The advantage is, that github works on itself, no Masterlist or anything i need to maintain.

  3. Hi,

    Just been working on creating a package for use with delphinus. I think it has a lot of potential. Here are my current thoughts on it
    * Web requests/component installation cause delphinus to hang until the request has completed (needs worker thread)
    * Logging/Error reporting could be greatly improved.
    * Make it easier to generate the info.json and install.json – if this is made really easy, it is very likely to be taken up by lots of open source projects very quickly.
    * Handle packages across multiple IDE’s … enabling easy upgrading to new version.
    * Export IDE config – for replication to another developers machine or restoring after windows installation.

    I would be interested in assisting.

    • Hi,
      1) Refreshing and installing is done ina workerthread already(see branch feature-UIChanges)
      2)Sure, an example of what is not selfexplanatory is appreciated)
      3) First step i had in mind is generating a validator tool, which helps to identify problems, from there i plan to extend it into an editor(no eta)
      4)when i start working on the CLI(commandlineinterface) this is the place where i expect to do this (for the beginning)
      5)whole ide config or delphinus specific one?

  4. Just to let you know, this content looks a little bit funny from my smart phone. Who knows perhaps its just my cell phone. Great post by the way.

Leave a Reply

Your email address will not be published. Required fields are marked *