Releases: ctron/package-drone
package-drone-0.11.0-m3
This is a milestone release towards the upcoming release 0.11.0.
Warning: This release of Package Drone does have a different storage mechanism. Therefore is it not possible to simply update the package drone installation. It is necessary to export all channels from the old installation and import them back into the new installation.
See also: https://github.com/ctron/package-drone/releases/tag/v0.11.0-m1
This version is a stable milestone version, which passed all unit, integration and stress/performance tests. However there may be breaking changes up to the final 0.11.0 release.
Changes in this release
The most notable change in this milestone is the re-written maven upload module. The old one had a few drawbacks and made a few assumptions which where true for maven uploads done by maven, but not by gradle.
package-drone-0.11.0-m2
This is a milestone release towards the upcoming release 0.11.0.
Warning: This release of Package Drone does have a different storage mechanism. Therefore is it not possible to simply update the package drone installation. It is necessary to export all channels from the old installation and import them back into the new installation.
See also: https://github.com/ctron/package-drone/releases/tag/v0.11.0-m1
This version is a stable milestone version, which passed all unit, integration and stress/performance tests. However there may be breaking changes up to the final 0.11.0 release.
Changes in this release
- Re-added the Setup Web UI
- Restructure the testing projects directory layout
- Fix a UTF-8 issue
package-drone-0.10.4
This is a maintenance release for the 0.10.x version of Package Drone.
Many thanks to @JFingerle who solved a bunch of issues with the R5 index generation.
- #126: OSGi R5 aspect does not list "bundle-version" and resolution optional for "osgi.wiring.bundle" requirements
- #128: OSGi R5 aspect generates invalid version ranges
- #129: OSGi R5 aspect does not list "osgi.wiring.host" capability
- #130: OSGi R5 aspect does not list 'osgi.contract' capability for OSGi Frameworks
- #131: OSGi R5 aspect does not list "bundle-version" and resolution optional for "osgi.wiring.bundle" requirements
- #133: Fix exporting channels
package-drone-0.11.0-m1
This is a milestone release toward the upcoming release 0.11.0.
Warning: This release of Package Drone does have a different storage mechanism. Therefore is it not possible to simply update the package drone installation. It is necessary to export all channels from the old installation and import them back into the new installation.
This version features a massive rewrite of core parts of Package Drone, namely the storage backend and the internal API. Instead of using a JPA/JDBC based SQL database approach, all data is now stored in the local filesystem of the server. Also has the API been changed in a way that operations on channels now can be grouped and lock a channel accordingly.
There will be more detailed release notes in the final release and a blog post about the changes.
This version is a stable milestone version, which passed all unit, integration and stress/performance tests. However there may be breaking changes up to the final 0.11.0 release.
package-drone-0.10.3
This is a maintenance release for the 0.10.x version of Package Drone.
- #120: improve performance of P2 artifact resolution, thanks @afischer211
package-drone-0.10.2
This is a maintenance release for the 0.10.x version of Package Drone.
- #118: A log file was still active in one of the persistence units
- Fix a missing call to
createArtifactGuard
package-drone-0.10.1
This is a maintenance release for the 0.10.x version of Package Drone.
- Fix an issue where the wrong index pages were shown for the YUM or P2 adapter
- Update to Mars release versions of Eclipse JDT batch compiler and Equinox
package-drone-0.10.0
New and Noteworthy
Improved performance
Thanks to @afischer211 we were able to dramatically improve the performance of Package Drone when it comes to uploading artifacts and running modify operations on channels. Although measuring performance is not always a that simple, here are a few figures.
Adding a plain maven artifact using the Maven deploy call took about 15 seconds in one specific setup, and now only takes about 2 seconds. The channel had a few hundred artifacts and has to perform a full channel aggregation after each upload for creating P2 indexes.
In another example re-creating a full channel took over 40 minutes, which got improved to only a few minutes now. In this case the cleanup aspect was re-scheduled to only run once at the end of the channel operation.
There are a few more scenarios where the performance got improved, and although there are still a few spots which must be optimized, 0.10.0 is a major step in the right direction.
Together with this a few profiling tools where added to the code in order to know what exactly had to be worked on.
RPM and YUM
Package Drone did have support for DEB and APT for some time now, but RPM and YUM was missing. This release adds extracting meta data from RPM files and allows creating YUM repositories based on this meta data.
The trickiest part of all of this was extracting the information from the RPM files in plain Java. While there is a library called "jRPM", it seems to be unmaintained for quite a while and does not support the functionality we looked for. So we had to create our own. So if you need for a library which parses RPM files, have a look at de.dentrassi.rpm.
Switch to OSGi HttpService based setup
Finally the switch to an OSGi HttpService based setup was made (see #79). It is based on Pax Web, JBoss JSTL, Glassfish based Apache Jasper, Equinox for JSP Servlet support and a few others.
From a front-end side nothing should have changed. However this was one of the most intrusive changes since the development of Package Drone. This allows for future enhancements which depend on the OSGi HttpService support. Like JAX-RS support for a nicer REST API.
Anonymous usage statistics
Now this is a difficult topic, so the first information is: Yes, you can disable it by simply setting the system property drone.usage.disable
to true
, even during runtime. And most probably you might have a Jenkins instance running as well, which does exactly the same (see http://stats.jenkins-ci.org/jenkins-stats/).
So why do we need this? In order to know how Package Drone is being used. And what do we transmit? There is a full explanation on admin page in the running instance. In short we do transmit a short JSON fragment (which you can see in the admin page) which contains a random and changing ID, the version, and the number of artifacts and bytes stored.
reCAPTCHA support
A minor but interesting feature for installations which allow self-registration. It is possible to activate reCAPTCHA support with a few clicks in Package Drone now. Right now it is only used for the registration process. But there are a few other places where this could be useful in the future.
Eclipse Oomph based development setup
Thanks to Oomph (yes, that's the name) setting up a Package Drone development system now has become a lot easier. Starting the [Eclipse installer](https://wiki.eclipse.org Eclipse_Installer) and selecting "Package Drone" from the "GitHub" branch will setup you up a full blown Eclipse IDE, containing all the necessary plugins and settings, check out the source code, import all projects and configure your target platform. 👍
Changed behavior
OSGi R5 uses channel cache
The OSGi R5 adapter now makes use of the channel cache in order to serve the index files quicker. This also requires to actually add the OSGi R5 aspect to a channel, which was not required in the past.
Also see #99
Switch to Apache Felix for providing the ConfigurationAdmin service
The configuration storage of OSGi has been switched from the Equinox based implementation to the implementation provided by Apache Felix. Equinox is still the OSGi container, but the ConfigurationAdmin
of Felix is now used. This was done in order to the fix annoying issue #103, which caused the configuration store to go corrupt on each Package Drone upgrade.
As an extra feature the whole configuration is now stored in plain and simple properties files. Defaulting to the directory /var/libpackage-drone-server/cm
when the RPM or DEB installation method is used. This also allows external backup programs to pick these up if desired.
Changed system properties for ports
Due to the switch from plain Jetty to Pax Web, the system properties for ports and hosts have changed. These follow now the standard OSGi HttpService properties.
Name | Description | Default |
---|---|---|
org.osgi.service.http.port | Port to bind to | 8080 |
org.ops4j.pax.web.listening.addresses | The network address to bind to | 0.0.0.0 (any) |
Also see: https://ops4j1.jira.com/wiki/display/paxweb/Basic+Configuration
Improvements and bug fixes
- #97, #108: The lock manager was re-written
- #104: P2 has a special handling of
system.bundle
and now so does Package Drone - #106: fix detection of maven artifacts to also find non-pom direct artifacts
- #112: add workaround for Eclipse Link issue 289771
- #115: added a artifact count to the channel overview
- Lock all channels when performing modification with MySQL
- Some e-mails get sent out as HTML e-mail now (multipart alternative)
- added the subtitle to the HTML page title
Known issues
Installing the release requires to re-configure the system due to the switch to Apache Felix. However this is the last time this is required. A backup can be made before upgrading and can be imported later on.
MySQL still is not recommended for running Package Drone.
Screenshots
package-drone-0.10.0-rc1
This is a release candidate for the 0.10.0 release. The final release notes will be more detailed.
Release candidates are currently not available in the repositories at http://repo.dentrassi.de/ and must be downloaded and installed separately.
These notes only contain the changes of this milestone release compared to the previous one: v0.10.0-m6
Bug fixes and improvements
- #113: fix missing description. Caused by JSP include issue.
- Suppress irritating warning messages on startup
- Gather anonymous usage statistics
package-drone-0.10.0-m6
This is a milestone release towards the 0.10.0 release. The final release notes will be more detailed.
Milestone releases are currently not available in the repositories at http://repo.dentrassi.de/ and must be downloaded and installed separately.
These notes only contain the changes of this milestone release compared to the previous one: v0.10.0-m5