Package Manager for Delphi

image
I, like many, has a long history of experience with Delphi — in the good old days it was fashionable to start learning programming with the already obsolescent at that time GWBASIC'a slender algorithmic and Pascal. Delphi evolved from Turbo Pascal, later made a splash with its new and “component” approach to development. Then came a powerful new languages, the web began to push desktop and I went into web development for a long time.
A couple of years ago I came into a project that is developed on Delphi, and other languages after I realized that I was sometimes uncomfortable to use it. In most languages there is the concept of “package”, package managers and repositories that keep them in the same Delphi there is nothing similar. All dependent libraries are set manually, and paths to be done in the settings file of the project. If the project is moved to another computer, you need to pray to be what libraries there were in the same folders. It's awful, in my opinion. Dependencies should be registered in the project, and then automatically downloaded and installed if they are not installed, and all paths to dependencies must be placed automatically.
So there was the package Manager for Delphi — OwlyCI, which I will explain below.

If you are familiar with nuget, pear/pecl, for example, or cpan, there is nothing new you will not find here — implemented a Central repository with public and private channels, there is a command line utility which is able to take care of dependencies, building the packages, download/upload to the repository. The packages represent .a zip file with the source code and a manifest that describes the dependencies and build rules owlyci.xml.

To edit the manifests of the packages, there is a GUI utility. And for those who don't want to bother with manifests and other things for their projects, and you just want to connect automatically according to the current project in the IDE is automatically installed expansion (expert) for Delphi IDE — owlyExpert. Only this extension works for versions of Delphi XE and above (max auditioned for XE4).

Also, OwlyCI will help you to determine whether to assemble your code with other versions of Delphi for other platforms (Win32/Win64 at the moment). It does not replace unit tests, but will allow you to quickly evaluate how difficult will the migration to the new version of Delphi. Mostly legacy code on new versions has problems with strings, the transition to Win64), the assembler inserts, and with the new LLVM compiler the transition can be tough. There is one — but this service seems to be my friends (if only you knew how hard it is to find people with license Delphi), which sometimes include “building the farm” (essentially a virtual machine, on which there is jump of new packages, building under different configurations/platforms, and the results of the build back to the web. Example. This function of the repository is not guaranteed — to buy this Delphi I have no desire — the extra 60K for the first time and then 30K every six months to throw no joy, everything rests on the good will of good people.

Quick start


All teams documented as manifest format.

But usually, if you are doing packets, but only use them in your projects, you will need to know only basic commands.

0. Find you need the packages.

1. Download / install packages

owlyci --install <package name>


2. In the Project menu options
image
select OwlyCI dependencies to add to the list the project dependencies.
image

Save the changes to the project, ready.
If you copy a project to a new computer running OwlyCI, dependencies will be downloaded and installed automatically.

Here, in brief and all about my hobby project, which we successfully use in our projects. If you have any questions, I will be glad to answer them.
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

March Habrameeting in Kiev

PostgreSQL load testing using JMeter, Yandex.Tank and Overload

Monitoring PostgreSQL with Zabbix