What’s next – Package Drone 0.14.0

As already presented at the Eclipse DemoCamp Neon in Munich, Package Drone 0.14.0 will be the next version. And we got all of our CQs ready now, so it is time to peek a bit into the future of Package Drone.

Also see the New and Noteworthy page!

Remote API Beside upgrading the runtime to Jetty 9.3.x and the IDE to Eclipse Neon a lot of new dependencies got added in order to have a JAX-RS based remote API. A few services already exists and it is possible to create access tokens for remote accessing Package Drone.

Addon Manager There is now an addon manager which will allow to install additional addons using OSGi’s infrastructure. So if you missing some functionality, it should be possible to “just” write an addon for Package Drone 😉

Upload V3 The new upload API allows to provide better feedback of what got uploaded and also allows to upload multiple files at once. The Jenkins Plugin already got updated for this.

And of course bugs got fixed and things improved. Like the support for OSGi capabilities in OSGi R5 repositories or a few broken links.

The new version is planned to be released at 20-16-08-31. The first milestone M1 is available right now.

Package Drone 0.13.0 released

Today Eclipse Package Drone 0.13.0 was released.

All old releases (0.11.x and before) will remain on GitHub at ctron/package-drone.

New and noteworthy

Please be sure to check the full New and Noteworthy page in the wiki.

The main feature for this release is the trigger system. It allows to add functionality in the flow of operations. For example when a new artifact is uploaded, there are “pre” and “post” triggers, to which the user can assign operations. Operations can be things like “clean up channel”.

Trigger will be run only at certain events, where “aspects” will change the state of a channel in a, somewhat, reproducible state. So removing an aspect and adding it again should bring back the same channel state, including virtual artifacts. Where removing a trigger and re-adding it, might does not change the channel state at all.

There are built-in triggers, but also trigger factories, which allow to create new trigger instances, which then again can get operations assigned. For example is there an HTTP endpoint trigger factory, which allows to create an HTTP endpoint trigger. Once a POST request is made on this HTTP endpoint, all operations assigned to this trigger instance will be run on the channel.

Of course the trigger system is as modular as the rest of Package Drone. So new trigger factories and operations can be created and registered in an OSGi like manner.

Beside that a lot of bug fixes and minor improvements have been made. Big thanks to all the contributors!!

What’s next?

Of course there are many ideas and quite a list of feature requests in the GitHub issues list. But since this project is driven by its contributors there is no plan laid for the next release. Contributions are welcome 😉

Still, I do hope that issue #9 gets some attention and we can provide a real external, RESTish API. There already are some basic dependencies for JAX-RS in 0.13.0, which allows us to define REST services, but still this release is missing a full JAX-RS implementation. Hopefully we can add this implementation in the 0.14 release, but we do need a bunch of CQs for this in order to use Swagger and Jersey.

There is also the always pending idea of having some “add-on manager”, which should users to add additional functionality to Package Drone by simply installing add-ons using a decent Web UI.

LDAP support, RPM signing, disk spool out for P2, Maven, YUM and APT would be nice as well.


GSoC 2016 – Docker Registry Adapter

GSoC Logo
Woha! Eclipse Package Drone was able to grab one Google Summer of Code slot for 2016. The proposal of “Pubudu Fernando” for implementing a “Docker Repository Adapter” was accepted. Thanks for the great proposal!

And many thanks for all the other proposals. Package Drone was lucky to attract quite a few fine proposals. And the Eclipse Foundation (Package Drone is only one small project of the Eclipse Foundation) was able to get nearly 100 proposals. Sadly, not all proposals can be accepted.

But I am really looking forward to mentor this project and see Package Drone getting another interesting interface.

0.13.0.rc1 and the upcoming release 0.13.0

Today the release candidate 1 of Package Drone 0.13.0 was released. The release 0.13.0 is planned for the .

The new and noteworthy page is already updated and won’t change unless something critical is being found before the final release.

This release introduces the new trigger system, which should allow much more enhancements in future releases. For now, it is already possible to configure multiple cleanup actions and trigger them using an HTTP POST call.

Internally a lot of work was done for the trigger system, an internal Filter API was started and the RPM library has support for writing out RPMs.

The upcoming trigger system

The feature requested in issue #28 hast been there for a while now. So I think it is time to show what is coming in the next version.

So Package Drone does have the clean aspect and the Tycho Cleaner. Aspects should work by using transformations other extraction to always generate the required state of a channel. In other words, removing and re-adding an aspect should result in the same channel state.

However the cleanup and the tycho cleaner aspect, both hook into the processor of altering a channel and performing their operation. In addition it was only possible to have each aspect exactly once attached to a channel. So cleaning up with two different configurations was not possible. A proper solution would be to allow trigger points and some sort of processors which can be attached to these points. It took a while, but now it is here: the trigger system will be part of Eclipse Package Drone 0.13.0.

Each channel will have a set of pre-defined triggers and there will be factories for configuring new triggers to a channel. Each trigger will have a list of processors, which will be executed when the trigger is fired.

One pre-defined trigger is the “post operation” trigger, which will be fired after each modify operation on a channel. The HTTP trigger is a configurable trigger and one or more instanced can be added to a channel, each time the configured URL receives a POST request, the trigger is fired.

At the moment there are three two processors: cleanup and unique artifacts. Oh and there is also the foo bar processor 😉 The cleanup processor provides the same functionality as the old cleanup aspect, which will stay for a while. The unique artifacts processor will enforce artifacts being unique according to its configuration.

Of course many more processor and trigger implementations pop into ones mind thinking a bit about it: timers, spool out, http callbacks, … All in good time. And since it is an open source project I am happy to receive contributions 😉

And when will this be released? Before we can release this, we have to wait for a few CQs to be processed. There is a required upgrade of Pax Web, CKeditor and a few minor things. With a bit of luck we can aim for a release in June. And until that, there will be a few more features coming.

Filter API and query language

The time has finally to come to start the work on an (for the moment) internal Filter API and Query Language.

So if you like to help out and provide some feedback on how this should look like, please have a look at issue #31 on GitHub and maybe join the discussion in the Package Drone mattermost channel.

The idea is to have a filter API which can be fed with a filter model so that searches can be performed by the backend in the technology suited base for the backend. So the approach may be: read filter string from configuration -> parse to generic model instance -> provide to search. And now the search can for example use Java 8 streams to perform the search or transform the filter model to a JPA criteria query and let the database to the job.

Thanks for your help!

Package Drone 0.12.0 released

Package Drone … no wait .. Eclipse Package Drone 0.12.0 is out!

Be sure to check out the most recent release on GitHub.

The most notable topic in this release is of course that this is the first release from Eclipse. This will change a lot of links, like the release page and also the YUM and APT repositories. So be sure to check out the
new Installations page in the wiki.

All old releases (0.11.x and before) will remain on GitHub at ctron/package-drone.

New and noteworthy

So beside the move to Eclipse and few bug fixes, the new version also has some new features and already contains a few preparations for the upcoming trigger system. For the full list of changes and features have a look at the new and noteworthy page in the wiki.

Maven Import with dependencies: During the BoF at EclipseCon Europe 2015 we got some really good feedback. And one feature request was to import from Maven repositories, including dependencies. So starting with Package Drone 0.12.0 it is possible to resolve Maven dependencies before proceeding with the import. Dependencies already in the channel will be detected and shown in the result list in which the user can also customize the import request before performing the import.

Windows support: The development setup of Package Drone is now also working on Windows. So using the Eclipse installer and setting of the project on Windows is now possible.

Also see


First milestone build at Eclipse – 0.12.0.m1

Today the first milestone at the Eclipse Foundation was released: 0.12.0.m1 This release marks an important step for Package Drone.

First of all we have completed the transition to the Eclipse Foundation. All CQs are processed, the IP log is approved, the download area received its first binaries, there are download instruction pages and we are awaiting the release review. This means we are ready for the 0.12.0 version.

But also from a technical perspective Package Drone 0.12.0 is the first stable build which provides a few new features from the 0.12.x development cycle. Uploading PGP keys, initial support for Windows, Maven import with dependencies, just to name a few.

But be aware: This is a milestone release and things have changed between 0.11.x and 0.12.0. Beside the fact that the repository URLs have changed. So be sure to backup your data and “handle with care” 😉

See also:

Gathering Ideas for Google Summer of Code 2016

As in the past years the Eclipse Foundation will participate in the Google Summer of Code 2016 event. Since Package Drone is an Eclipse project now, we are allowed to submit ideas as well.

So if you have ideas or would like participate as a student look up Google Summer of Code 2016 Ideas in the Eclipse Wiki and write down your idea. Or simply raise an issue at GitHub and I will do this for you.

For a start I came up with two ideas:

But of course there are many more things to do!

If you need help you can also write on the soc-dev@eclipse.org mailing list.

🎄 Merry Christmas 🎄

I would like to wish you all some great days and hopefully a bit of rest.

Thanks to the efforts of the Eclipse IP team we now got most of the CQs processed and are targeting an initial release in the beginning of February. Just in time for Christmas 😉

So see ya next year!

Merry Christmas and an exciting New Year!