Releases: ctron/package-drone
package-drone-0.2.0
New Features
Maintenance Tasks
Package Drone now has a concept of maintenance tasks. Tasks which must be performed in order that the system can run. In the past the administrator was not aware of the fact that a database schema upgrade was required unless he navigated to the database configuration screen. Now there is a small label in navigation menu which indicates that tasks have to be performed. Also the "normal" user will see a small icon, but no additional information.
Also see issue #27.
Import from HTTP source
There is a framework for creating import configurations and jobs. An import is a one time process of fetching external artifacts into Package Drone.
The proof of concept importer was the plain and simple "HTTP import", which simply fetches a URL and stores the result in a channel. However, this might turn out quite useful sometimes 😉
Import from Maven repositories
Of course a plain simple HTTP importer is not really what your are looking for. But downloading artifacts directly from Maven Central (or any other Maven repository) is. Including processing of meta data and the conversion of Maven source attachments to Eclipse source bundles, if you like so.
There are a lot more options and features waiting to be implemented here. However the basic process of importing a module from Maven into Package Drone works. So next time we might see dependency resolution and fine tuning of the import process.
Also see issue #17.
Long running jobs
Under the hood there is a concept of long running jobs. Tasks, like the import process, might take a longer time. So they are forked int he background and are periodically checked from the web page. Once they are complete the actual workflow can continue.
There is lots more one would wish from such a framework that what is actually implemented. However there is a good foundation for future enhancements now. The whole process has to be polished a little bit.
Fixed issues and improvements
- Fix issue #42: The Tycho cleaner prevented that virtual artifacts where created, thanks @toshovski
- Fix issue #43: When a feature was deployed which contained a requirement without a specific version the deployment failed with an exception
- Validate fields in APT configuration
- The multiselect user role list was converted to a checkbox list, see #35, thanks @larkery
Changes
- Changed Jetty download link, changed on Eclipse server
- Changed the way the database configuration is applied. Instead of having a fixed list of JPA units, these are now detected and configured on the fly from a master instance.
Known bugs and limitations
- The import process is brand new and might still have some issues which are currently unknown
- The Maven Import should allow for more configuration options like proxies, authentication, etc.
Tests
Screenshots
package-drone-0.1.5
This release mainly fixes the issue described in #38. Deploying to maven using plain maven fails since maven does not authorize itself with the repository.
In addition there are some improvements to the Web UI of deploy groups and key, in order to better understand what has to be done. Thanks to @toshovski for pointing that out and for helping.
Behind the scenes some functionality was added in order to implement the import process in a future release. However this is not ready and therefore not activated.
Screenshots
package-drone-0.1.4
This is a small bug fix release.
New features
Although it was only for debugging, Package Drone now also has a Tree View for channels. This shows the hierarchy of deployed and generated artifacts.
Fixed bugs
- The maven repository servlet failed when uploading to channels which have not the Maven Repository aspect assigned. Since Maven uploading should always works, this was fixed.
- Also was the processing of aspects changes so that generated artifacts only get processed after all other changes are done. This increases performance and fixes a bug where a artifact was deleted while it was processed.
Screenshots
See the previous release.
package-drone-0.1.3
New Features
Debian packages and APT repositories
Package Drone can now extract meta data from .deb
files and produce APT compatible repositories. Including signing of repositories. This would allow us to actually create the Package Drone APT repository using Package Drone itself 😉
Fixed issues and improvements
- The setup workflow not handles situations were the user entered wrong or not working database configurations
- There is a "Test Connection" function in the database configuration dialog
Changes
- The CentOS 7 RPM package was changes so that is is closer to the CentOS 6 and Debian package in terms of naming of directories. This means that the directory names of the installation have changed, which might cause a loss of configuration (database link, mail server).
- The ".md5" files will not be generated anymore. This will be re-added in the future in a more controllable way.
Known bugs and limitations
#29 A deadlock occurs when applying the database configuration a second time
For the time being there will be a patched version of Equinox provided by Package Drone, which solves the deadlock issue. One the official Mars M6 release is out, the original version will be used. But this solves the deadlock issue right now.
Screenshots
package-drone-0.1.2
New features
Cleanup - Part 2
The cleanup process now actually cleans up when enabled. Not much else to say here 😄
Basic NPM Adapter
Package Drone now as a, very rudimentary, NPM adapter. It will detect NPM packages in a channel and serve basic meta data information. So it is possible to install from Package Drone using NPM by:
npm --registry http://yourserver/npm/<channel> install <package>
Download P2 repository as ZIP
There is an option to download the P2 repository as a complete ZIP file.
Fixed issues and improvements
- The Web UI of the cleanup system was not deployed
- Speed up loading the simple channel view and improve the detailed channel loading as well
Known bugs and limitations
#29 A deadlock occurs when applying the database configuration a second time
No change here
NPM Adapter
The NPM adapter is just a test. It works, yes. But it is far from complete.
Screenshots
See the previous release.
package-drone-0.1.1
New Features
Rework the maven deploy process
The way maven uploads file to a repository is rather ... interesting ...
So the upload handling of Package Drone has been reworked to cover all variants of snapshot and release versions. A few more tests were added, like deploying with Apache Felix enabled in maven, or deploying ".deb" files with jDeb.
Add Maven Repository Aspect
A new aspect was added which gathers maven repository information from a channel, at least when you uploaded your artifacts with maven.
The gathered informations allows the maven 2 repository adapter to provide the correct files for letting maven access a channel of package drone using the Maven 2 default repository layout.
This is a big step, since now Package Drone can be used as a full Maven repository server. A thing that was never planned in the beginning ;-)
Create a cleanup aspect
In order to clean up snapshot versions, there is now a cleanup aspect. It can be configured on how to aggregate and order the artifacts in order to clean out older versions. It is also possible to test the configuration before applying.
Since this is a rather big change, the aspect currently only allows testing and does not actually clean up. This is left over for the next version.
Fixed issues and improvements
- A few issues with setting passwords and self-registration have been fixed.
- Passwords get checked for a bit of security
- Several minor UI cleanups
Known bugs and limitations
#29 A deadlock occurs when applying the database configuration a second time
No change here
Cleanup
The cleanup aspect is not cleaning up. Right now it is only possible to test the cleanup (dry run).
Screenshots
package-drone-0.1.0
Changes
The repository URLs for YUM changed. The are now:
http://repo.dentrassi.de/yum/centos/6 for RHEL6/CentOS 6
http://repo.dentrassi.de/yum/centos/7 for RHEL7/CentOS 7
New features
Role based authorization
A simple role based authorization scheme has been implemented (see #26).
There are two roles right now ADMIN and MANAGER. Admins can configure system internals and create new users. While managers can change channel and artifact settings and content.
Deploy keys
The system now has the concept of deploy groups and deploy keys which can be assigned to repository channels. These credentials will be used to identify deployment tools, like maven, when they want to deploy to a repository channel.
Scheduled cleanup of e-mail tokens
There is simple scheduler now, which clears out expired email tokens and users which did not validate their e-mail address (issue #25 )
Allow deleting and locking a user
It is now possible to flag a user as locked or deleted. Deletion is more like a soft delete, where the user will be marked as deleted and the password hash will be cleared out. The user can, by himself, request a new password, which will re-activate the account once the new password is set.
On the other hand administrators can mark a user locked. Which rejects all login attempts and also prevents the user from requesting a new password. (issue #24).
RHEL6 / CentOS 6
There is now a special RPM package and startup script for RHEL6/CentOS 6.
Note: For RHEL6/Centos 6 you will need to open a firewall port manually:
lokkit -q -p 8080:tcp
System config file
Before the server is started, the file /etc/default/package-drone-server
will be sourced and the properties can be used for starting the server. It is possible that way to set system properties. The file is flagged as "configuration" so it will survive a package upgrade (issue #28).
Fixes and improvements
- The setup work-flow was improved in order also cover the mail setup.
- The schema upgrade can now handle SQL statements which are allowed to fail
- The manifest attribute Eclipse-BundleShape = "dir" will trigger "unpack=true" for P2 features now (see #22)
Known bugs and limitations
#29 A deadlock occurs when applying the database configuration a second time
There is progress on this one. An official fix from Eclipse Equinox will be available in Eclipse Mars M6. So I think it is best to wait for this one.
Screenshots
package-drone-0.0.9
This can be considered a milestone release towards the upcoming 0.1.0 release.
Fixed issues
Site prefix
One open issue coming out of the security modules was that the emails which here sent out only had a link to "localhost", see #23 Allow setting a site prefix. This can be configured now.
Disable self registration
It also is possible now to disable the user self registration.
Known bugs and limitations
The deadlock issue of #29 has been resolved, but not fixed. This is a bug in Eclipse Equinox and hopefully Thomas Watson will have a chance to fix this in Eclipse Mars M6.
However a lot of code refactoring was done, in order to break up the dependencies between the bundles. Gemini JPA does refresh bundles in order to weave them correctly. This causes also dependent bundles to be stopped and started again. Bundles were split up in order to simply the dependency graph on bundle level and focus more on service level, which does not have this issue.
Until that we could have a possible fix by patching Equinox, using a Read/Write lock instead of plain locking. Although this works, there are some unknown implications.
Also the issue of the weaving problem in the Gemini JPA unit seems to be fixed. However I thought this before. So let's see how this turns out.
Screenshots
package-drone-0.0.8
This can be considered a milestone release towards the upcoming 0.1.0 release.
New features
Yes ... a lot!
Security
You shall not pass!
-- Gandalf
This is considered to be the blocking feature for the 0.1.0 release. Security is important, so let's do it.
In this release a complete security system with form based authentication and multiple security backends based on OSGi have been implemented. Passwords get salted, hashed and re-salted and re-hashed. There is a way to register a new user with e-mail verification, reset passwords with e-mail tokens, etc.
During the initial setup a valid user is now required and since there is no user database available at that point, there will be default admin account with a generated password token generated during each startup. So if you have access to the server where package drone is running, you can get admin. This functionality can be disabled for future startups, but provides a better way of setting package drone up than to just open up in that phase.
There are a few loose ends though which have to be tied up though. The setup workflow is a bit non-linear, since also the mail server has to be set up. The plan is to clean this up with a "admin tasks required" (see #27) functionality, which is good to have anyway.
Also see #19 which tasks still remain.
Improvements
Runtime
The runtime has been upgraded to Jetty 9.2.7 and Equinox from Mars M4.
Docker
The docker setup is available of Docker Hub at: https://registry.hub.docker.com/u/ctron/package-drone/
To run the latest released version of package drone using docker, simply run:
docker run -p 8080:8080 ctron/package-drone:latest
If you did run docker before you need to pull the upgrade by:
docker pull ctron/package-drone
Bug fixes
- A few bugs have been fixed. Notably #22, which is responsible for setting the "unpack" value in the generated P2 features
Known bugs and issues
Sometimes it happens that the channel view (channel.jsp) cannot be loaded due to the fact, that the compiled jsp class cannot be found. Restarting the server helps.
Future plans
The plan is to work towards 0.1.0, which mostly requires security things.
Screenshots
package-drone-0.0.7
New Features
P2 Categories
Issue #3 was implemented. This allows to create P2 categories in the meta data now.
All features which are located inside a channel will automatically be added to the defined category.
OSGi meta data views
There a new view which show the meta data of OSGi bundles and Eclipse Features if the meta data was extracted by the OSGi channel aspect. Also see the screenshots below.
Improvements
Improved menu structure
The menu structure has been re-designed in order to allow more extensible menus and also clean up the structure.
Each menu now can also have sub-entries and these can be provided by any service/OSGi bundle which is running inside package drone. One step closer to installable plugins 😄
OpenJDK 8
Ubuntu 14.10 brings OpenJDK 8. After some preliminary tests, this looks good. So Package Drone can run on this VM. Hopefully this will ease things a lot.
Docker
A dockerfile is currently being worked on. So before the next release, there should be a docker file or maybe a docker image which can be used "out of the box".
Under the hood
The JSP tag structure has been refactored, in order to allow other plugins to provide custom tag files (using tag dirs) as well. All tag dirs have to start with WEB-INF/tags
and we only had a root directory which was already filled. So now each OSGi bundle can contribute to this tag directory using sub-directories.