intrig / xenon

The Intrig Message Decoder
MIT License
1 stars 6 forks source link

Release 2.0.0 #6

Closed intrig closed 8 years ago

intrig commented 8 years ago

Release 2.0.0 Patch Notes

This is mostly a maintenance/cleanup release. It is a requisite for the ongoing documentation effort.

Added Versioning

We are now following semantic versioning, the commonly used method of release numbering among open source software. The previous version has been retroactively tagged as v1.0.0.

This release is not 100% compatible with v1.0.0, so it is tagged as v2.0.0. The incompatibilities mostly relate to the introduction of the xenon namespace, discussed below.

Using Submodule

Xenon uses tools provided by the Intrig C++ Toolkit, a separately available utility library under the MIT license. Until now, the xenon repository just kept a copy of the ict in its own include directory. And both code bases had to be maintained separately.

Now, the ict is a git submodule of xenon (in the include director). The easiest way to get this update is to reclone the xenon repo with the --recursive option:

git clone --recursive https://github.com/intrig/xenon.git

This will populate the xenon/include/ict directory with the contents of the ict repository.

To update an existing repository instead, issue these commands in the xenon directory:

make clean
git pull
rmdir include/ict 
git submodule update --recursive --init

You can then pull in future updates with

git pull

The corresponding unit tests for ict have been moved to the ict repository.

xenon Namespace

Until now, all the Intrig code was placed in the ict namespace. We now separate xenon specific functionality and types into its own xenon namespace.

We now must include <xenon/xenon.h> instead of <ict/xenon.h>. The types, like message and spec_server are no longer in the ict namespace, but rather the xenon namespace.

The same is true for the xenon specific functions such as parse, find, and get_record.

The examples programs and tools have been updated.

Code updates

Removed ict::exception. Xenon now throws a std::runtime_error exception in all cases. This resulted in a fairly big simplification of the code. You should now just catch std::exception instead of ict::exception.

The file version.h has been removed. It was unused. There is currently no way to get the version number through an api call.