Saturday, February 7, 2015

New Home Page / Web Site

Sigil now has a home page! This means that this blog will be retired as the new home page will include all release and other announcements. This also means that the Google Code page is officially no longer active either.

The two places to find info about Sigil are the home page and the Code Repository.

Monday, February 2, 2015

Sigil 0.8.4 Released

With only one day after the 0.8.3 release 0.8.4 is being released. My deepest apologies because this means there is a bad bug. Admittedly it will only impact a very small amount of users but it was big enough to warrant a new release.

Unfortunately during refactoring of "remove all plugins" code the actual remove code was moved to the wrong place. With 0.8.3 if you say no it will still remove all plugins. This has been corrected and is the only change in 0.8.4.

Again my apologies. You can find binary packages here. For those curious about the one line entry in the change log, here.

Saturday, January 31, 2015

Sigil 0.8.3 Released

This is a big maintenance release. One of the biggest in long time. I highly recommend upgrading because while functionality wise not much has changed a lot of work went into improving stability

Most if not all of the credit goes to Kevin Hendricks (KevinH on MobileRead). He spent a lot of time fixing every memory leak, memory corruption, and crasher he could find. He spent a lot of time really getting Sigil into a state of stability it hasn't seen before.

On top of that Qt 5.4.0 is out which it's own slew of bug fixes. Not as many as we had hoped for but Kevin has tried working around as many of the lingering Qt issues as he could. I can't stress enough how huge Qt 5.4.0 is and how many bug itself has fixed.

Now I also can't leave out Doug Massay (DiapDealer on MobileRead). He's spent a lot of time on the Linux side of Sigil. Which we don't officially support for bug reports... But we do support Linux as a build platform. He wrote a deb and rpm packaging targets to make it easier for distros and user's. Especially for users. This way they can easily build Sigil from source and install / upgrade it using their distro's package manager. This way Linux users can still easily use the latest version of Sigil without having to wait for their distro to release a new version.

For my part I've mostly stayed away from coding. This was the original plan when I took over the project from the very beginning. I do a bit of coding when necessary but my role is project maintainer and leader. Not lead developer like I had been in the past but project manager. Helping contributors and providing support. As well as handling mundane tasks such as releases.

I can say I've very happy with how Sigil is running. I'm doing minimal coding when necessary and mainly helping contributors to understand and learn enough about Sigil so they can contribute. I have done a few things like enhance the plugin framework to allow validation plugins. But otherwise I've mainly been spending my time helping contributors contribute.

I will say one of the big changes with Qt 5.4.0 and why it's now the minimum required version for building Sigil is the fact that they've fixed the macdeployqt application and even integrated code signing directly into it. This means that once again Mac OS X packages are signed with my developer certificate so there shouldn't be any need to disable gatekeeper. The target is 10.9.5 as the minimum OS X version but it was built and tested on 10.10.

Binary packages can be found here. For those curious about what's changed the full change log here.

Friday, November 28, 2014

Sigil 0.8.2 Released

This is a small bug fix release that mainly address the plugin framework. A lot of work has been done to enhance and solidify the Python integration. Finally a new validation plugin type was added so a validation plugin can pass validation results to the built in validation pane.

As usual the binary and source is available on GitHub.

Also, I've switched to generating SHA256 checksums for the distributed files instead of using MD5.

Sunday, October 12, 2014

Sigil 0.8.1 Released

Sigil 0.8.1 is now available! This is a bug fix release. See the Changelog for a full list of changes.

Also, the source package directory structure has changed a bit. A number of files that were top level have been put into a docs subdirectory. Further, the source zip package is now putting the everything in a Sigil-x.y.z/ subdirectory.

Saturday, September 27, 2014

Sigil 0.8.0 Released


I'm pleased to announce the availability of Sigil version 0.8.0! The download location has changed sine the last release. This is because Google Code has stopped providing or allowing new downloads. Existing downloads will eventually be removed from the service completely.

It has been nearly a year since the last release of Sigil. This long delay is due to Sigil having and mainly is a one man operation. I don't have the time I did in the past to work on Sigil so I'm mainly relying on contributions to keep Sigil current. For quite a while no one was willing or able to help. Recently Kevin Hendricks has had time and motivation to contribute and Sigil has progressed quite a bit with his help.

There have been a handful of fixes and minor improvements but that's typical for a new release. This is a major release which means major new features...


The big new feature Kevin has spearheaded is plugin support. This has been long requested and it's finally here.


Plugins support is a revision one at this point. We have plans to expand it out in the future. The system is designed to be flexible and allow for a lot of new features. Plugins are standalone and don't hook directly into Sigil in term of UI changes. They're mainly for advanced processing at this point.

Currently Python 2 and 3 are the only supported languages for Plugins. The system is designed to be able to add other languages in the future quite easily. The decision to focus on Python for this release is due to the amount of existing Python code for ebook manipulation that is currently available.

Sigil does not currently bundle Python but relies on Python being installed (this could change in the future). In preferences you'll need to specify the Python executable location. If you're on OS X it's already installed with the OS and you just need to use the auto button to have it auto detected. Linux can also use the auto button. Most likely it's already installed if you use Linux. For Windows user's you'll want to install something like Active State's ActivePython (community edition is free).

Again, plugins are standalone. What happens is Sigil will call the interpreter (Python in this case) with an internal launcher script as the target. A few bits of info along with the target plugin are passed to the launcher which manages running the plugin. This allows for some really cool stuff like separation of plugins from Sigil's internals and easy recovery if a plugin crashes.

Plugin Licensing

Sigil itself is Open Source and is licensed under the GNU GPLv3. The plugin system was written in a way that allows plugins to be released under any license the plugin author wants. A plugin author isn't forced to use the the GPLv3. Plugin authors aren't required to release their plugins as open source either. They are free to release commercial closed source plugins.

The licensing allowance is not due to a licensing exception but due to how plugins are called. Plugins are run via the plugin launcher as a separate process. The launcher itself is licensed under a 2 clause BSD license. The plugin architecture is standardized and not dependent on Sigil. It is entirely possible to use a Sigil plugin in another application if that application implements the launcher interface. The idea is plugin authors write to the launcher API and Sigil implements that API.

The plugin API is very similar to calibre's API. We have actually tested some cailbre plugins in Sigil with little or no modification of the plugin itself.

Does This Mean Sigil is Going Closed Source?


The idea is to allow people to extend Sigil without putting restrictions on them. Again, there is a lot of existing ebook manipulation code out there that this allows Sigil to take advantage of.

Allowing permissive licensing allows existing non-GPLv3 licensed code to be used with Sigil without forcing that code to be relicensed. Think about small publishing houses that have their own internal tools. They can integrate those tools with Sigil without having to worry about any licensing issues or worry about needing to relicense.

The motivation is code reuse and allowing users to expand Sigil. This is no different than the "open with" feature which allows external editors to be used in conjunction with Sigil. Think about images which Sigil doesn't currently support editing. Users can use "open with" to edit an image using another tool and allow Sigil to use those changes.

Let me be very clear, I have no intention of withholding features from Sigil in order to make them into pay only and proprietary licensed plugins. I fully believe that this is not Kevin's intention either (he's contributed quite a bit of code to various places all open source).

Plugin Repository?

Not right now. There isn't enough man power right now for this. We also don't know how popular this feature will become or how many plugins will be created. It's possible it will be very popular but only a handful of plugins will ever be made and used. I'm not willing to put resources toward this until it's necessary.


This is a big release but it's a first step release. There is a lot that can be done with plugins in the future. We haven't even scratched the surface of all of our ideas. It just takes time.

Sunday, September 21, 2014

Sigil Status Update

As I've said in previous posts Sigil isn't dead. It's recently had a lack of contributors making development stalled. As long as people are willing to contribute to Sigil it will continue to evolve and move forward.

As for contributing myself I simply don't have 20-30 hours a week to devote to writing code for Sigil. That doesn't mean I've stopped writing code for Sigil and as I've said previously I'm willing to provide guidance to anyone who wants to contribute.

Basically, one year go the there were no outside contributors. So for one year not much has happened. A small maintenance release happened. Bug fixes were committed but few and far between. Nothing major feature wise.

Now that all changed about a month ago when Kevin Hendricks decided to invest his time in some bug fixes. Then he decided to start working on a plugin framework for Sigil. He's been spearheading the effort to get this feature implemented. It's not ready yet but it's coming a long nicely.

I know I don't want to see it die but there is only so much one person can do alone. So the moral of the story is, Sigil isn't dead and as long as there are contributors it won't die and it hasn't yet.